23
LAB 3 Redes Combinacionales Laboratorio de Sistemas Digitales ELO212 Primer Semestre de 2010

Redes Combinacionalesramos.elo.utfsm.cl/~elo212/docs/elo212-clase3-0110.pdf6 110 101 5 101 111 4 100 110 3 011 010 2 010 011 1 001 001 0 000 000 Gray (g 2,g 1,g 0) Binario (b 2,b 1,b

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

LAB 3Redes Combinacionales

Laboratorio de Sistemas DigitalesELO212Primer Semestre de 2010

Objetivos Generales

Modelar, diseñar y construir circuitos combinacionalesVerificar usando simulación

funcional temporal

Realizar pruebas estáticasdinámicas

Diseño de Circuitos

Elementos necesarios:Ecuaciones reducidas del diseñoEsquemático lógicoDiagrama de conexiones

OPa

Unidad Aritmética Lógica

i

OPb

result

Ctl

cte[i]

Operaciones de la ALU

sumaopa + opb + cte[i]11

xoropa ^ opb ^ cte[i]10

oropa | opb | cte[i]01

andopa & opb & cte[i]00

DescripciónOperaciónCtl

Código Verilog de la ALU (1)

module alu3(A, B, i, Ctl, result);input [1:0] A, B, i, Ctl;output reg [3:0] result;

reg [1:0] cte0 = 2'b00, cte1 = 2'b11, cte2 = 2'b01, cte3 = 2'b10, cte;

assign cte = i == 0 ? cte0 : i == 1 ? cte1 : i == 2 ? cte2 : cte3;

Código Verilog de la ALU (2)

always @(A or B or i or Ctl)begin

case (Ctl)0: result = A & B & cte;1: result = A | B | cte;2: result = A ^ B ^ cte;default: result = A + B + cte;

end

endmodule

Módulo de Prueba de la ALU

module testalu3_v;reg [1:0] A, B, C, Ctl; wire [3:0] result;

alu3 uut (.A(A), .B(B), .i(i), .Ctl(Ctl), .result(result));

initial beginA = 0; B = 0; i = 0; Ctl = 0;

$display("A \t B \t i \t Ctl \t Result");$monitor("%b \t %b \t %d \t %d \t %b",

A, B, i, Ctl, result);#100;repeat(256)

#10 {A,B,i,Ctl} = {A,B,i,Ctl} + 1;end

endmodule

Decrementador/Incrementador (1)

Circuito combinacionalEntradas: e (cuenta), ctl (control)Salida: s Operación:if (ctl) s = e + x; else s = e - x;Obeservación:

Si (e < x ∧ ctl = 0) ⇒ underflowSi (e + x > 0xF ∧ ctl = 1) ⇒ overflow

Decrementador/Incrementador (2)

module decinc(e, ctl, s)parameter M = 3, x = 2; input [M:0] e;input ctl; output [M:0] s;

assign s = …..

endmodule

Asignación de Constante x

Paralelo Martes: x = 1Paralelo Miércoles: x = 2Paralelo Jueves: x = 1Paralelo Viernes: x = 4

Contador Gray (1)

10011171011106111101511010040100113011010200100110000000

Gray(g2,g1,g0)

Binario (b2,b1,b0)

Cuenta

Contador Gray (2)

g2 = b2

g1 = b2 ^ b1

g0 = b1 ^ b0

Contador Gray (3)

Para el laboratorio se deberá extender el diseño a un contador Gray de 4 bit

Circuito Digital (guía 2.5)

Contador Gray

Decrementador/Incrementador

e4 4

4

g

sctl

1

Trabajo Previo

Diseñar ALU de 4 bitSimulación funcional de la ALU de 4 bit

Diseñar dec./inc.Simulación funcional

Diseñar contador Gray 4 bitSimulación funcional

Armar circuitoContador GrayDecrementador / Incrementador

En el Laboratorio

Mostrar trabajo previo, incluye circuito armadoAñadir generador de pulsos y contador de 4 bit para pruebas dinámicas del circuitoAñadir display 7 segmentos

Display 7 Segmentos (1)

f

a

g

d

b

ce ánodo cátododp

Cada segmento es un led:

Display 7 Segmentos (2)

R R R R R R R R

a b c d e f g dp

VccConfiguración Ánodo Común

¡Se deben añadir resistencias limitadoras de corriente!

Display 7 Segmentos (3)

R

a

R

b

R

c

R

d

R

e

R

f

R

g

R

dp

GND

Configuración Cátodo Común

Display 7 Segmentos (4)

Conversor BCD 7 segmentos

Display 7 Segmentos (5)

Usar IC: 7447 para display de ánodo comúnUsar IC: 7448 para display de cátodo común

Recomendaciones Lab 3

Como parte de la preparación previa:Realizar pruebas estáticas del contador Gray e incrementador/decrementadorCablear decodificador BCD / 7 segmentos, resistencias y displayPreubas estáticas del decodificador BCD / 7seg