You are on page 1of 1

dp_a.

vhd Thu Sep 20 12:18:05 2018


1 library IEEE;
2 use IEEE.STD_LOGIC_1164.ALL;
3 use IEEE.NUMERIC_STD.ALL;
4
5 entity dp_a is
6 Port ( A : in STD_LOGIC_VECTOR (7 downto 0);
7 LA : in STD_LOGIC;
8 EA : in STD_LOGIC;
9 LB : in STD_LOGIC;
10 EB : in STD_LOGIC;
11 clk : in STD_LOGIC;
12 z : out STD_LOGIC;
13 a0 : out STD_LOGIC;
14 Dout : out STD_LOGIC_VECTOR (7 downto 0));
15 end dp_a;
16
17 architecture Behavioral of dp_a is
18 signal a_r,b_r: unsigned (7 downto 0); -- slaida de los registros: desplazamiento y contador
19 begin
20
21 --========== shift register para almacenar y rotar el dato de entrada A ==============
22 shift_reg:process(clk)
23 begin
24 if rising_edge(clk) then
25 if LA='1' then
26 a_r <= unsigned(A); --cargar el shift register con el dato de entrada A
27 elsif EA='1' then
28 a_r <= shift_right(a_r,1);
29 end if;
30 end if;
31 end process;
32 --===================================================================================
33
34 --========== counter rgister para almacenar el numero de unos =========================
35 counter_reg:process(clk)
36 begin
37 if rising_edge(clk) then
38 if LB='1' then
39 b_r <= (others=>'0');
40 elsif EB='1' then
41 b_r <= b_r+1; --incrementar el contador
42 end if;
43 end if;
44 end process;
45 --===================================================================================
46
47 --========== comparador con zero ====================================================
48 z <= '1' when a_r = "00000000" else '0'; -- compuerta nor
49 --===================================================================================
50
51 --========== salida a0 ==============================================================
52 a0 <= a_r(0);
53 --===================================================================================
54
55 --========== salida Dout ============================================================
56 Dout <= std_logic_vector(b_r);
57 --===================================================================================
58
59 end Behavioral;
60
61

Page 1

You might also like