VHDL 中的 <= 和 := 有什么区别



目前,我正在使用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

<小时 />

除了向信号添加初始值外,您还可以使用 :=

最新更新