TODOPIC
Otros Microcontroladores / Dispositivos programables => Lógica Programable => Mensaje iniciado por: electrowolf en 10 de Octubre de 2009, 12:33:25
-
Hola gente
bien les platico que tengo que entregar para el lunes en la noche un proyecto en vhdl de captura de un teclado ps/2 en una tarjeta spartan 3e, ya realice mi codigo, pero me piden de igual manera que haga un banco de pruebas para simularlo, hice uno, pero mi duda es que no se por que no se muestra nada mas alla de 120 ns. y otra duda que tengo es que tengo a la salida, pura señal "U"
les paso aqui el codigo que tengo en el banco de pruebas, le agradeceria mucho su ayuda, segun el codigo siguiente, simula pulsar la letra w:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
ENTITY keyb_ps2_sim_vhd IS
END keyb_ps2_sim_vhd;
ARCHITECTURE behavior OF keyb_ps2_sim_vhd IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT keyb_PS2
PORT(
clk : IN std_logic;
dato : IN std_logic;
rst : IN std_logic;
leds : OUT std_logic_vector(7 downto 0)
);
END COMPONENT;
--Inputs
SIGNAL clk : std_logic := '0';
SIGNAL dato : std_logic := '0';
SIGNAL rst : std_logic := '0';
--Outputs
SIGNAL leds : std_logic_vector(7 downto 0);
-- Constantes
signal ciclo: time := 40 ns;
signal tsu: time := 15 ns;
signal thld: time := 15 ns;
signal data: time := 30 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: keyb_PS2 PORT MAP(
clk => clk,
dato => dato,
rst => rst,
leds => leds
);
tb : PROCESS
BEGIN
loop
clk <= '1';
wait for (ciclo);
clk <= '0';
wait for (ciclo);
end loop;
END PROCESS;
rst <= '1',
'0' after ciclo*3;
dato <= '0',
'1' after (((ciclo*4)-tsu)+data*4),
'0' after ((((ciclo*4)-tsu)+data*4)+data*6),
'1' after (((((ciclo*4)-tsu)+data*4)+data*6)+data),
'0' after ((((((ciclo*4)-tsu)+data*4)+data*6)+data)+data),
'1' after (((((((ciclo*4)-tsu)+data*4)+data*6)+data)+data)+data),
'0' after ((((((((ciclo*4)-tsu)+data*4)+data*6)+data)+data)+data)+data*3),
'1' after (((((((((ciclo*4)-tsu)+data*4)+data*6)+data)+data)+data)+data*3)+data*3),
'0' after ((((((((((ciclo*4)-tsu)+data*4)+data*6)+data)+data)+data)+data*3)+data*3)+data*2);
END;
de antemano les agradesco nuevamente toda su ayuda
-
Ola chicos....saludos a todos
pues con la novedad de que ya pude simular el keyboard, lo que estaba mal era mi programa principal y no mi banco de pruebas jeje.....de tods maneras muchas gracias pro restr interes al mensaje.