A continuación se presenta la descripción y el banco de pruebas (test bench) de un multiplexor (mux) en VHDL, para ver si el funcionamiento de salida coincide con el teóricamente programado, cumpliendo la tabla de verdad del multiplexor.
El esquema del multiplexor sería, con su tabla de verdad:
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
(Tabla de verdad)
(Fundamento: La entrada 'S' es la que selecciona la entrada que va a ser la salida)
Aquí el código
--Declaración de las librerias a usar
library ieee;
use ieee.std_logic_1164.all;
--Declaración de la entidad
entity multiplexor is
port (A, B, S: in std_logic;
Y: out std_logic);
end multiplexor;
--Descripción comportamental
architecture behavior of multiplexor is
begin
process(A, B, S)
begin
if (S='1') then
Y <= B;
else
Y <= A;
end if;
end process;
end behavior;:
y aquí el test:
--Declaración librerias
library ieee;
use ieee.std_logic_1164.all;
entity testbench is
end testbench;
architecture behavior of testbench is
--Declaración de la unidad bajo test (uut)
component multiplexor
port (A, B, S: in std_logic;
Y: out std_logic);
end component;
signal A : std_logic:='0';
signal B : std_logic:='0';
signal S : std_logic:='0';
signal Y : std_logic:='0';
begin
uut: multiplexor port map (
A => A,
B => B,
S => S,
Y => Y
);
--Se asignan valores a las señales de test
estimulo: process
begin
wait for 1 ns;
A <= '0'; wait for 10 ns;
B <= '1'; wait for 10 ns;
S <= '1'; wait for 10 ns;
A <= '1'; wait for 10 ns;
B <= '0'; wait for 10 ns;
S <= '0'; wait for 10 ns;
end process estimulo;
end;
Y por último unas capturas del cronográma y del código:
Para más información sobre multiplexores, uno de los bloques básicos de sistemas combinacionales, se puede consultar cualquier libro de electrónica digital. Las señales de simulación se pueden cambiar a vuestro antojo.
Un saludo.
Buenas noches,
ResponderEliminarDisculpa, qué compilador utilizas?
Hola!
EliminarEl compilador que usé en su momento es Xilinx ISE.
Cuentas con una versión de evaluación en la web de xilinx:
http://www.xilinx.com/ise_eval/index.htm
Un saludo
WinCupl?
ResponderEliminar