INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 1

Documentos relacionados
INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 5

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 4

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2013, Segunda Semana

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Septiembre 2016

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 10

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2014, Primera Semana

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 8

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2017, Primera Semana

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 6

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 3

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2014

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2015, Segunda Semana

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2014, Segunda Semana

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Septiembre de 2016

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2013

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2012

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2016

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2017

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2014

INGENIERÍA DE COMPUTADORES III. Solución al examen de Junio 2012, Primera Semana

INGENIERÍA DE COMPUTADORES III. Solución al examen de Junio 2012, Segunda Semana

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López.

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2013

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2012

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006.

DE INGENIERÍA TÉCNICA INDUSTRIAL. ESPECIALIDAD EN ELECTRÓNICA INDUSTRIAL

VHDL: Código Secuencial. Arquitectura del Computador 2017

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores

Practicas tuteladas VHDL (curso 04-05)

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

Ejemplos y tipos de datos 4.1 Ejemplos simples 4.2 Definición de nuevos tipos de datos 4.3 Ejemplos de máquinas de estados 4.

+ Máquinas de Estado Finitas

Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27

DISEÑODE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS.

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL

SECUENCIA: A BASE DE LOS 3 TIPOS DE F/F

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER

Sistemas Electrónicos Digitales Curso de adaptación al Grado

Practica 9 Estilos de codificar a estados FCE

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA INDUSTRIAL. ESPECIALIDAD ELECTRÓNICA BOLETÍN 2. CURSO 2003/04

Julio. [ Programación en VHDL ] Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / a s i g n a t u r a s / d s d.

----*************************************************************************

CONTADORES. Definición. Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos.

Simulación con un banco de pruebas VHDL - test bench.

Diseño de Sistemas Electrónicos Digitales Avanzados

1. Módulo de desarrollo Spartan 3 STARTER KIT con un FPGA xc3s200 ft Software de diseño XILINX ISE versión 10.1

Practica No. 8 Introducción a las Máquinas de Estados. 1. En la figura 1 se muestra el comportamiento de un robot que evade obstáculos.

Práctica I.- Introducción a los Sistemas Secuenciales

Tutorial 2: Pasar de diagrama ASM a un circuito

DISEÑO DE PROCESADORES DEDICADOS. Práctica 6 LCD de Propósito General

Tema 7. Análisis de Circuitos Secuenciales

DESCRIPCIÓN DE CIRCUITOS DIGITALES

PLANTILLA. [t], Maximino Peña Guerrero,

SENTENCIA LOOP 1.- Implementar y simular el siguiente circuito que cuenta el número de bits 1 que ingresan

Sistemas Electrónicos Digitales. PRACTICA nº 3

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) CUARTA CLASE DE VHDL

Estructura de VHDL. Sistemas Digitales Avanzados. Universidad Técnica Particular de Loja Prof: Diego Barragán Guerrero. Oct Feb.

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016)

Practica No. 5 Diseño de un Multiplicador

UNIVERSIDAD DE SEVILLA Dpto. de Ingeniería Electrónica. Introducción a los lenguajes HDL y conceptos. Octubre de 2007

Simulación avanzada con TestBench en HDL. Ing. Andrés Miguel Airabella. Ing. Facundo Aguilera.

VHDL. Carlos Andrés Luna Vázquez. Lección 10 Problemas

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016)

VHDL. Lenguaje de descripción hardware

MICROPROCESADOR (CÓDIGO EN VHDL) TOMADO DEL LIBRO PARDO Y BOLUDA

DISEÑO DE CIRCUITOS SECUENCIALES

Practica No. 5 Diseño de un Multiplicador

Recursos y Metodologías. Función. Programas

INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS

El código concurrente está destinado para el diseño de circuitos combinacionales.

GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL.

1.- Determina la funcionalidad del siguiente código VHDL. LIBRARY ieee; USE ieee.std_logic_1164.all;

Práctica I Modelado y simulación de una máquina expendedora de refrescos

SISTEMAS DIGITALES VHDL

Laboratorio de Arquitectura de Computadoras

PRÁCTICA: LENGUAJE VHDL

Sistemas Electrónicos Digitales. PRACTICA nº 5

Tutorial de VHDL: Contadores y Simulación

Simulación de circuitos descritos en VHDL

Práctica 7. Diseño en VHDL de un modulador PPM

INGENIERÍA DE COMPUTADORES 3. Trabajo Práctico - Convocatoria Ordinaria 2012

CONTADORES CONTADORES ASINCRONOS ASCENDENTE

Índice. VHDL Lección 2.9 Máquinas de Estados Finitos (FSM) 1

VI. Especificación del Comportamiento

ELECTRÓNICA DIGITAL 24-I Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos).

TEMA 1 FUNDAMENTOS DEL DISEÑO DEL HARDWARE DIGITAL

4.7 Aplicaciones usando la tarjeta Spartan 3E

INGENIERÍA DE COMPUTADORES 3. Trabajo Práctico - Septiembre 2013

Sistemas Electrónicos Digitales. PRACTICA nº 8

SINTAXIS BÁSICA DEL VHDL SIMPLIFICADO

INGENIERÍA DE COMPUTADORES 3. Trabajo Práctico - Septiembre 2012

INDICE. Definición de codificador Tipos de codificadores. Ejercicios. Referencias. Codificadores sin prioridad Codificadores con prioridad

Universidad Autónoma de Querétaro Facultad de Ingeniería

Lenguaje de descripción de Hardware VHSIC

INGENIERÍA DE COMPUTADORES 3. Trabajo Práctico - Junio 2018

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERIA ELECTRONICA ESCUELA DE ELECTRONICA

Transcripción:

INGENIERÍA DE COMPUTADORES III Solución al Ejercicio de Autocomprobación PREGUNTA (3 puntos) Escriba en VHDL la architecture que describe el comportamiento de un contador síncrono ascendente módulo 4 en términos de una máquina de Moore. La salida del contador toma cíclicamente los valores 00, 0, 0,. Si la cuenta está habilitada, se obtiene un nuevo valor de la salida en cada flanco de subida de la señal de reloj. La entrada c habilita la cuenta cuando está a y la deshabilita cuando está a 0. La entrada reset es una señal asíncrona activa a nivel alto que pone la cuenta a 00. La entity del contador se muestra a continuación. entity contador_mod_4 is port( state : out std_logic_vector( downto 0); clock, reset, c : in std_logic); end entity contador_mod_4; Solución a la Pregunta El Código VHDL.2 es un posible diseño del contador módulo 4. El Código VHDL. es un package en el cual se ha definido la codificación de los estados. ----------------- library IEEE; use IEEE.std_logic_64.all; package STATE_CONSTANTS is constant S0: std_logic_vector( downto 0) := "00"; constant S: std_logic_vector( downto 0) := "0"; constant S2: std_logic_vector( downto 0) := "0"; constant S3: std_logic_vector( downto 0) := ""; end package; ----------------- -- Estados Código VHDL.: Constantes del diseño del contador ascendente módulo 4.

INGENIERÍA DE LOS COMPUTADORES III ----------------- -- Contador módulo 4 implementado como máquina de Moore library IEEE; use IEEE.std_logic_64.all; use work.state_constants.all; entity contador_mod_4 is port( state : out std_logic_vector( downto 0); clock, reset, c : in std_logic); end entity contador_mod_4; architecture contador_mod_4 of contador_mod_4 is signal internal_state : std_logic_vector( downto 0); state <= internal_state; proximo_estado: process (clock, reset) -- Cálculo del próximo estado if (reset = ) then elsif (rising_edge(clock)) then case internal_state is when S0 => internal_state <= S; when S => internal_state <= S2; internal_state <= S; when S2 => internal_state <= S3; internal_state <= S2; when S3 => internal_state <= S3; when others=> end case; end process proximo_estado; end architecture contador_mod_4; ------- Código VHDL.2: Diseño de un contador ascendente módulo 4. 2 Dpto. de Informática y Automática, UNED

SOLUCIÓN AL EJERCICIO DE AUTOCOMPROBACIÓN PREGUNTA 2 (3 puntos) Programe en VHDL el banco de pruebas del contador que ha diseñado al resolver la Pregunta. El banco de pruebas debe comprobar el funcionamiento del circuito de forma exhaustiva. El banco de pruebas debe generar un conjunto de vectores de test, comprobar si la salida de la UUT es correcta, mostrar un mensaje cada vez que la salida de la UUT no sea correcta y mostrar un mensaje al finalizar el test indicando el número total de salidas incorrectas. Solución a la Pregunta 2 El Código VHDL.3 y.4 es un posible banco de pruebas para el circuito. En el diagrama de transición de estados del circuito, que se muestra en la Figura., se ha señalado el orden en el cual el programa de test recorre los arcos. 0 3 0 0 reset 2 s0 s 8 4 s 3 6 s 2 7 0 5 0 Figura.: Diagrama de transición de estados de un contador ascendente módulo 4. En el diagrama se ha señalado el orden en el cual el programa de test recorre los arcos. Dpto. de Informática y Automática, UNED 3

INGENIERÍA DE LOS COMPUTADORES III -- Banco de pruebas del contador ascendente sincrono modulo 4 library IEEE; use IEEE.std_logic_64.all; use work.state_constants.all; entity bp_contador_mod_4 is end entity bp_contador_mod_4; architecture bp_contador_mod_4 of bp_contador_mod_4 is constant PERIODO : time := 00 ns; -- Reloj signal q : std_logic_vector( downto 0); -- Salidas UUT signal clk : std_logic := 0 ; -- Entradas UUT signal reset, c : std_logic; component contador_mod_4 is port ( state : out std_logic_vector( downto 0); clock, reset, c : in std_logic ); end component contador_mod_4; -- Procedimiento para comprobar las salidas procedure comprueba_salidas ( esperado_q : std_logic_vector( downto 0); actual_q : std_logic_vector( downto 0); error_count : inout integer) is -- Comprueba q if ( esperado_q /= actual_q ) then report "ERROR: Estado esperado (" & std_logic image(esperado_q()) & std_logic image(esperado_q(0)) & "), estado actual (" std_logic image(actual_q()) & & std_logic image(actual_q(0)) & "), instante: " & time image(now); error_count := error_count + ; end procedure comprueba_salidas; -- Instanciar y conectar UUT uut : component contador_mod_4 port map reset <= 0, after (PERIODO/4), 0 after (PERIODO+PERIODO/4); clk <= not clk after (PERIODO/2); ------- (q, clk, reset, c); Código VHDL.3: Parte inicial del banco de pruebas del contador ascendente módulo 4. 4 Dpto. de Informática y Automática, UNED

SOLUCIÓN AL EJERCICIO DE AUTOCOMPROBACIÓN -- Continuación del banco de pruebas del contador ascendente síncrono modulo 4 gen_vec_test : process is variable error_count : integer := 0; -- Núm. errores report "Comienza la simulación"; -- Vectores de test y comprobación del resultado C <= 0 ; wait for PERIODO; -- comprueba_salidas(s0, q, error_count); C <= ; wait for PERIODO; -- 2 comprueba_salidas(s, q, error_count); C <= 0 ; wait for PERIODO; -- 3 comprueba_salidas(s,q, error_count); C <= ; wait for PERIODO; -- 4 comprueba_salidas(s2, q, error_count); C <= 0 ; wait for PERIODO; -- 5 comprueba_salidas(s2,q, error_count); C <= ; wait for PERIODO; -- 6 comprueba_salidas(s3, q, error_count); C <= 0 ; wait for PERIODO; -- 7 comprueba_salidas(s3, q, error_count); C <= ; wait for PERIODO; -- 8 comprueba_salidas(s0, q, error_count); -- Informe final if (error_count = 0) then report "Simulación finalizada sin errores"; report "ERROR: Hay " & integer image(error_count ) & " errores."; wait; -- Final del bloque process end process gen_vec_test; end architecture bp_contador_mod_4; Código VHDL.4: Parte final del banco de pruebas del contador ascendente módulo 4. Dpto. de Informática y Automática, UNED 5

INGENIERÍA DE LOS COMPUTADORES III PREGUNTA 3 (2 puntos) Escriba en VHDL la architecture que describa el comportamiento de un circuito combinacional que realiza operaciones de desplazamiento sobre una entrada de 4 bits. La entrada de selección de operación del circuito es op. Las señales de entrada y salida se llaman, respectivamente, entrada y salida. La tabla de operaciones y la entity del circuito son: op Operación 0 0 Desplaza bit a la izquierda rellenando con 0 0 Desplaza bit a la derecha rellenando con 0 Rota bit a la izquierda Rota bit a la derecha entity desplazador is port( salida : out std_logic_vector(3 downto 0); op : in std_logic_vector( downto 0); entrada : in std_logic_vector(3 downto 0)); end entity desplazador; Solución a la Pregunta 3 El Código VHDL.5 es un posible diseño del circuito. ----------------------------------- library IEEE; use IEEE.std_logic_64.all; entity desplazador is port( salida : out std_logic_vector(3 downto 0); op : in std_logic_vector( downto 0); entrada : in std_logic_vector(3 downto 0)); end desplazador; architecture desplazador of desplazador is salida <= entrada(2 downto 0) & 0 when (op = "00") & entrada(3 downto ) when (op = "0") entrada(2 downto 0) & entrada(3) when (op = "0") entrada(0) & entrada(3 downto ); end architecture desplazador; ----------------------------------- Código VHDL.5: Diseño del circuito desplazador. 6 Dpto. de Informática y Automática, UNED

SOLUCIÓN AL EJERCICIO DE AUTOCOMPROBACIÓN PREGUNTA 4 (2 puntos) Escriba en VHDL la architecture del flip-flop D cuyo comportamiento se describe a continuación, empleando para ello una sentencia if. Además de la entrada de reloj (Clock), el flip-flop tiene otras cuatro señales de entrada: D, Enable, Set y Clear. El flip-flop tiene una única señal de salida, cuyo valor coincide en todo momento con el valor del estado del circuito (Q). entity FFD is port( Q : out std_logic; Clock, Enable, Set, Clear, D : in std_logic); end entity FFD; Cuando la entrada asíncrona Set es puesta al valor, el estado del flip-flop cambia inmediatamente al valor. Por el contrario, cuando la entrada asíncrona Clear es puesta al valor, el estado del flip-flop cambia inmediatamente al valor 0. La entrada Set ha de tener prioridad sobre la entrada Clear. Si la señal Enable vale, entonces en el flanco de subida de la señal de reloj se asigna el valor de la entrada D al estado del flip-flop (Q). Por el contrario, si la señal Enable vale 0, la carga del flip-flop desde la entrada D está deshabilitada. Solución a la Pregunta 4 library IEEE; use IEEE.std_logic_64.all; entity FFD is port( Q : out std_logic; Clock, Enable, Set, Clear, D : in std_logic); end entity FFD; architecture FFD of FFD is process(clock, Set, Clear) if Set = then Q <= ; elsif Clear = then Q<= 0 ; elsif (rising_edge(clock)) then if (Enable = ) then Q <= D; end process; end architecture FFD; Código VHDL.6: Diseño de un flip-flop D con señales enable, set y clear. Dpto. de Informática y Automática, UNED 7