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
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
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 (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 (5)
Usar IC: 7447 para display de ánodo comúnUsar IC: 7448 para display de cátodo común