【问题标题】:What' s the difference between <= and := in VHDLVHDL 中 <= 和 := 有什么区别
【发布时间】:2012-08-09 06:14:02
【问题描述】:

目前,我正在使用 VHDL 学习一些 FPGA 设计技术,我的问题是我们是否可以在 VHDL 中互换使用 := 和

【问题讨论】:

    标签: embedded logic vhdl colon-equals


    【解决方案1】:

    规则比这复杂一点,但基本上:你使用&lt;= 进行信号分配,在下一个增量周期生效。您使用:= 进行变量赋值,这会立即发生。所以如果你有信号,你总是使用&lt;=。如果你有一个变量,你总是使用:=

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

    所以:

    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
    

    【讨论】:

    • 你的意思是我可以互换使用这两个符号还是有一些例外? @wjl
    • &lt;= 用于信号,:= 用于变量,除了初始值都使用:=
    • 有关增量周期的信息,请查看有关该主题的这篇好文章:sigasi.com/content/vhdls-crown-jewel
    【解决方案2】:

    如果您使用 signal temp:std_logic_vector,那么您将不得不使用

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

    【讨论】:

      【解决方案3】:

      &lt;=

      用例信号在下一个周期发生的分配。

      示例signal temp:std_logic_vector

      :=

      UseCase:立即发生的变量分配。

      示例variable temp:std_logic_vector


      除了给信号加上初始值,还可以使用:=

      【讨论】:

        猜你喜欢
        • 2012-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-02
        • 2011-12-12
        • 2010-09-16
        • 2012-03-14
        相关资源
        最近更新 更多