Академический Документы
Профессиональный Документы
Культура Документы
I Semestre 2007
Dominio
Estructural
Dominio
Comportamental
Dominio
Fsico
Figura 1. Diagrama Y mostrando los dominios de abstraccin
lenguajes y/o el nuevo lenguaje SystemVerilog, surgido de la fusin de ambos. En este
curso se utilizar Verilog.
Verilog
Inicialmente desarrollado en 1985, Verilog is es un HDL utilizado por los diseadores
digitales para capturar, modelar y probar diseos. Junto con VHDL, Verilog es el HDL ms
popular tanto en la industria como en la academia. Fue declarado un estndar de la IEEE
en 1995 (IEEE 1364-1995). Los recursos de dominio pblico de Verilog HDL estn bajo la
responsabilidad de la organizacin Open Verilog International (OVI).
VHDL
VHDL es el acrnimo de VHSIC HDL (Very High Speed Integrated Circuit Hardware
Description Language). Este HDL fue originalmente concebido para proveer una notacin
formal para descripcin y documentacin de hardware estndar e independiente de la
tecnologa de fabricacin. Fue desarrollado gracias a la cooperacin entre IBM, Texas
Instruments e Intermetrics a inicios de la dcada de 1980.
VHDL fue desarrollado para la Agencia de Proyectos Avanzados para la Defensa
(Defense Advanced Research Projects Agency, DARPA) del Departamento de Defensa de
los Estados Unidos. Fue aceptado como un estndar de la IEEE en 1987 (IEEE 10761987). Desde el inicio fue un lenguaje de dominio pblico, puesto que uno de sus propsitos
era la estandarizacin. Su sintaxis se basa en el lenguaje de programacin ADA.
A continuacin se muestran algunos ejemplos de cdigo en Verilog para los
diferentes niveles de abstraccin discutidos anteriormente.
// Cdigo Verilog a nivel de conmutadores para un inversor
module our_inverter (out, in);
//Declaracin del mdulo
output out;
// Declaracin de puertos
input in;
supply1 pwr;
// Declaracin de alimentacin y tierra
supply0 gnd;
pmos (out, pwr, in);
nmos (out, gnd, in);
endmodule
endmodule
// Cdigo Verilog a nivel algortmico para un multiplexor 2 a 1
Module muxfunc (y, a, b, sel);
output y;
input a, b, sel;
3
assign y=muxfunct(sel, a, b)
function muxfunct;
//declaracin de funcin
input a, b , sel;
if (sel) muxfunct=b;
else muxfunct=a;
endfunction
endmodule
endmodule
always @(sel or a or b)
if (sel)
y=a;
else
y=b;
endmodule
endmodule