UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO212 Laboratorio de Sistemas Digitales Primer Semestre de 2007 Quiz 1 Diseño en Verilog Se requiere de un circuito decodificador de las cuentas BCD/7 segmentos ánodo común, (sin considerar el punto), que sólo despliegue los dígitos 3, 5 y 7. Para el resto de los casos, la salida sólo despliega el segmento g. 1.1 Diseñe un módulo que implemente el decodificador, considerando el segmento a como el bit más significativo. 1.2 Usando diseño jerárquico, implemente el decodificador para entradas de 3 cifras BCD (referencia: entrada 12 bits, salida 21 bits). 1.3 Implemente un módulo de prueba para el circuito de la pregunta 1.2. Circuitos Se requiere implementar un circuito contador de 2 cifras decimales (de 00 a 99). Se dispone de contadores (74393), compuertas lógicas AND de 2 entradas (7408) y negadores (7404), decodificadores BCD/7 segmentos de ánodo común (7447), y displays de 7 segmentos de cátodo común. Además, se dispone de resistencias de 220 ohms, Vcc, tierra (Gnd), y una fuente de reloj (Clk). 1.4 Diseñe a nivel de diagrama de bloques y sólo para un display, la conexión BCD/7 segmentos – display (no es necesario indicar número de pin en cada componente). 1.5 Diseñe la etapa de cuenta para 2 dígitos BCD. La salida de este circuito será la entrada para 2 circuitos (idénticos) diseñados en el punto anterior. 1.6 Diseñe, para un dígito decimal, el circuito de reset del contador. 1.7 Indique una fuente de sincronización para desplegar las entradas a los displays de 7 segmentos. Quiz 2 2.1 Diseñe el módulo clkdiv que permita generar la señal de reloj clko cuyo periodo es 315 veces el periodo de la señal de reloj de entrada clki. module clkdiv(clki, clko); input clki; output clko; // ... endmodule 2.2 (33 p.) Complete el siguiente módulo ring para manejar un corrimiento circular de un bit hacia la derecha. En todo momento el registro s contiene sólo un uno. 14/03/2008 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO212 Laboratorio de Sistemas Digitales Primer Semestre de 2007 module ring(clk, s); input clk; output reg [3:0] s; // ... endmodule 2.3 (33. p) Dado el módulo del teclado: module kbd(rst, clk, kd, kc, kbs, value) Diseñe un módulo countkey que entregue como salida la cantidad de teclas presionadas desde el último reset. module countkey(clk, rst, kd, kc, s); input clk, rst, kd, kc; output reg [10:0] s; // ... Endmodule Quiz 3 Reconocedor continuo de la secuencia 0110. 3.1 Proponga un diagrama de estado para esta máquina. 3.2 Diseñe el módulo en sec en Verilog para reconocer la secuencia. module sec(rst, clk, e, s); input rst, clk, e; // señal de reset, reloj y entrada output s; // salida // ... endmodule Tablero de Ajedrez. Se dispone de los contadores horizontales y verticales hc y vc respectivamente, así como de una señal de reloj clkdiv y de los parámetros hsc, vsc, hbp, vbp, hfp, vfp, y la señal de blanking horizontal vidon de acuerdo a las especificaciones dadas en la experiencia 8. 3.3 (30 p.) Diseñe en Verilog una máquina secuencial que permita generar un contador (reg [5:0] c) de 0 a 63, donde los 3 bits menos significativos del contador describen la columna y los 3 bits más significativos describen la fila de un tablero de ajedrez, para una pantalla de 800 x 600. 3.4 (20 p.) Dado el contador “c” diseñado en 3.3, diseñe en Verilog un circuito combinacional para definir rgb que genere un tablero de 8 x 8 casillas. 14/03/2008