目前,我正在使用VHDL学习一些FPGA设计技术,我的问题是我们是否可以在VHDL中互换使用:=和<=,尽管我已经看到在常量声明中使用:=,在赋值中使用<=?提前感谢!
规则比这稍微复杂一些,但基本上:你使用<=
来做信号分配,这会在下一个增量周期生效。您可以使用:=
执行变量赋值,这会立即发生。所以如果你有信号,你总是使用<=
.如果您有变量,则始终使用 :=
。
在某些地方,您通常会遇到这种情况,例如初始化,其中:=
甚至用于信号。
所以:
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
如果你使用信号温度:std_logic_vector那么你将不得不使用<=
如果您使用变量 temp:std_logic_vector,则必须使用 :=
<=
用例:在下一个周期中发生的信号分配。
示例:signal temp:std_logic_vector
:=
用例:立即发生的变量赋值。
示例:variable temp:std_logic_vector
除了向信号添加初始值外,您还可以使用 :=
。