You are on page 1of 3

1

PRCTICA VHDL

end Behavioral;

Presentar la resolucin y descripcin de soluciones, la


funcionalidad se presentara a travs de la herramienta ISE.

TEST BENCH: con todas las combinaciones posibles.


I. INTRODUCION

STE documento es una prctica sobre la programacin


bsica en VHDL
II. DESARROLLO
1.

Se tiene una SRAM con 2K instrucciones de 32 bits


cada una, Cuantas direcciones son necesarias para
direccionar estos datos (instrucciones). Recordar
que 1024 = 2^10.

Se necesitan 11 bits o 2048 address para poder cubrir las 2000


instrucciones de la SRAM, la profundidad de 32 bits de cada
instruccin no juega un papel importante a la hora de
direccionar las instrucciones.
2.

Completar el diagrama de tiempos de la entidad cuya


descripcin VHDL se muestra a continuacin.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_1164.all;
entity EJ_2 is
Port ( clk : in STD_LOGIC;
rstn : in STD_LOGIC;
a : in STD_LOGIC;
b : in STD_LOGIC;
x : in STD_LOGIC;
q : out STD_LOGIC);
end EJ_2;
architecture Behavioral of EJ_2 is
signal qt: std_logic;
begin
process (rstn, clk, a, b, x)
begin
if rstn= '0' then
qt <= '0';
elsif (clk'event and clk = '1') then
if x = '1' then
qt <= not(qt);
else
qt <= a and b;
end if;
end if;
end process;
q <= qt;

Si rstn esta en 0 la salida q sera 0 si rstn esta en 1 el


comportamiento del sistema sera receptivo al pulso de reloj, si
clk esta 1 entonces el sitema para ser receptivo a X (selector
de estados), y si X es igual a 1 entonces la salida Q se niega, si
X es 0 entonces la salida pasa a ser un and entre a y b.
TEST BENCH: con las combinaciones pedidas.
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY EJ_2TB IS
END EJ_2TB;
ARCHITECTURE behavior OF EJ_2TB IS
COMPONENT EJ_2
PORT(
clk : IN std_logic;
rstn : IN std_logic;
a : IN std_logic;

2
b : IN std_logic;
x : IN std_logic;
q : OUT std_logic
);
END COMPONENT;
signal clk : std_logic := '0';
signal rstn : std_logic := '0';
signal a : std_logic := '0';
signal b : std_logic := '0';
signal x : std_logic := '0';
signal q : std_logic;
constant clk_period : time := 10 ns;
BEGIN
uut: EJ_2 PORT MAP (
clk => clk,
rstn => rstn,
a => a,
b => b,
x => x,
q => q
);

rstn<= '1';
wait for 10 ns;
a <=
'1';
b <=
'1';
x <=
'0';
rstn<= '1';
wait for 10 ns;
a <=
'0';
b <=
'0';
x <=
'0';
rstn<= '1';
wait for 10 ns;
a <=
'0';
b <=
'0';
x <=
'1';
rstn<= '1';
wait for 10 ns;
wait;
end process;
END;

clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
stim_proc: process
begin
a <=
'0';
b <=
'0';
x <=
'0';
rstn<= '0';
wait for 10 ns;
a <=
'1';
b <=
'1';
x <=
'1';
rstn<= '1';
wait for 10 ns;
a <=
'1';
b <=
'0';
x <=
'0';
rstn<= '1';
wait for 10 ns;
a <=
'0';
b <=
'0';
x <=
'0';
rstn<= '1';
wait for 10 ns;
a <=
'1';
b <=
'0';
x <=
'1';

Presentar el esquema general del Diseo de un


microprocesador basico, describiendo cada uno de
los componentes fundamentales en su estructura
(Entidad y Arquitectura) en lenguaje VHDL.
Considerar como base los siguientes elemntos:
3.

Registros: DR, AR, IR, detallar modos de


direccionamiento de su diseo a travs de un proceso.
PC (program counter), con caractersticas de
habilitacin y saltos determinados.
ALU (definir como componentes a travs de uno o
mas procesos que describan las operaciones,
especificar mnimamente 5 operaciones lgicas y 3
operaciones aritmticas), incluir puertos para carry
in y carry out.
Memoria de instrucciones y/o datos, especificar el
tamao (ancho y profundidad) especifico necesario
segn su diseo (es posible describir brevemente la
utilizacin de un IP diseado para esta funcin).
Crear un proceso de una identidad principal que
simule la funcionalidad de una unidad de control.
Definir el tamao de palabra de cada instruccin.

You might also like