如何在VHDL中有效地添加几个std_logic_vector?

时间:2019-05-29 06:45:48

标签: vhdl

我正在使用VHDL创建一个可以添加多个向量的简单代码。 例如,下图有一个向量(信号)A和B。

enter image description here

我要做的是获取A的所有部分并将其全部添加。然后将结果存储在B中。下图是一个示例。 enter image description here

最简单的方法是按以下代码列出每个添加项


-- other codes

signal A: std_logic_vector(11 downto 0) := "100101011000";
signal B: std_logic_vector(6 downto 0);

-- other codes

B <= std_logic_vector(
unsigned(A(11 downto 9))
+ unsigned(A(8 downto 6))
+ unsigned(A(5 downto 3))
+ unsigned(A(2 downto 0))
);

-- other codes

但是,当A和B变得很大时,上述方法可能效率不高。有没有有效的方法来创建等效代码? (也许使用生成表格?) 谢谢你的建议。

0 个答案:

没有答案