Vhdl 为什么不能';和';在这种情况下有这样的操作数吗?

Vhdl 为什么不能';和';在这种情况下有这样的操作数吗?,vhdl,xilinx,Vhdl,Xilinx,我正在使用Xilinx并试图编译这段代码。 我得到这个错误: 错误:HDLParsers:808-“C:/Users/Dell/digi/sm.vhd”第xx行。在此上下文中不能有这样的操作数。 更改从 port(X1,X2,CLK: in STD_LOGIC; 到 成功了。 问题是您混合了位和标准逻辑类型。您通常应该选择一个或另一个(除非您确实知道为什么需要,否则不要在同一个文件中同时使用这两个),大多数新工作通常使用std_逻辑完成。要解决此问题,您需要使所有内容保持一致……或者将输入更改

我正在使用Xilinx并试图编译这段代码。 我得到这个错误: 错误:HDLParsers:808-“C:/Users/Dell/digi/sm.vhd”第xx行。在此上下文中不能有这样的操作数。

更改从

port(X1,X2,CLK: in STD_LOGIC;

成功了。

问题是您混合了位和标准逻辑类型。您通常应该选择一个或另一个(除非您确实知道为什么需要,否则不要在同一个文件中同时使用这两个),大多数新工作通常使用std_逻辑完成。要解决此问题,您需要使所有内容保持一致……或者将输入更改为位类型,就像您所做的那样,或者将内部声明的信号更改为std_逻辑:

signal Q1, Q2, Q3: std_logic;

虽然我已经回答了这个问题,但欢迎发表评论。我是VHDL的新手。请分享你的感受,也许对我有帮助。
signal Q1, Q2, Q3: std_logic;