Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DISEÑO VLSI
ARMAS JORDAN
NRC: 8417
2. OBJETIVOS
2.1. OBJETIVO GENERAL
Conocer la estructura y funcionamiento de las compuertas “AND” y “EXOR”
diseñar los mismos en Microwind.
4. DESARROLLO
ModelSim
4.2 Procedimiento
Planteamiento
Se tiene una asamblea con 5 personas (A, B, C, D y E). Si en una votación, tres o más de
ellas votan SI, el resultado de la función es “1”, caso contrario “0”.
1. Realice una tabla de verdad que exprese la relación entre entradas y salida
2. A partir de la tabla de verdad obtener la función lógica utilizando SOP
𝑦 = 𝑚7 + 𝑚11 + 𝑚13 + 𝑚14 + 𝑚15 + 𝑚19 + 𝑚21 + 𝑚22 + 𝑚23 + 𝑚25 + 𝑚26 + 𝑚27
+ 𝑚28 + 𝑚29 + 𝑚30 + 𝑚31
+𝐴𝐵̅𝐶𝐷𝐸 + 𝐴𝐵𝐶̅ 𝐷
̅ 𝐸 + 𝐴𝐵𝐶̅ 𝐷𝐸̅ + 𝐴𝐵𝐶̅ 𝐷𝐸
̅ 𝐸̅ + 𝐴𝐵𝐶𝐷
+𝐴𝐵𝐶𝐷 ̅ 𝐸 + 𝐴𝐵𝐶𝐷𝐸̅ + 𝐴𝐵𝐶𝐷𝐸
00 1
01 1 1 1 1
11 1 1 1 1 1 1 1
10 1 1 1 1
𝑦 = 𝐶𝐷𝐸 + 𝐵𝐷𝐸 + 𝐵𝐶𝐸 + 𝐵𝐶𝐷 + 𝐴𝐷𝐸 + 𝐴𝐶𝐸 + 𝐴𝐶𝐷 + 𝐴𝐵𝐸 + 𝐴𝐵𝐷 + 𝐴𝐵𝐶
Para nuestro test bench debemos inicializar nuestras variables y definir que valores van a
tomar nuestras entradas, construyendo la tabla de verdad de manera que el valor de las
entradas cambie conforme pase un tiempo estimado .
entity testbench is
end entity;
architecture tabla of testbench is
component compuertas is port
(a,b,c,d,e: in std_logic; y: out std_logic);
end component;
signal a,b,c,d,e: std_logic:='0';
signal y: std_logic:='0';
begin
comp: compuertas port map(a,b,c,d,e,y);
e <= '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1'
after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after
130 ns,'0' after 140 ns, '1' after 150 ns, '0' after 160 ns, '1' after 170 ns, '0' after 180 ns, '1' after 190
ns,'0' after 200 ns, '1' after 210 ns, '0' after 220 ns, '1' after 230 ns, '0' after 240 ns, '1' after 250
ns,'0' after 260 ns, '1' after 270 ns, '0' after 280 ns, '1' after 290 ns, '0' after 300 ns, '1' after 310 ns;
d <= '1' after 20 ns, '0' after 40 ns, '1' after 60 ns, '0' after 80 ns, '1' after 100 ns, '0' after 120 ns,
'1' after 140 ns, '0' after 160 ns, '1' after 180 ns, '0' after 200 ns, '1' after 220 ns, '0' after 240 ns, '1'
after 260 ns,'0' after 280 ns, '1' after 300 ns;
c <= '1' after 40 ns, '0' after 80 ns, '1' after 120 ns, '0' after 160 ns, '1' after 200 ns, '0' after 240
ns,'1' after 280 ns;
b <= '1' after 80 ns, '0' after 160 ns,'1' after 240 ns;
a <= '1' after 160 ns;
end architecture;
Simulación.
Para poder simular usaremos el comando “run 320 ns” considerando el tiempo necesario
para poder cubrir todas las combinaciones necesarias de manera que en la siguiente
figura podemos observar entonces el comportamiento de la función.
5. ANÁLISIS DE RESULTADOS
Para comprobar el funcionamiento y los resultados obtenidos procedemos a comparar con
la tabla de verdad así que solamente cuando en tres de las cinco señales de entrada exista
un “high” obtnemos en la salida y un “high” para cualquier otra combinación la salida
estará dada por un “low”, cumpliendo asi con un funcionamiento correcto
6. CONCLUSIONES:
Para construir la tabla de verdad se necesita generar estímulos asignando un
valor estimado de tiempo para que cada entrada pueda variar.
Un test bench permite construir una tabla de verdad de un circuito
combinacional funcionando como un banco de pruebas en VHDL.
Las simulaciones ModelSim muestran los resultados experimentales y la
exactitud de la funcionalidad de varios módulos orientados al diseño de
circuitos
.
7. RECOMENDACIONES:
Al compilar el proyecto si se produce algun error sintáctico debe ser debido a
incongruencias con los nombres de la entidad o arquitectura, es recomendable
realizar una revisión pertinente para evitar esto.
Podemos ajustar las unidades del eje cronológico para una mejor visualización
de la señal.
8. BIBLIOGRAFÍA:
Synthesizable VHDL Design for FPGAs, Springer Science & Business Media, 21-Oct-
2013