[::: Ayuda Programacion VHDL :::]

emigidio

Bovino Milenario
#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:

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 :D
 

elios

Bovino Milenario
#5
que onda compa yo tengo echo un programa en VHDL pero para FPGA's no se si te pueda servir ya que tu programa no se parece nada al que yo hice jeje de todos modos si lo quieres te lo puedo proporcionar solo avisame
 
#6
ocupas programar necesariamente yo tengo un programador para gal que lo puedes hacer desde el modo esquemático, o sea diágramas es sencillo aunque un poco delicado pero para lo que tu lo quieres te serviría muy bien
 
#7
HOLA AMIGO ESPERO TE AYUDE ESTO¡¡¡¡

:mmm:Bueno solo tienes que hacer una XOR entre el acarrero n-1 y n

BanderaOV <= C(3) XOR C(4);

y listo

:vientos:
 
#8
bueno yo necesito algo parecido, pero yo tengo que hacer un temporizador en VHDL o en esquematico pero aun no se muy bien como, si alguien pudiera ayudarme se lo agradeceria.
saludos
 
Arriba