目前,我正在学习一些使用VHDL的FPGA设计技术,我的问题是我们是否可以使用:=和< =在VHDL中可以互换使用,尽管我已经看到在常量声明中使用:=和< =在作业?提前谢谢!
答案 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 ,那么您必须使用:=