目前,我正在学习一些使用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
如果你使用 signal temp:std_logic_vector 那么你将不得不使用 <=
如果您使用 variable temp:std_logic_vector 那么您将不得不使用 :=
2 回答
规则比这更复杂,但基本上:你使用
<=
进行信号分配,这将在下一个增量循环中生效 . 您使用:=
进行变量赋值,这将立即发生 . 因此,如果您有信号,则始终使用<=
. 如果您有变量,则始终使用:=
.在某些地方,这种情况并不常见,例如初始化,即使对于信号,也会使用
:=
.所以:
如果你使用 signal temp:std_logic_vector 那么你将不得不使用 <=
如果您使用 variable temp:std_logic_vector 那么您将不得不使用 :=