verilog

12
Verilog Lenguaje de Descripción de Hardware. Gonzalo Saavedra Serra Cesar Muñoz Parraguez

Upload: norman-benton

Post on 30-Dec-2015

40 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Verilog

Verilog

Lenguaje de Descripción de Hardware.

Gonzalo Saavedra Serra

Cesar Muñoz Parraguez

Page 2: Verilog

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

Page 3: Verilog

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

Page 4: Verilog

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).

Page 5: Verilog

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

Page 6: Verilog

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.

Page 7: Verilog

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

Page 8: Verilog

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.

Page 9: Verilog

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){}

Page 10: Verilog

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

Page 11: Verilog

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

Page 12: Verilog

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)