如果我需要对两个16位输入执行按位AND操作并在VHDL中获得16位输出,我是否能够将两个输入和输出结果存储为输出向量?或者我是否需要遍历输入的每一位,然后将它们存储在输出向量中?这对于像和和xor这样的操作是否有效?
答案 0 :(得分:4)
“{”}运算符在std_logic_1164
,std_logic
,std_ulogic
和std_logic_vector
(通常使用的类型)的std_ulogic_vector
包中过载。它还定义为bit
和bit_vector
(以及signed
和unsigned
)。
所以它就像应用“and”运算符一样简单。例如:
architecture rtl of test is
signal a : std_logic_vector(15 downto 0);
signal b : std_logic_vector(15 downto 0);
signal y : std_logic_vector(15 downto 0);
begin
y <= a and b; -- Or 'y <= a xor b;' or 'y <= a or b;', etc
end architecture rtl;
答案 1 :(得分:0)
您可以使用and
。
library IEEE;
use IEEE.std_logic_1164.all;
entity and_gate is
port(
a: in std_logic_vector(15 downto 0);
b: in std_logic_vector(15 downto 0);
q: out std_logic_vector(15 downto 0));
end and_gate;
architecture rtl of and_gate is
begin
q <= a and b;
end rtl;