verilog

Post on 30-Dec-2015

44 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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)

top related