【发布时间】:2012-08-09 06:14:02
【问题描述】:
目前,我正在使用 VHDL 学习一些 FPGA 设计技术,我的问题是我们是否可以在 VHDL 中互换使用 := 和
【问题讨论】:
标签: embedded logic vhdl colon-equals
目前,我正在使用 VHDL 学习一些 FPGA 设计技术,我的问题是我们是否可以在 VHDL 中互换使用 := 和
【问题讨论】:
标签: embedded logic vhdl colon-equals
规则比这复杂一点,但基本上:你使用<= 进行信号分配,在下一个增量周期生效。您使用:= 进行变量赋值,这会立即发生。所以如果你有信号,你总是使用<=。如果你有一个变量,你总是使用:=。
在某些地方,您通常会遇到这种情况,例如初始化,其中:= 甚至用于信号。
所以:
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
【讨论】:
<= 用于信号,:= 用于变量,除了初始值都使用:=
如果您使用 signal temp:std_logic_vector,那么您将不得不使用
如果您使用 variable temp:std_logic_vector,那么您将不得不使用 :=
【讨论】:
<=
用例:信号在下一个周期发生的分配。
示例:signal temp:std_logic_vector
:=
UseCase:立即发生的变量分配。
示例:variable temp:std_logic_vector
除了给信号加上初始值,还可以使用:=。
【讨论】: