Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Intro LDH PDF
Intro LDH PDF
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