VHDL中< =和:=之间有什么区别?

时间:2012-08-13 01:07:49

标签: embedded logic vhdl colon-equals

目前,我正在学习一些使用VHDL的FPGA设计技术,我的问题是我们是否可以使用:=和< =在VHDL中可以互换使用,尽管我已经看到在常量声明中使用:=和< =在作业?提前谢谢!

2 个答案:

答案 0 :(得分:14)

规则比这更复杂,但基本上:你使用<=进行信号分配,这将在下一个增量循环中生效。您使用:=进行变量赋值,这会立即发生。因此,如果您有信号,则始终使用<=。如果您有变量,则始终使用:=

在某些情况下,这种情况并不常见,例如,初始化会导致:=甚至用于信号。

所以:

signal some_signal : std_logic := '0'; -- 0 initial value
...
variable some_variable : std_logic := '0'; -- 0 initial value
...
some_signal <= '1'; -- will assign 1 at the next time step (delta cycle)
...
some_variable := '1'; -- assigns 1 immediately

答案 1 :(得分:3)

如果您使用 信号温度:std_logic_vector ,则您必须使用&lt; =

如果您使用 变量temp:std_logic_vector ,那么您必须使用:=