emigidio
Bovino de alcurnia
- Desde
- 8 Oct 2007
- Mensajes
- 2.689
- Tema Autor
- #1
Hola que tal a todos los compañeros de la comunidad. Ahora vengo con la molestia para ver si alguno de ustedes me puede ayudar, mi problema es el siguiente:
Estoy tomando la materia de digital I y tengo que entregar como proyecto final un sumador completo de cuatro bits con sus cuantro banderas, de las cuales ya tengo el carrey, Z y la N pero me falta V que es la de desvordamiento y la verdad no se como programarlo.
Mi segundo problema es que al programar preeliminarmente una GAL22V10-25LP con el sumador y las tres banderas me lleve la gran sorpresa de que no cabe en la gal entonces no se como hacerle para que me quepa, me surguio la idea de hacer dos sumadores de 2 bits y programarlos en dos GAL pero no se muy bien como despues juntarlas. Les dejo el codigo:
Espero pueda ayudar, lo necesito para el lunes, les agradecere mucho
Estoy tomando la materia de digital I y tengo que entregar como proyecto final un sumador completo de cuatro bits con sus cuantro banderas, de las cuales ya tengo el carrey, Z y la N pero me falta V que es la de desvordamiento y la verdad no se como programarlo.
Mi segundo problema es que al programar preeliminarmente una GAL22V10-25LP con el sumador y las tres banderas me lleve la gran sorpresa de que no cabe en la gal entonces no se como hacerle para que me quepa, me surguio la idea de hacer dos sumadores de 2 bits y programarlos en dos GAL pero no se muy bien como despues juntarlas. Les dejo el codigo:
Código:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY Sumador IS
GENERIC(No: INTEGER :=4);
PORT(
A,B : in std_logic_vector(No-1 DOWNTO 0);
Cin : in std_logic;
S : out std_logic_vector(No-1 DOWNTO 0);
Cout: out std_logic;
Z,N: out std_logic
);
END Sumador;
ARCHITECTURE bits_4 OF Sumador IS
BEGIN
PROCESS (A, B, Cin)
VARIABLE suma: std_logic_vector(No DOWNTO 0);
BEGIN
suma := ('0' & A) + ('0' & B) + Cin;
S <= std_logic_vector (suma(No-1 DOWNTO 0));
Cout <= std_logic(suma(No));
N <= std_logic(suma(No-1));
IF std_logic_vector(suma(No-1 DOWNTO 0)) = 0
THEN z <= '1';
ELSE z <= '0';
END IF;
END PROCESS;
END bits_4;
Espero pueda ayudar, lo necesito para el lunes, les agradecere mucho
