首页 文章

VHDL中<=和:=之间有什么区别?

提问于
浏览
9

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

2 回答

  • 3

    规则比这更复杂,但基本上:你使用 <= 进行信号分配,这将在下一个增量循环中生效 . 您使用 := 进行变量赋值,这将立即发生 . 因此,如果您有信号,则始终使用 <= . 如果您有变量,则始终使用 := .

    在某些地方,这种情况并不常见,例如初始化,即使对于信号,也会使用 := .

    所以:

    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
    
  • 14

    如果你使用 signal temp:std_logic_vector 那么你将不得不使用 <=

    如果您使用 variable temp:std_logic_vector 那么您将不得不使用 :=

相关问题