Está en la página 1de 14

Introduccinaloslenguajesdedescripcin

dehardware

Noviembre 2009
Jorge Juan Chico <jjchico@dte.us.es>
Departamento de Tecnologa Electrnica
Universidad de Sevilla

Usted es libre de copiar, distribuir y comunicar pblicamente la obra y de hacer obras derivadas siempre que
se cite la fuente y se respeten las condiciones de la licencia Attribution-Share alike de Creative Commons.
Puede consultar el texto completo de la licencia en http://creativecommons.org/licenses/by-sa/3.0/
Leccin1.Contenidos

QuesunLDH?
Paraqusirve?
EstructuradeunadescripcinLDH
Tiposdedescripcin
Asignacincontinua(combinacional)
Procedimientos
Estructural:mdulosyprimitivas

Herramientas

2
Quesunlenguajededescripcinde
hardware(LDH)?
Esunlenguajeformalquesirveparadescribirlaoperacindecircuitos
electrnicos.
Essimilaraunlenguajedeprogramacinperoconnotablesdiferencias:
Lasdirectivasrepresentanoperacionesconcurrentes
Existendiferentesformasdedescribirunafuncin

//
// Operacin
Operacin AND
AND
xx == aa && b;
b;

//
// Operacin
Operacin OR
OR
yy == aa || b;
b;

//
// Funcin
Funcin combinacional
combinacional zz == xy'
xy' ++ x'y
x'y
zz == xx && !y
!y || !x & y;
!x & y;

3
ParaqusirvenlosLDH?

Simulacin
PermitesimularlaoperacindelcircuitodescritomedianteLDH
Permiteasegurarlacorrectaoperacindelcircuitoantesdesufabricacin
(implementacin)

Sntesisautomtica
Hayprogramasdesntesisautomticaquepermitenobteneruna
implementacindeuncircuitoapartirdesudescripcinenLDH
Equivalentealacompilacinenelsoftware

4
EjemplosdeLDH

VHDL
SintaxisparecidaallenguajeADA
Sintaxismscompleja
Grannmerodetiposdedatos

Verilog
SintaxisparecidaallenguajeC
Sintaxismssimple
Nmerodetiposdedatosreducido

5
EstructuradeunadescripcinLDH

Declaracindelmdulo
Nombredelmdulo
`timescale
`timescale 1ns
1ns // 1ps
1ps
Definicindeentradasysalidas
//
// Mdulo:
Mdulo: mayoria
mayoria
//
// Descripcin:
Descripcin: funcin
funcin mayora
mayora
Declaracindeseales //
// ff == ab
ab ++ bc
bc ++ ac
ac
Nombresytiposdesealesinternas
module
module mayoria(
mayoria(
input
input a,
a,
Descripcindeldiseo input b,
input b,
input
input c,
c,
Estructurasdeprocesamiento output
output ff
Directivasdelsimulador );
);
Directivasdelpreprocesador assign
assign ff == a&b
a&b || b&c
b&c || a&c;
a&c;
(definiciones,etc.)
endmodule
endmodule //
// mayoria
mayoria

6
Tiposdedescripciones

Funcional(asignacincontinua)
Representafunciones(circuitos)combinacionales
Seasignaelvalordefinidoconstantemente

Procedimental
Losvaloresasignadossedescribenmedianteunprocedimiento
Elprocedimientoseejecutaanteelcambiodeciertasseales(listade
sensibilidad)
Puedenrepresentarfunciones(circuitos)combinacionalesosecuenciales
Puedenemplearseestructurasdecontrol
ifelse,case,for,while,...
Engeneralestadescripcineslamsfcildeescribir

Estructural
Describelainterconexindemdulosyprimitivaslgica
Equivalentealesquemadelcircuito
7
Tiposdedescripciones

`timescale
`timescale 1ns
1ns // 1ps
1ps

//
// Mdulo:
Mdulo: mayoria
mayoria
//
// Descripcin:
Descripcin: funcin
funcin mayora
mayora
//
// ff == ab
ab ++ bc
bc ++ ac
ac

module
module mayoria(input
mayoria(input a,
a, input
input b,
b, input
input c,
c, output
output f);
f);

always
always @(a
@(a or
or bb or
or c)
c)
if(a == 1)
if(a == 1)
if(b
if(b ==
== 11 ||
|| cc ==
== 1)
1) wire
wire out1,
out1, out2,
out2, out3;
out3;
ff == 1;
1;
else
else and
and and1
and1 (out1,
(out1, a,
a, b);
b);
assign f= a&b | b&c | a&c;
assign f= a&b | b&c | a&c; f = 0;
f = 0; and and2 (out2, b, c);
and and2 (out2, b, c);
else
else and
and and3
and3 (out3,
(out3, a,
a, c);
c);
if(b
if(b ==
== 11 &&
&& cc ==
== 1)
1) or
or or1
or1 (f,
(f, out1,
out1, out2,
out2,
ff == 1;
1; out3);
out3);
else
else
ff == 0;
0;

endmodule
endmodule //
// mayoria
mayoria

8
Resumen

Loslenguajesdedescripcindehardware(LDH)describen(modelan)el
comportamientodeloscircuitoselectrnicosdigitales
Permitendefinirmduloscondiferenteniveldedetalle
Facilitanlasimulacindelosdiseosantesdesurealizacin
Permitenlasntesisautomticadecircuitosapartirdesus
descripcionesenLDH

9
Herramientas

Editordetexto
EscrituradecdigoVerilog

Compilador
Anlisisdelcdigoygeneracindedatosparasimulacin

Simulador
Simulacindelcircuitoenbasealasdirectivasdeunbancodepruebas(test
bench)

Herramientasdesntesis
Implementacindelcircuitoenunatecnologaodispositivodado
Dependedelfabricantedelatecnologa
EsfrecuentelaimplementacinendispositivosFPGA

10
IcarusVerilog

http://www.icarus.com/eda/verilog/
IcarusVerilogesuncompiladorysimuladordeVerilogsimple,rpidoy
compactoconunacoberturaampliadelestndar.
Juntoconuneditordetextosyelvisordeondasgtkwavetenemosun
entornodedesarrolloenVerilogfcildeinstalarydeusar.
Icarusygtkwavesonsoftwarelibreyseencuentrandisponiblespara
unavariedaddesistemasoperativos.
LosprincipalesfabricantesdeFPGA(XilinxyAltera)disponende
potentesentornosdedesarrolloqueincluyensoporteparaVerilog.
Estosentornospuedenusarseparalaimplementacinfinaldelcdigo
previamentesimuladoconIcarus.

11
IcarusVerilog.InstalacinenGNU/Linux

Icarusygtkwaveestndisponiblescomopaqueteenlamayoradelas
distribucionesdeGNU/Linux.
Porejemplo,enDebian/Ubuntu:
Opcin1:Sistema>Administracin>GestordepaquetesSynaptic
Instalarlospaquetesverilogygtkwave
Opcin2:Ejecutarenunterminal:
$sudoaptgetinstallveriloggtkwave

CualquiereditordetextoplanosirveparaeditarcdigoVerilog.
gedit(eleditordetextosdeGNOME)esfcildeusaryresaltalasintaxisdel
cdigoverilog(archivos.v)

12
IcarusVerilog.InstalacinenMS
Windows(TM)
http://www.bleyer.org/icarus/
EnladireccinanteriorseincluyeninstaladoresparaWindowscon
Icarusygtkwave.
Elautordeestedocumentohatenidoproblemasconlainstalacinen
carpetasconespaciosensunombre.Serecomiendalainstalacinen
unarutacomoC:\programas\verilog.
CualquiereditordetextoplanosirveparaeditarcdigoVerilog.

13
Bibliografa

VerilogTutorial
http://www.asicworld.com/verilog/veritut.html

OnlineVerilog1995QuickReferenceGuide
http://www.sutherlandhdl.com/online_verilog_ref_guide/vlog_ref_top.html
Imprescindibletenerloamanoduranteeldiseoparaconsultarlosdetalles
dellenguaje.

14

También podría gustarte