Вы находитесь на странице: 1из 6

FUNDAMENTO DEL LENGUAJE PARA DESCRIPCIN DE HARDWARE (VERILOG):

Este lenguaje de programacin tiene como base el mdulo. Un mdulo es una caja negra donde se
conectan las entradas y salidas del circuito que se quiere construir. Las palabras claves (minsculas)
empleadas para crear un mdulo y para declarar un pin como salida o entrada en el lenguaje VERILOG
son: module, output e input. Despus de la declaracin del mdulo y los pines de entrada y salida se
debe escribir la manera como estos pines interactan entre s (circuito). Cuando se quiere asignar el
valor de una operacin a un pin se utiliza la palabra clave assign. A continuacin se construye el
mdulo con el cual se describe una compuerta AND.

COMPUERTA XOR:
Si las entradas del circuito son diferentes la salida es igual a estado lgico alto. Las formas con las
cuales se puede describir la compuerta XOR son las siguientes:

Con una compuerta XOR se puede construir un negador si se conecta una cualquiera de las entradas a
un nivel lgico alto. Si se conecta una de las entradas a un nivel lgico bajo el circuito se comporta
como un seguidor tal y como se muestra a continuacin:

Un circuito integrado tecnologa TTL que se emplea para construir circuitos con compuertas XOR es el
74LS86.

COMPUERTA NAND:
Esta compuerta se puede construir a partir de una compuerta AND seguida de una compuerta NOT. Las
formas con las cuales se puede describir este circuito se muestran a continuacin:

Un circuito integrado tecnologa TTL que se emplea para construir circuitos con compuertas NAND es
el 74LS00.
COMPUERTA NOR:
Esta compuerta se puede construir a partir de una compuerta OR seguida de una compuerta NOT. Las
formas con las cuales se puede describir este circuito se muestran a continuacin:

Un circuito integrado tecnologa TTL que se emplea para construir circuitos con compuertas NOR es el
74LS02.
COMPUERTA XNOR:
Esta compuerta se puede construir a partir de una compuerta XOR seguida de una compuerta NOT. Las
formas con las cuales se puede describir este circuito se muestran a continuacin:

Un circuito integrado tecnologa TTL que se emplea para construir circuitos con compuertas XNOR es
el 74LS266.

BUS DE CABLES:
Un bus de cables se asemeja a la definicin de un vector en lenguaje de programacin. Desde el punto
de vista del hardware, el bus de cables es semejante a una cinta o a una correa la cual se emplea para
comunicar dos conectores en los diseos de las tarjetas madres de los computadores personales. El bus
de cables es una manera de asociar bajo un solo nombre varios cables que tienen una funcin similar.
En VERILOG se utiliza una cualquiera de las siguientes definiciones para declarar un bus de cables:

Cdigo en VERILOG:
module(S, IN, CS, OUT);
input [3:0] IN;
input [1:0] S;
input CS;
output OUT;
wire [3:0] F;
assign F[0] = (~S[0])&( ~S[1])&CS&IN[0];
assign F[1] = S[0]&( ~S[1])&CS&IN[1];
assign F[2] = (~S[0])&S[1] &CS&IN[2];
assign F[3] =
S[0] &S[1] &CS&IN[3];
assign OUT =F[0]&F[1]&F[2] &F[3];
endmodule

ASIGNACIN CONDICIONADA
El operador ternario (?) de VERILOG permite escoger una entre dos posibilidades de una variable
lgica, ejemplo: assign z=s? d0:d1.
En este caso z = d0 cuando s=1 y z=d1 cuando s=0. Este tipo de intsruccin se utiliza cuando se cuenta
con una tabla de verdad y no se cuenta con el circuito de forma grfica. A continuacin se describe un
multiplexor de 2 entradas y una salida empleando la asignacin condicionada.
S OUT
0 CH0
1 CH1
module mux21(CH, S, OUT);
input [1:0] CH;
input S;
output OUT;
assign OUT = (S==1'b0) ? CH[0]:CH[1];
endmodule

REUTILIZACIN DEL CDIGO:


Consiste en emplear circuitos previamente descritos en un mdulo nuevo. A continuacin se utilizar el
multiplexor de 2 entradas y una salida descrito anteriormente en la dsecripcin de un circuito que
cumpla con la tabla de verdad que se muestra a continuacin:
A B C Z
0

0 0

1 1

0 1

1 1

0 0

1 1

0 1

1 0

El circuito se muestra a continuacin:

module circuito(A, B, C, Z);


input A, B, C;
output Z;
wire D,E,F,G,H,I;
mux21 muxa(.CH({1'b1,1'b0}), .S(C), .OUT(D));
mux21 muxa(.CH({1'b1,1'b1}), .S(C), .OUT(E));
mux21 muxa(.CH({1'b1,1'b0}), .S(C), .OUT(F));
mux21 muxa(.CH({1'b0,1'b1}), .S(C), .OUT(G));
mux21 muxa(.CH({E,D}), .S(B), .OUT(H));
mux21 muxa(.CH({G,F}), .S(B), .OUT(I));
mux21 muxa(.CH({I,H}), .S(A), .OUT(Z));
endmodule

CONCATENACIN:
En algunas ocasiones se necesita unir bits de diferentes buses o preguntar por un subconjunto de un bus
de cables. Para ello se utiliza la concatenacin de VERILOG. El siguiente ejemplo muestra el uso de la
concatenacin en VERILOG.

module concatenaveri(output [7:0] leds, input [1:0] sel);


wire z1,z2,z3,z4;
assign z1=sel[1]|sel[0];
assign z2=sel[1]&sel[0];
assign z3=sel[1]^sel[0];
assign z4=~z2;
assign leds={z2,z4,z1,z1,z4,z3,z3,z2};
endmodule

Вам также может понравиться