11

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

4

3 回答 3

20

规则比这复杂一点,但基本上:你<=用来做信号分配,它在下一个增量周期生效。你:=用来做变量赋值,它立即发生。因此,如果您有信号,则始终使用<=. 如果你有一个变量,你总是使用:=.

在某些地方,您通常会遇到这种情况,例如初始化,:=甚至用于信号。

所以:

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
于 2012-08-13T01:59:01.057 回答
3

如果您使用信号 temp:std_logic_vector那么您将不得不使用<=

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

于 2014-10-06T18:23:20.090 回答
0

<=

UseCase:在下一个周期发生的信号分配。

示例signal temp:std_logic_vector

:=

UseCase:立即发生的变量赋值。

示例variable temp:std_logic_vector


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

于 2021-11-11T09:50:40.107 回答