【问题标题】:Concatenating bits in VHDLVHDL中的连接位
【发布时间】:2010-09-17 14:10:44
【问题描述】:

如何在 VHDL 中连接位?我正在尝试使用以下代码:

案例 b0 & b1 & b2 & b3 是 ...

会报错

谢谢

【问题讨论】:

    标签: concatenation vhdl


    【解决方案1】:

    连接运算符“&”只允许在信号赋值运算符“

    【讨论】:

    • 它也适用于变量赋值:= .. 查看其他答案
    【解决方案2】:

    您不能在 case 语句中使用连接运算符。一种可能的解决方案是在流程中使用变量:

    process(b0,b1,b2,b3)
       variable bcat : std_logic_vector(0 to 3);
    begin
       bcat := b0 & b1 & b2 & b3;
       case bcat is
          when "0000" => x <= 1;
          when others => x <= 2;
       end case;
    end process;
    

    【讨论】:

      【解决方案3】:

      这里是连接运算符的一个例子:

      architecture EXAMPLE of CONCATENATION is
         signal Z_BUS : bit_vector (3 downto 0);
         signal A_BIT, B_BIT, C_BIT, D_BIT : bit;
      begin
         Z_BUS <= A_BIT & B_BIT & C_BIT & D_BIT;
      end EXAMPLE;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多