按位16位和VHDL?

时间:2016-03-11 20:19:59

标签: vhdl logical-operators

如果我需要对两个16位输入执行按位AND操作并在VHDL中获得16位输出,我是否能够将两个输入和输出结果存储为输出向量?或者我是否需要遍历输入的每一位,然后将它们存储在输出向量中?这对于像和和xor这样的操作是否有效?

2 个答案:

答案 0 :(得分:4)

“{”}运算符在std_logic_1164std_logicstd_ulogicstd_logic_vector(通常使用的类型)的std_ulogic_vector包中过载。它还定义为bitbit_vector(以及signedunsigned)。

所以它就像应用“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;

http://www.edaplayground.com/x/Xuw