【问题标题】:WITH - SELECT statement with multiple conditions (VHDL)WITH - 具有多个条件的 SELECT 语句 (VHDL)
【发布时间】:2015-01-09 16:24:47
【问题描述】:

VHDL 中的 select 语句在不止一种情况下分配相同的信号:
with ALUop select z <= s_add_sub when "00000", s_add_sub when "00001", s_add_sub when "00010", s_add_sub when "00011", x AND y when "00100", x OR y when "00101", x XOR y when "00110", lhi when "00111", seq when "01000", sne when "01001", slt when "01010", sgt when "01011", sle when "01100", sge when "01101", NOT x when "01110", x when "01111", shift_out when "10000", shift_out when "10001", shift_out when "10010", y when "10011", x"00000000" when others;
如何更改语句,以便仅在一行中针对多个条件进行分配,例如:

with ALUop select z <= s_add_sub when "00000" OR "00001" OR "00010" OR "00011",...

【问题讨论】:

    标签: vhdl


    【解决方案1】:

    使用| 而不是OR 进行多项选择,因此代码如下:

    with ALUop select 
      z <= s_add_sub when "00000" | "00001" | "00010" | "00011", 
           x AND y when "00100", 
           ...
    

    这类似于case的多选语法。

    【讨论】:

    • 非常感谢,我什至不知道 VHDL 使用 |操作员。
    • 我可以使用 |基本条件信号赋值语句中的运算符,例如:z
    • 不,|, 之类的分隔符,而不是OR 之类的运算符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2016-06-03
    • 1970-01-01
    相关资源
    最近更新 更多