📄 adder4.vhd
字号:
library ieee;
use ieee.std_logic_1164.all;
entity adder4 is
--generic (n:integer:=3);
port(a: in std_logic_vector(3 downto 0);
b: in std_logic_vector(3 downto 0);
cin :in std_logic;
--co : out std_logic;
led : out std_logic_vector(7 downto 0));
end adder4 ;
architecture hav of adder4 is
component adder
port(a : in std_logic;
b : in std_logic;
cin: in std_logic;
co :out std_logic;
s :out std_logic);
end component;
signal carr : std_logic_vector(3 downto 0);
signal s : std_logic_vector(3 downto 0);
begin
label1:
for i in 0 to 3 generate
label2: if (i=0) generate
adderx: adder port map (a(i),b(i),cin,carr(i),s(i));
end generate label2;
label3: if(i=3) generate
adderx: adder port map(a(i),b(i),carr(i-1),carr(i),s(i));
end generate label3;
label4: if ((i/=0) and (i/=3)) generate
adderx: adder port map(a(i),b(i),carr(i-1),carr(i),s(i));
end generate label4;
end generate label1;
process (carr(3),s)
begin
if carr(3)='0' then
case s is
when "0000"=> led<="00000000";
when "0001"=> led<="00000001";
when "0010"=> led<="00000010";
when "0011"=> led<="00000011";
when "0100"=> led<="00000100";
when "0101"=> led<="00000101";
when "0110"=> led<="00000110";
when "0111"=> led<="00000111";
when "1000"=> led<="00001000";
when "1001"=> led<="00001001";
when "1010"=> led<="00010000";
when "1011"=> led<="00010001";
when "1100"=> led<="00010010";
when "1101"=> led<="00010011";
when "1110"=> led<="00010100";
when "1111"=> led<="00010101";
when others=> led<="11111111";
end case;
else
case s is
when "0000"=> led<="00010110";
when "0001"=> led<="00010111";
when "0010"=> led<="00011000";
when "0011"=> led<="00011001";
when "0100"=> led<="00100000";
when "0101"=> led<="00100001";
when "0110"=> led<="00100010";
when "0111"=> led<="00100011";
when "1000"=> led<="00100100";
when "1001"=> led<="00100101";
when "1010"=> led<="00100110";
when "1011"=> led<="00100111";
when "1100"=> led<="00101000";
when "1101"=> led<="00101001";
when "1110"=> led<="00110000";
when "1111"=> led<="00110001";
when others=> led<="11111111";
end case;
end if;
end process;
end hav;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -