【发布时间】:2010-09-17 14:10:44
【问题描述】:
如何在 VHDL 中连接位?我正在尝试使用以下代码:
案例 b0 & b1 & b2 & b3 是 ...
会报错
谢谢
【问题讨论】:
标签: concatenation vhdl
如何在 VHDL 中连接位?我正在尝试使用以下代码:
案例 b0 & b1 & b2 & b3 是 ...
会报错
谢谢
【问题讨论】:
标签: concatenation vhdl
连接运算符“&”只允许在信号赋值运算符“
【讨论】:
:= .. 查看其他答案
您不能在 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;
【讨论】:
这里是连接运算符的一个例子:
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;
【讨论】: