Upload
norman-benton
View
44
Download
0
Embed Size (px)
DESCRIPTION
Verilog. Lenguaje de Descripción de Hardware. Gonzalo Saavedra Serra Cesar Muñoz Parraguez. Descripción por Módulos. Los módulos se pueden ver como cajas negras. Módulo. Módulo1. Módulo 4. Módulo 2. E1. S. E2. E1. S1. E2. S2. E3. S3. E4. Módulo 3. E3. E4. Describir un Módulo. - PowerPoint PPT Presentation
Citation preview
Verilog
Lenguaje de Descripción de Hardware.
Gonzalo Saavedra Serra
Cesar Muñoz Parraguez
Descripción por Módulos
Los módulos se pueden ver como cajas negras.
MóduloE1E2E3E4
S1S2S3
Módulo1
Módulo 2 Módulo 4
Módulo 3
E1E2
E3E4
S
Describir un Módulo
E1E2E3E4
S
module Uno (E1, E2, E3, E4, S)
input E1;input E2;input E3;input E4;output S;..endmodule
module Dos (E, S)
input [O:3] E;output S;..endmodule
Funcionalidad del Módulo
La funcionalidad de cada módulo se puede describir de dos forma:BLOQUEANTE y NO BLOQUEANTE
Bloqueante: orientado a eventos (p.e. sincronizado con el reloj).No Bloqueante: ejecución continua (circuito combinacional).
Módulo Bloqueante
always @(x or y or …)
begin
…
end
@*Sensible al cambio de todas las variables
@(a or b or c …)Sensible al cambio de “a” o “b” o “c” o …
@(negedge clock)Sensible solo al canto de bajada de clock
@(posedge clock)Sensible solo al canto de subida de clock
Módulo no Bloqueante
assign f = a && b;
assign f = c;
assign f[3] = ~a[0] & b[1];
Para la asignación de circuitos combinacionales.
Es conveniente usar este método de asignación cuando se requiere implementar circuitos combinacionales que no requieren sincronizar con el reloj.
Tipos de entradas y salidas
input : Entradas del módulo
output : Salidas del módulo
inout : Pueden cumplir la función de entrada y salida en un módulo
Módulo
input
inout
output
Tipos de Variables Son dos los principales tipos de variables:
reg : Son de tipo registro y permiten almacenar un valor.
wire : Es una red que permite la conexión de circuitos (un cable).
Otras variables de interés son integer, float y arreglos y memorias.
Loops y Condiciones (I)
Verilog C
if (…) else if (…)else (…)
if (…) else if (…)else (…)
case (a)0:1:…default:endcase
switch(a) {case 0:case 1:…default:}
for (i=0; i<N; i=i+1)beginend
for (i=0; i<N; i=i+1){}
Loops y Condiciones (II)
Verilog C
while (condición)beginend
while (condición){}
repeat (número de veces)beginend
No existe
wait (condición)beginendMientras que la condición sea falsa (0), se ejecuta el comando. Se emplea para detener la ejecución secuencial del proceso hasta que se verifique una condición.
No existe
Ejemplo
ALU en Verilogmodule alu(A, B, C, Ctl, result);
input [0:1] A, B, C, Ctl;output reg [0:3] result;
always @(A or B or C or Ctl)Begin
if (Ctl == 2'b00) result = A & B & C;else if (Ctl == 2'b01) result = A | B | C;else if (Ctl == 2'b10) result = A ^ B ^ C;else result = A + B + C;
endendmodule
Bibliografía
Manual de Verilog por Jorge Chávez. Software Evita Verilog. OVI Verilog HDL LRM.
(Open Verilog International) Página Web Sistemas Digitales.
(http://www.elo.utfsm.cl/~lsb/elo211/elo211.html)