Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
• Lógicos: !, &&, ||
• De concatenación: { }
B
Sel
• C = BSel + ASel’
Descripción de Circuitos
• Por estructura
• Por comportamiento
A
Diseño estructural B
Sel
wire W, X, Y;
not(W, Sel);
and(X, A, W);
and(Y, B, Sel);
or(C, X, Y);
endmodule
A
Diseño comportamental B
Sel
Bloque always B
Sel
always@(*) begin
if(w == 0) sum = 0;
else if (w == 1) sum = 1;
else if (w == 2) sum = 1;
else sum = 2;
end
endmodule
Diseño Jerárquico
module CounterA(sum, w);
output reg [1:0] sum;
input [1:0] w;
always@(*) begin
if(w == 0) sum = 0;
else if (w == 1) sum = 1;
else if (w == 2) sum = 1;
else sum = 2;
end module TheFinalCounter(sum, w);
endmodule
output [2:0] sum;
input [3:0] w;
initial begin
A = 0; // Initialize Inputs
#(100) // Wait 100 time unit
// Bench
repeat (16) begin
#(10) A = A + 1;
$display ("\t\t\t A=%d \t\t\t Y=%b", A, Y);
end
end
endmodule
4.2 El primer programa en Verilog
Considere la siguiente función
Estudie los códigos anteriores y proponga módulos de prueba para los programas de los
puntos 4.3 y 4.5. Como material adicional, puede consultar el ejemplo A5.10 del apunte
del profesor Leopoldo Silva, también publicado en el Aula.
5.1 Revisión de Parte previa
Presente al profesor o a los ayudantes las simulaciones hechas y los
módulos programados en las preguntas 4.2, 4.3, 4.4 y 4.5.
5.2 Uso del monitor de eventos
Para los circuitos desarrollados en los puntos 4.2 y 4.3, diseñe un
módulo de prueba que le permita monitorear eventos usando
$monitor().
5.3 Uso de display
Para el sumador de ocurrencias de secuencias 10 del punto 4.5, diseñe
un módulo de prueba utilizando la función $display().
5.4 Circuito
Diseñe un circuito jerárquico de al menos 2 niveles con una palabra de
entrada (e) y salida (s) de 16 bits. La salida del circuito depende del
número de unos de la palabra de entrada y de una señal de control
externa (ctl). La salida deberá agrupar la mitad (división entera) de
unos de la palabra de entrada a la izquierda y la otra mitad de unos a
la derecha más el resto. En caso contrario, la salida corresponderá a la
suma de la ocurrencia de una secuencia arbitraria de 3 bit dada por el
profesor o ayudante.
Ejemplo:
1110111101101010, ctl = 1 -> 1111100000111111
1110111101101010, ctl = 0, patron 101 -> 0000000000000100