Академический Документы
Профессиональный Документы
Культура Документы
blecr comuntcactn
con nololro3 pued hacrlo Fof:
L--:I
)-,
@
E]
(0155)5561/O!.55l 5231
lto@plrhc!|l!l,com.d
,w,prti.cullul.cm.mr
-,
Contenido
Acercde losaurores
Prlogo
1. Etadoctul d la lgiaprograrrable
.,......
I
(PLD)
pro8talneues
.
1.1 Disposttivoslgicos
| ,; , , , . . . . . . , . . . . . . . . . . . . . 2
t.2 Dispositivos
lgictlsprogramabls
de altotvel de tntegacin..........13
1.1Ambiente de desalrrollode la lgicaprqramable . . . . . . . . . . . . . . . . . . . . 18
1,4Campos
de aplcaci[
de la lfuicaprogramable
.,.,,,....,..,,...,.,
Z3
1.5 La lgicaproSamabley los legajesde descripcinen hadwarc(HDL) . 25
1.6 Compalarde soporteen hattlwarey software . . . . . . . . . . . . . . . . . . . . . . 28
Ejccicios
............
. . . . . . . . . . . . . . . . . . . . 33
y arquitectra
2. VHDL:.u orgniracin
........37
. ]?
2.1Unidades
bicas
de diseo. . . . . . . , . . . . . . . . . . . . . . . . . . . ......
2.2Entidad..........
. . . . . . . . . . . . . . . . . . . . . 38
2.1 Declaracinde entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4Dseodeentidades
utilizando
vctores
..............
..,.........42
(architcture)
2.5Arquirecruras
......,........
. . . . . . . . . . . . . . . . . . . . . 46
Ejercicios
..,,........
. . . . . . . . . . . . . . . . . . . . 56
vi
l23
l23
. r54
156
... ..
162
t66
180
.......229
embebidos
en \HDL . . . . . . . . . . . . . . . . . . . . . . . .
8. Sisternas
........229
...........
enbbidos
8.1Sblemas
.......
.....237
...............
8.2Diseodeun microprocesador
jerrquico
....261
.................
8.1Diseo
...268
.............
............
jercicios
9. Redesneuronalesartificiales y \HDL
artificiall
9.1Quesunaredneuronal
artificiales
...............
9.2 Apendilaje
en lasneuronas
..........
porerrormnimo .............
9.1Aprendizaje
......
..
9.4Redes
asociativas
..........
Ejercicios
............
273
.
........275
......
279
......
Z9l
.......294
......308
Apdcc
A. Hcramienre6dc aoportcpa la programacinc VHDL . . . . . . . . . . . . . . I I I
B. Itslcin dcl Softwac,Vsrp . , , . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . 331
C. Idcndlcadores,tipoey etiburo! . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . 333
D Hoja!t&ntcardclCPLDCY7Cl72i
...,,,,,,,343
"nltico
. ......,.. .......,
:
:
. . . . . , , , ,351
Prlogo
xll
xlll
xtv
cuenciales,
manejadosen su programacinde mancraindvidualo a travs
exclusivamente
de la relacinentrada/salida.
En elcaptulo seis(Deo de controladota digitalesmetliantecartasASM
[Algoritmo de la mquinade estado]y l&/Dl) sedescribela programacinde
algoritmosdigitales(conrroladores),mostrandoal lector la formade cmobrindar solucionesa un problemadado a travsdel desanolloy conceptualizacin
de un algoritmo,cuyadescripcinse realizaa rravsde la carta ASM. En este
captuloel lector echamano de todoslos conocimien()sad,ruiridosen los caDi
16.prco',.orprendrendo,e
Je fa raclidd
.i,rema.
conla, u,l .c progumn
digitalescomplejos.
En el captulosiere(Drseiiojenrqulco
en VHDL) sepresentaIa formade
jerarqui?aro dividir un problemaen pequeossubsistemas
que puedenanalizarsey simularsede maneaindependienrc
paraposrerormenre
entrenzarlos medianteun pogramade alto nivel denominadoTop Level.Estafoma
de progamacin
esmuy utilizadaen VHDL ya que pemitecrearnuevaslibrerasde trabajo,que el diseadorpuedealmacenarpaaposterionenreinclui en nuevosdesarrollos.
En el captuloocho (Sisremasemeidosen VHDL) se incluyela parte terica de los sistemasembebidosascomo su ciclo ,.ledesarollomediante
el diseode un micopocesador,
describiendo
en detallecadauno de susmdulosy la formade programarlos
medianteel diseojerrquicoo Top Level.
En el captulonuevedejamosel contextode programacin
bsicay abordamosla investigacinrealizadasobrela progamacinen VHDL de lasedesneuronalesartificiales.Estotienepor objetivobindaal lector una beve
introduccin a un nuevocampode desarrolloe investigacin,debidoa que actualmenteesposibledesarrollar
sistemas
intcligentesa nivelde hardwaree integrarlosen un circui[o integrado,ya seaun CPLD o un FPGA.
Finalmenre,hrs apndicesdel libro se encuentraresrructurados
de la
siguientemaneia: en el apndiceA (HerramleDtasde soportepara la progn,
macinen VHDL) se describeel usodel softwareVarpR4 de CypessSemiconductor,utilizadoen la smulacinde todoslos ejerciciosy pobiemas
de estelibro, ademssc incluyenlos datosdel distribuidodel softwarey de
los circuitosintegrados.El apndiceB contienela infomacinsobrecmo
instalael softwarecn lasdiGrentesplataformastccnolgicas.
El apndiceC
proporcional(x principalesidentificadores,
tiposy ariburosque se manejan
en VHDL, ascomola sintaxisutilizadaen cadadeclaracin.En el apndice D piesentamos
los darostcnicosdel cicuitoCPLD CYI?21 6JCde CypressSemiconductor,
en el cual fuerongrabadoslos diseospresentados
en
este libo. En el apn:liceE incluye una lista de palabrasreservadas
por
VHDL con el lin de que el lector puedaidentificarlasfcilmentey, por ltimo, en el apndiceF se incluyeuna lisrade operadores
definidosen VHDL
segnsu ordende precedencia.
Reconocimientos
Quisiramosagradecerlea todos nuestosestudiantestanto del Instituto
y de EstudiosSupeioes
de Monterrey,CampusEstadode MTecnolgico
Nacional
Autnomade Mxico,CampusAraxico, comode la Universidad
gn,por su valiosacolaLmacin
en la simulacine implementacinde to,
y
y
dos cadauno de los ejercicios problemasencontradosen estelibro. En
especiala Alejandra Abad Rodrguez,por su incomparableayudaen esa
al Dr. LuisNio de Riverapor
agradecetle
etapa.De igualmanera,deseamos
como revisortcnico,al M. en C. JorgeRaml
suscomentaiiosy sugerencias
profesor
rez landa,
del ITESM-CEM,y a la lng. Ivette Cuz Felipede la
en el desarrollode estelibro.
UNAM por su valiosapaticipacinacadmica
nuestra
Finalmente,un agradecimiento
a
editora,ElisaPecina,y a todo su
equipo de trabajo siempeincansablesen su afn de obtener los mejoresresultadosy a quienesdebemosla calidadde estetrabajo.
DaeiG. Mru.inea
lessia Abdl Jan
Captulo1
Estado actual de la
lgicaprogramable
Introduccin
En la actualidadel nivel de integracinalcanzadocon el desaollode la
micoelectnica
ha hechoposibledesarrollarsistemascompletosdentro de
un solocircuito integradoSOC (SystrnOn Chip), con lo cual sehan mejoradode maneranotoriacaactersticas
comovelocidad,confiabilidad,consumo de potenciay sobretodo el reade diseo.Estaltima caracterstica
nos
ha permitido observardla a dla cmo los sistemasde uso industrial, milita y
por ejemplo,los
de consumohan minimizadoel tamaode susdesarrollos;
personales,
tellonoscelulares,computadoras
calculadoras
de boisillo,agendaselectrnicas,
relojesdigitales,sistemas
de audio,sistemas
de telecomunicaciones,
etc.,no sonmsqueaplicaciones
tlpicasque muestranla evolucin
los
de
circuitosintegradostambinconocidoscomochips.
El procesode miniaturizacin de los sisternaselectnicos comenzcon
la inteconexinde elementosdiscretoscomoresistencias,
capacitores,
resistores,bobinas,etc., todos colocadosen un chasisreducidoy una escasa
separacinentre ellos.Posteiormente
se disearony construyeronlos primeroscircuitosimpresos-an vigentes-, que relacionane interconectan
los elementosmencionados
a travsde cintasdelgadas
de cobreadheridasa
un soporteaislante(por lo generalbaquelita)que permiteel montajede estos elementosI ll.
Ms tarde,el desarrollodel transistorde difusinplanar,construidodurante 1947y 1948,permitien 1960ia fabricacindel primercircuitointegradomonoltico.steintegracientosde transistores,
resistencias,
diodosy
pastilla
capacitores,
todosfabricados
sobreuna
de silicio.Como esdel cono,
cimiento general,el tmino monoltico se deriva de las racesgriegas
L,osdispositivoslgicosprogramables(o PLD, por sussiglasen ingls) favorecen la integracin de aplicacionesy desarrolloslgicosmediante el empaquetamientode soluciones
e un circuitointegrado.El resultadoes la reduccin
de espaciofsico dentro de la aplicacin; es decir, se trata de dispositivosfa,
bricadosy revisadosque se pueden personalizardesdeel exterior mediante
diversastcnicasde programacin.El diseosebasaen bibliotecasy mecanismos especlicosde mapeadode funciones,mientras que su implementacin
tan slo requiee una fasede pogamacindel dispositivo que el diseado
sueleealizaren unossegundos[4].
En la actualidad,el diseode ASIC (circuitosintegradosdesarrollados
paraaplicaciones
especcas)
dominalas tendenciasen el desarrollode aplicacionesa nivel de microelectrnica.
Estediseopesentavariasopcionesde
desarrollo,comose observaen la tabla 1.1.A nivelde ASIC los desaollos
full y semicustomorecengrades ventajasen sistemasque empleancircuitos
diseadospara una aplicacinen parricular.Sin embargo,su diseoahora
sloes adecuadoen aplicaciones
que requierenun alto volumende produc.
cin; por ejemplo,sistemas
de telefonlacelular,computadoras
porttiles,cmarasde video,etctea.
Estadoacial de la lcrcaprosnmable
Categora
Caac teristicas
Diseo totalmenrea la
14I.
{CPLD, TPGA).
Dispositivo
Descpcin
Programnrable
Read-OnlyMemLrry:memoriaprograable
de stllolcctura
Programmablc
LogicArray: rreglolgicoprogmable
PAL
GAL
CPLD
ComplexPLD: dispositivolgicoprogramable
comple)
FPGA
x2 =B
X3=AB
re
Figu 1.1 Aeslos AND: a) nopocmmadoyb)proeamdo.
) Atreglo OR, Est formado por un conjunro de compuertasOR conectadas a un areglo programable,el cual contiene un fusible en cada ounto
de inrersccin.
Bte tipo de anegloessimilaral de compuertas
D ex.
plicadoen el puntoanterior,ya quede igualmaneraseprogramafundiendo los fusiblespara elirninar las variable no utilizadas.En la ffeua 1.2 se
observael arregloOR prograrnado
y sin programar.
B
ItsE
Dispositivo
La nenoria pgramble de rlo
lectura (PROM) esrfmada
po un neglo no ptugratuble de
compuertsAND conectals
comodecodincadory un areElo
Esquemabsico
I
El aneelo lc1coprogamable
(PLA.)esun PLD fotudo po
un areglo AND y n reglo
OR, ambosproemhables.
Salida2
Entd2
Salidar
Salida2
@ u""
Entrada
1 .---\
\ Salida1
--
Edrada2 c+
E=t
Saljda 2
Enlrada
n r__3
Salida
n
Fisn l.a
10
Estadoacrualdela kgicaprosrmble
1C
11
ll
t2
esd laspuertas
AND
l= ec*ac+ ac*e
TJ
un l'lip-flop;el multiplcxor1 de 4 conectarna de suscuatrolneasde entada al buffetiestadode salida,en funcinde las lneasde seleccinS0 y 51.
Porotro lado,el multiplexorde I de 2 conectapor mediodel bufferla salida
del flip-flop o la salidadel buffertriestadoal arregloANL); estosedetermiseprogramamediante
na por mediode 51. Cadauna de laslneasde seleccin
que se encuentranen el arregloAND.
un grupode celdasespeciales
'
t4
Figurai.8 ArquiecrL
bi. Je un(IPLD.
Los bloquesltigicos,tarrbin conocidoscrrmrceldasgeneradorasde funcioncs, estn fonados for un arreglo de productos de trminos que nflemcnta los lroducnrs efccturdos cn las conrpucrtas At,\D, un s5qsm .
distribucin de trminos.lue pcrmite cr.earlas sums dc los prr uctos provenientcsdel arregloAND y or macroceldas similarcsa las incorporarlasen
ta GAI-22V10 (Fig. i.9). En ocesurncsias celdas dc entrada/salidr
se consideran parte Llcl bloclueLigico, aunqLrela ma1,orade Lx fabricantescrjncide
cn que son cxternas. Cabe Drencionarque cl ralno dc los bloques lgicos
es importantej Ia que rlerermrn:rcuntr Igica se pLrc.lemplemcntar dentro
J.l r PLD. r.r , L. rr.rlr r.rp , iJ r, .1.l,lr.r ,.rr\.,.
Estadoactual de la ieicaprocanable
l5
16
Bloques
I
D
Bloquesde
E/S
------'!
org
+o
s+
s
+++o
Bloques
de
Bloquslgjcos
AlquitecturaFPGA
Fisura l.l1
A.qirecrua
del FPGAXC4000de Xilinx.
hs bloqueslgicos(llamadostambinceldasgeneradoras
de funciones)
estnconfiguradosparaprocesarcualquieraplicacinlgica.Estosbloques
Esadocualde la leicaprosramable
t7
tienenla caracterstica
de serfuncionalmentecompleros;esdecir,permiten
la implementacinde cualquierfuncin booleanarepresentada
en la forma
de sumade productos.El diseolgicoseimplementamediantebloquesconocidoscomo generadoesde funcioneso LUT (Look Up Tble:tablade
bsqueda),los cualespermitenalmcenala lgicarequerida,ya que cuen,
tan con una pequeamemoriainterna por lo generalde 16 birs- [6].
Cuandose aplicaalgunacombinacinen las entradasde la LU! elcircuiro
la traduceen una direccinde memoriav enva fuera del blooueel dato
almacenadoen esadireccin.En la ligura 1.12 se obsevanlos tres LUT
que contienestaarquitectura,los cualesseencuenanetiquetadoscon las
l etr asG,FyH.
c1...c4
Figm l.l2
Aquirecrumd un blquel,sicoconcurable
FPGA.
l8
Caractrlsticas
CPLD
Similr un PLD
I?GA
Simila a lG aneglos de
Ms egisc + RAM
Trbajen ftecuencs
Dependede la apticcin
(aniba de los 135Mh)
E\celenresen aplicacids
PocesdorsDigitts de
Seales(DSP)
programable
| 1.3 Ambiente de desarrollo de la lgica
Una de las grandesventajas al disear sistemasdigitales mediante dispositivos lgicos programablesradica en el bajo costo de los recursosrequeridos
para el desarrollo de estasaplicaciones.De manerageneral,el soportebsi,
co se encuentra fomado por una computadorapersonal,un grabadorde dispositivos lgicos programablesy el software de aplicacin que soporta las
diferentesfamilias de circuitos integradosPLD (Fig. 1.13).
19
programas
En la actualidad,
diversos
CAD (diseo
asistido
Imrcomputadora),comoPALASM,OPAL,PLBABEL,CUPL,entreotros,seencuenparala programacin
trandisponibles
dedispositivos
lgicos(tabla1.5).
Compilador lgico
PALASM (PAL Assemble ensblad{rr
de PAL)
C.eadopor AMD
Inoduceel conceptodejedrqud en susdileos
FoDar6 mltiples (ecuaciones
knleanq tablas
dc verdad,deeramasde estady lascombinacio.
nesenees(osl
Aplicacioes en dispositivosPAL y GAL
20
disitalcs
VHDL, El a. dc rrrgnmr sistems
Estos programas -conocidos tanbin como compiladores lgicostlenen una funcin en comn: proccsary sintetizar el diseoLigico que se r'a
a introducir en un PLD mediante un mtodo cspccfico (ecuacionesbooleanas, diagramasde estado, tablas de veclad) [51.
F1 = A B + A C
F2= A B + B C
re
Ficura L14 Cbrrn--onJe t",.. ..trne,booted,..
queigenel comportamiento
iasecuciones
del
Comosepuedeobservar,
sistenaseencuentandeivadas
en funcinde lassalidasF1 y F2 del circuito.
que
vez
se
obtienen
estas
ecuaciones,
el siguientepasoes introduciren
Una
la computadora
el archivofuenteo de entada;csdecir,cl pogramaqueconque
permitirnal compladosintedzarla lgicarcquerida.
los
ticnc
datos
Tpicamenrese introducealgunainformacinpieliminarque intliquedatos
como el nombedel diseado,la empresa,fecha,nombe,:leldiseo,etc.
Luegoseespecifica
el tipo de dispositivoPLI) que seva a utilizar,la nunerapines
los
cin de
de entraday salida,y lasvariablesdel diseo.Por kimo, sc
booleanas
o cualquierformadelinela funcinlgicaen forrnade ecuaciones
que
to
aceprccl compilador.
2l
I@t PDSfi.
E
(tsie
Pnt1i6f3
<"> - Fdi6
I f1
positi
;11 12 1r 14 1s 16 17 13 19
20
*:*"*
)
4or
a Bc r
*l
(@dErm4
sinrcra
./t
I
)
Lirtado 1,r Archiv Fuentconpitado en ldato PAIASM.
El siguientepasoconsisteen la compilacindel diseiro,el cualradicabsicamenteen localizarlos erroresde sinraxislo de otro tipo, cometidos
durantela ito,:luccinde losdarosen el achivofuente.El compiladorprocesay traduceel archvofuentey minimizalas ecuacioncs.
En estepaso,el
diseose ha simuladoutilizandoun conjunrode entradasy suscorrespon,
dientesvaloresde salidaconocidoscomovectoresde prueba.Duranteesre
procesose compruebaque el diseofuncionecorrectamente
antesde intoducirlo al PLD. Si sedetectaalgnerroren la simulacn,sedepurael diseo paracorregirestedefecto.
Una vezque el diseono deneerores,el compiladorgeneraun archivo
conocido como JEDEC (Joint Electronic Device EngineeringCouncil)l
o mapade fusibles.Estearchivoindica al grabadorculesfusibleslundir y
clesactivai,paraque luegose grabeel PLD (de acuerdocon eLmapade
fusibles)en un grabadortpco (Fig.1.16).
Comosepuedeobservar,
ciertosPLD (PROM,PAL, GAL) seprograman
empleandoun grabadorde dispositivos
lgicos.AlgunosotrosPLD, comolos
CPLD y FPGA, presentanla caractestica
de ser pogramables
dentro del
sistema(lSP,ln-SystemProgrammable);
que
esdecir,no hay
introducirlosal
grabadoi,ya que por mcdio de elementosauxiliaresse puedenprogramar
dentro de la tarjetade ccuito integado.
Como se aprecia,el mtodode diseocon lgicaprogramablereduce
de maneraconsiderable
el riempode diseoy permiteal diseadormayor
ya quela correccinserealicontrolde los erroresquesepudieranpresentar,
za en el softwarey no en el diseofsico.
L L sFrs e c6ere al lormto .rble.iJ
I Lx mhivos
JIDEC ertu ca.rizadN
Estadoactuldela lercaprogamble
23
Fisurar.r? Ssrenabasado
en unFPGA.
r Fuenred ilotucin, htp://ww{.ampmico.con
24
fig
l.l8
lrt4r/lhone.inteL,n.o!cod.Lsr.l
ItlLlcm d. t \1,{ J
Aud,., vL.o, adquni.in de dtriosvpro.lsrienn,
Je
httri/,]nsrnctconl.o.uk/-newhor/rdcr
tuercs Fmlel(r de.omuni..nres Fri
I)ercn Se0i.e Sesmens
PC
E r J , , r c r u l J e h 1 , , r Kpr ! L r r J m b l e
t{
26
;i:,:11:::l'l';::':ltl*'J::H?*".*
r076-198i
#ffi
Un ao msiarde,surgila necesidad
de describiren VHDL todoslos ASIC
creadospor el Departamentode Defensa,por lo queen 1993seadoptel es_
tndaradicionalde VHDL IEEEl164.
Hoy en da VHDL se considemcomo un estndrpaa la descripcin,
modeladoy slntesisde circuitosdigitalesy sistema"comfleos.Estelenguale
presentadiversascaractersticas
que lo hacenuno de los HDL msutilizados
en la actualidad.Finalmentela letra ,,V" dentro de VHDL hacereGencia
al proyecto(VHSIC).
(retardos'
concretade la tecnologautilizadao de suscaactersticas
puede
de manehace$e
consumos,rempcratura,etc.)' aunqueesto
ra oPcional.
.
'
'
'
Capacidad descriptira en distintos niveles de abstraccin. El procesode diseoconstade variosnivelesde detalle,desdela especificacin
hastala impiementacin6nal (nivelesde abstraccin). VHDL oliece la
ventaja de poder disearen cualquierade estosnivelesy combinarlos,
con lo cual se genera1oque seconoce como simulacinmultinivel'
IJso como formato de intercambio de informacin. VHDL permite
el intercambiode informacina lo largode todaslasetapasdel proceso de diseo,con lo cual favoreceel rrabajoen equipo.
Independenciade los proveedores.Debidoa que VHDL es rrn lenen
o modelosgenerados
permiteque las descripciones
guajeestndar,
desdecualquierotro, seancualesseanlashe'
un srtloseanaccesibles
rramientasde diseoutilizadas.
Reutilizacindel cdigo. El uso de VHDL como lenguajeestndar
permitereutili"arlos cdigosen diversosdiseos'sin impotarque ha'
parauna tecnologa(CMOS,bipolar,etc.)e impleyan sidogenerados
mentacin (FPGA, ASIC, etc.) en particular
Facilitacin de la patticipacin er proyectos intemacionales' En la
actualidadVHDL constituyeel lenguajeestndade referenciaa nivel intemacional.Impulsadoen susinicios por el Depatamentode
Defensade EstadosUnidos,cualquierprogramalanzadopor alguna
offcialesde esepasvuelveobligatoriosu usopa'
de lasdependencias
ra el modeladode los sistemasy la documentacindel procesode
y univerdiseo[11]. Estehechoha motivadoque diversasempresas
sidadesadoptena VHDL como su lenguajede diseo.
28
En algunasocasiones,
el usodc una herrarnienta
popuesta
po alguna
compaaen espccialdenecaracterGticas
adiciorales
al lenguaje,con
hr que sepierdeun pocola libertadde diseo.Como mtorloaltemati_
voj sepretendcque enrrediseadores
que utili:an distintasherramientasexistauna compatibilidad
en susdiseos,sin que estorequieraun
esfuezo
impotanteen la traduccindel cdigo.
Debidoa que VHDL es un lenguajediseadopor un comir,presenta una alta complejidad,
ya que sedebedar gustoa lasdivcrsasopinio
nes.le-losmiembrosde ste,po lo que esultaun lenguajedilicil dc
apendepaa un no\,ato.
Esadoctui de la lgicapnranable
29
Altera Corporation
msimportantesde produccinde disposiiiAltera es una de las compaas
y tambines la que ms familiasofrece,ya que
vos lgicosprogramables
FLEX@1oK,FLEX 8000,
riene en el mecadoocho familias:APEXTM2oK,
La capacidad
FLEX6000,MAX@ 9000,M.dX7000,MAX5000,y ClassicrM.
I
000
000
de compuerde integracinen cadafamiliavaradesdeJ00 hasta
tasutilizablespor dispositivo,ademsde que todastienenla capacidadde incomplejos.
legrarsistemas
generales
Altera
mssignilicativas
de los dispositivos
Lascaractersticas
son lassiguientes:
Frecuenciade operacindel circuitosuperioia los 175Mhz y retardos
pin a pin de menosde 5 ns.
La implementacinde bloquesde aneglosincegrados(EAB), que se
usanparaeali?arcircuitosque incluyanfuncionsaritmticascomo
Tmbinseaplicanen microALU, y secuenciadores.
multiplicadores,
y funcionescomplejascon DSP
procesadores,
microcontoladoes
(procesadores
digitalesde seales)[12].
La programacin
en sistema(lSP),que permiteprogramarlos disposi
tivos montadosen la tajea(Fig.1.19).
la pogamacinen sistema;es decir,no
En la figura 1.19aobservamos
hay que retrarel circuito de la tarjetaparaprogramarlo.En la figura 1.19b
es similara la
se muestralo contmrio:en estecasoel tipo de programacin
grabacincotidianaque realizamos,
debidoa que sedebecolocarY quitar el
dispositivotodaslas vecesque se quierapmgramat
en rorale.
Figu6 r.r9 d PrFamacin
en sistena.b) Prcgranacin
incluyendoel
Ms de cuarentatipos y tamaosde encapsulados,
(rhin
quad
pack),
delgado,
de for,
flat
el cual es un dispositivo
TQFP
y plano,que permiteahorrarun espacioconsiderama cuadrangular
ble en la tarjeta.
Operacitlnmultivoltaje,ene los 5 y 3.3 volts, paamximofunciohbridos.
namientoy 2.5 V en sistemas
30
Cypress semiconductor
La compaaCypressSemiconductor
ofreceuna ampliavariedadde disposi,
tivos lgicosprogramables
complejos(CPLD), que se encuentranen las
familiasUltra37000ft y FLASH37Oifr.Cadauna de estasfamiliasoftecela
reprogramacin
en sistema(lSR), la cual permitereprogramarlos dispositivosla. vecesquesequieradenrrode l rrjeta.
Todos los dispositivosde ambasfamiliastrabajancon voltajesde operacin
de 5 o de 3.3 V y en su inteior contienendesCeJ2 hasta 128macroceldas.
En lo que respectaal softwarede soporte,Cypressoftecesu poderosoprogramaWarp, el cual se basaen VHDL. Esteprogramapermitesimulade
maneragrficael circuitoprogramado,
generandoun archivode mapade fusibles(edec) que puedeser programadodirectarnenteen cualquierPLD.
CPLDo FPCAde Crpresso de ona cLlmpdi
qu. .ea.omparible.
Clear logic
La compalaClearl-ogicinrrodujoen noviembrede 1998los dispositivos
ltigicospocesados
por lser(LPDL), tecnologaque proveereemplazos
de los
dispositivosde la CompaaAltera, pero a un costoy tamaomenores.La
tecnologaLPLD puede disponerde arriba de un milln de transistorespara
constuir alrededode 512 macroceldas.Sustituveal disDositivoMAX
75llA de AIterar reduceel rmanomjs de o0onre.pecroal chip originl.
Lasprimerasfamiliasinrroducidaspor Clear Logicson CL?000y CL7000E,
lascualesdendena ceceren un futuro.
Motorola
Mototola, empresallder en comunicacionesy sistemaselectrnicos,ofrece tambin disposirivosFPGA y FPd{ (Field ProgrammableArray Analog: campos programablesde arreglosanalgicos).Los FPAA son los
pimeroscamposprogramables
para aplicacionesanalgicas,uilizadosen
las easde transporte,redes,computaciny telecomunicaciones.
Xilinx
Xilinx esuna de lascompaas
lderen soluciones
de lgicaprogramable,
incluyendocicuitosintegradosavanzados,
hermmientasen softwareparadiseo,funcionespredefinidas
y soportede ingeniera.Xilinx fue la compaa
que invent los FPGA y en la actualidadsusdispositivosocupanms de
la mitad del mecadomundialde los dispositivos
lgicosprogramables.
Estadoactual de la lc1caproeranable
31
l-os dispositivosde Xilin-r educen de manea signiffcativa el Liempoequerido para desairollar aplicacionesen las reasde computacin, telecomu,
nicaciones,redes,contol industrial, instumentacin, aplicacionesmilitares
y para el consmogeneral,
Las familias de CPLD XC9500 y XC9500XL proveen una larga variedad
que van desdelos 5 a 3.3
de dispositivosprogumablescon caractetfsticas
volts de operacin,36 a 288 macroceldas,
34 a 192terminalesde entraday
y
salida, progamacinen sistema.
Los dispositivosde las familiasXC4000y XC1700de FPGA manejanvoltajesde operacinentrelos 5 y 3.3V, una capacidadde integracinarribade
las 40 000 compuertasy progamacinen sistema.
En 1oque serefiereal software,Xilinx desarrolluna importantehenamienta llamadaFoundationSeries,que soportadiseosestndares
basados
en ABEL,HDL y en VHDL. Esta herramientase oftece en vesin estudiantil y profesional.
De manera general,existe una amplia y variada gamade dispositivoslgicosprogramables
en el mercado.La eleccinde uno u otro de.
disponibles
pendede los recursoscon que cuentael diseadory los tequerimientosdel
diseo.En la tabla1.?semuestrande formasimplilicadaalgunasde lascompaasque ofrecensolucionesde lgica programable,mientrasque en la
figura 1.20sepresentansusproductos.
1t
Compaia
Productos de hadware
FPGA:FamiliasAPEX 20K, FLEX
IOK,LE\ 6000,MAX 9OM,MAX
?000,MAX 50m y CLASSIC
Chip Exp.e$
Henamientas softwae
MAX + PLUSU: Sopo.taVHDL,
Verilogy enrada esquenica.
D6eosen
QUICkPlace&rouei
basea vecroiesde prueba(CTV ,
ChipExpre$]sr Vecrot yVHDL
Desarollos
basados
en he.amienras
Qick Logrc
xilin
ftbh
MACILXL:VHDL,- Veilog
Quick Works:heranient de
soportepan VHDL, Veilogy cap.
CPLD:FamiliaXC9500y
xc9500xl
FpcAsFamiriaxc40oyxclzc.
X'iti.Hl1$ilil:";j];i:ffi:.
Etlo etude
lss posra'able
33
Cuestiondo
1.1
., 1.2
,...1.3
1.4
.1.5
'
' 1,
1.?
'
'
,
'' '\
'.
Qusigniffcaonollricoi
iCul esel signicadode lr dglasASICI
iGrlessonlascaregorfardotccnologbsde fabricacinde Cf?
Describaen qu conristi l dieo Full Gstom.
Mencbnela! ctractcflricrs rel6\,ntesdel discoFull Custom.
iCul cs el,r[niffcado de tasrigla, pLD?
pROM;plA, pAL, GAL y los
iQu rienenen comnlos dispositivos
y
CPLD FPCAI
1.8 iQuesOLMCI
' 1.9 iCrlcs el eigniffcado
de lassiglarCPLDy FpGAI
1.10 Descibacmoseencuedtac:structuradb
un CPLD.
1.11 Describala esuurad un FPGAn t&mlnos,generales.
l l2 lQu esun compiladorlgicol
1,13 iCul cs,clsigniffcadode.lassiglasVHDLI
1.14 iQu signiffcdo tienenlassiglasVHSICI , .
1.15 Dscrihitrcs ventajarde la programacin
en VFIDL.
1.1 icu[essonlas,eompalas
msimpcrtntesen la fdbricacinde
, . dilpooiriyd lgicosprograrnablesl
34
Bibliograffa
Maxinez David G., Alcal Jessica:Diseod.eSistenttsEmbebiiosa tratsdel
bnguaje d.eDescibcin en Hardware VHDL. XIX Congreso Intemacional
Acadmicode IngenieaElectrnica.Mxico, 199?.
Kloos C., Cemy E.: Ha uare DescriptianLanguageand tlvir aplications.Spe,
cftation, nwd.ellingverificationand slnthesisof microelectonicsystems.
Chap,
man&Hall, 1997.
IEEE: The IEEE standad VHDL Iaguage Refeer,re
Manudl lEEE.Std,lO761987,1988.
Advanced Mico Devices:ProgramnableLogicHandbooklDatabook. Ad.an,
ced Micro Devices,198.
ZainalabedinNavabi: Analysisand Modelingof DrgiralSysrerns.
McGraw-Hill,
1988.
Altem Corporation: UserCurftgurableLogicDara Booi<.Altera Corp., 1988.
Altera Corporation: The Maritwlist HandbookAltera Corp., 1990.
IsmailM., FiezT: AnlogVLSI. McGraw-Hill, 1994.
HayesJohn F: CompaterArchitecwreand Oganibn. McGraw-Hill, 19?9.
Vakerly J. E: DrgiralDesinghinciples anl. pracic.prentice Hall, 1990.
Skahill Kevin.: VHDL for programrw.tble
logc.Addison !{/esley,199.
ClpressCorporation:www.cypress.com
Xilinx Corporarion:www.xilinx.com
Oganizacin
Mundial de VHDL: www.vhdl.org
Camposde lgica programable,www.fpga.com
Referencias
MaxinezG. Davi,:Anplifiatcind.eSeales.
ITESM-CEM,1993.
y
Hon R. !l
SequinC.H.: A grde b I:l implentatian.
Xerox Parc,
1980.
[3j Mead C. y ConwayL.: Inrrodloionro VLSI Slste r^r.AddisonWesley,
VLSI seies1980.
[4] TeresLl., TorrojaY, OlcozS.,Villar E.: VHDLLnguajeEstndarDi.
senoElearnicc.
lccraw-Hill, lqa8.
[5] FloydT L.: Fndarentosde Sistemas
Drgitales.
PrenticeHall, 1998.
7]
Van
den
Bout
practical
f)ave:
The
Xiliu
[6,
DesignerLa Booi<.Prentice
Hall, 1998.
[8] Institurode IngenieraElcricay Electnica,IEEE.Re{,is!Comprer
[1]
[2]
IEEE,
r97"t.
[9]
Captub2
VHDL:
su organizacin
y arquitectura
Introduccin
Til tom,' lo inJri:n ,Lr.iglr VHDI rHarJ-wrreD$.qr,,
Langu,e.) c.
un.rengrinl.flent|ldo t.r Je.c p. i^n ., modelJ,, de ,i.rcmr,
drgir:rrc.,
es decir, se trata de un lenguaje mediante el cual se puede describi
analizar
y evaluar e) comportamienro de un sistemaelectrnico
digital.
VHDL e.un lengu",. p.,J.r.,"oque p.rmlc l.r inregr.j(iun.1..r.-im,.
.
.Iigjr"lc..en. rll^.. eldburJo.,, amb,,.en ur di.fo.r
rro logi.o pr,,gr.mrble,
sea de baja capacidad,:leintegracin conro un CAL, o d.-mayi.
capucidai
como los CPLD y FPGA.
38
Entidad
c)
39
2.2.2 Modoa
Como ya semencion,un modo permite deni la dieccin en la cual el dato
es aransferidoa travsde un puerto. Un modo puedetener uno de cuatro valores:in (entrada),out (salida),inout (entrada/sala)y buffer (Fig 2.3).
. Modo in. Se rederea las sealesde entrada a la entidad. Esteslo es unidireccionaly nadamspermiteel flujo de datoshaciadento de la entidad.
. Modo out. Indica lassealesde salidade la entidad.
. Modo inout. Pemite declaa a un puerto de foma bidireccional -es
decir, de entada/salida-; ademspermite la etroalimentacin de seales dento o fuea de la entidad.
. Modo buffe Pemite hacer retoalimentacionesintemas dentro de la
entidad, peo a diferencia del modo inout, el puerto declaradose comPottacomo una terminalde salida.
Oul
Butler
Out
Figu6
ffi
2.3 Modc y el cutso de sus seles.
40
Cn
B
Declaracin
de La enridad
sulador ls
(A ,8 , Ci n:
i bi t,
s L N t , or' : cut o-
ntlty
D o t
dd surador;
de un circuiLo
swador
VHDL:
.ganaci y antuuectL
4l
seusan
Los nmerosde las lneas(1, 2, 3, 4, 5) no sonpartc del c)digo;
como referenciaparaexplicaalgunaseccinen particular.Laspalabrasen
parael lenguajede pr)gramacnVHL)L; es&)es,
negritasestnreservadas
cspecialpaaelpograma;el diseadorasignalos otros
tienenun signficado
que
a analizarcl cdigolneapor lnea.Obsen'emos
Ahoa comencemos
que
(--),
est
los cualesindican.tueel lexto
la lnea1 inicacon dosguiones
ya
a la dcechaes un comenrariocuyoobjetivoes documenfarel Fogama,
qe el compiladorignora todos lcx comentarios.En la lnea 2 se inica la
entity, scguidadel identi.
cleclracin
dc la entidadcon la palabrarcservacla
is. Losfuerffcadoro nombrcde la entiLiad(smador)y la palabraresevada
3 y 4, respectivaocnte
tos de entraclay salida(port) sedeclaranen las Lreas
en estecasoLrspuerrosdc enftadason A, B y Cn-, mientrasque SULrspuertosde salida.El tipo rle clatoque cadapuerMA y Cout representan
valoresde
to manejaesdel tipo bit, lo cualrntlicaque slopuedenmanej.rrse
rleentidallcon
'0'y '1' lgicos.R) irltimo,cn la lirea 5 terminAla declaracin
end, seguidadel nombrede la enridad(sumador)
la palabrareservada
VHDL
Debemosnofar que como cualquierlenguajecleprogramacirin,
que
hay que
sigueuna sintaxisv una semntcadento del cdigo,mismas
espctar.En esraentidadconvienehacernotar el usode punto) colna (, al
finalizarrnadeclaraciny de dos puntos(J al asignarnombresa las entadasy salidas.
Djemplo11
Leic.,
dela iguraE2.1.
Declac
Lcnt(laddelccuLo
a3
b3
az
b2
DI
b0
Fisua82.1
Solucin
lasentradasy salidasdel cjrcuitoseencuenandeCotro puerleobservarse,
pun.eada.
por
En estecaso,al, bl, a2' b2,... a0,b0 sonlas
limitadas la lnea
entradasy F es la salida.
42
2
3
4
5
D e c l a ra c i n
-de ]a enti dad
Btrti ty
c i rc u i to
la
p o r!- | a 3 ,b 3 , a2,b2,a1,b1,a0,b0:
in
F:
bi L;
ouE bi t);
e l c i rc u i to ;
Identiffcadores
Los identificadoresson simplementelos nombeso etiquetasque se usanpaa efeir variables,corutantes,seales,procesos,
etc. Puedensernmeros,
letrasdel alfabetoy guionesbajos( _ ) que separencaractees
y no tienen
una estriccin en cuanto a su longitud. Todoslos identificadoesdeben se,
guir ciertasespecificaciones
o reglasparaque sepuedancompilarsin errores,
que
mismas aparecenen la tabla2.1.
Regla
Incorecto
Correcto
suma4
SUMA4
matlculs o minscula.
El segundocaocter no puede ser un suin
S_4bits
54 bi$
Clear#8
Clear 8
y arquirecrura
VHDL: suo.sanizacin
43
^,ll:=[
;i;;;:l
Fisum 2.4
**'-l+sumar3o]
sme&r
l*c"r
Enridad
- epesentada por vectores.
que utilicevectores
La manemde describiren VHDL una conffguracin
consisteen la utilizacinde la sentenciabit_vector,mediantela cual se especiffcanlos componentes
de cadauno de los vectoesutilizados.La parte
del cdigoque se usaparadeclaraun vectordentro de los puertoses el siguiente:
port (vector_A, vecto B: in bit_vector (3 downto 0);
vector SUMA: out bit vector (3 dornto 0));
Estadeclaacindeffnelos vectoes(A, B y SUMA) con cuatrocompopor mediodel comando'
nenesdistribuidosen ordendescendente
3 downto 0 (3 hacia 0)
los cualesse agruparande la siguientemanera.
vector_A(2)= A2
vaor A(0) : A0
vecorB(l) =
vector B(2) =
vector_B(l):
vector B(0) =
B3
82
Bl
B0
vector SUMA(3) =
vector_SUMA(2):
vector_SuMA(l):
vector SUMA(o) =
53
52
51
S0
44
Solucin
entity
9o!t
Ejemplo2.3
sunador s
(A,B:
in bir vecror
cin:
in bir;
Cou!:
out bir;
SLn'lA
I out bir,vecror
(: doslto
0);
do!nto 0));
E-& ie.
i 6@ 'roJoI*-trec
E-& worlr
@ nriec sd
'61 * *m'
'@ srtespks
6'@ ar
:'----Ftu 2.5 L.nenLdo.le
lsliber'sieeey work.
45
2.4.2 Paqu.etel
.
usenombre librea.nombepaquete.all;
por ejemplo:
l64.all;
usereee.stJ_l,,gic_l
46
2 3,22,71,20.
Declaela entidaddel circuitoutilizandola libreraieeey el paquerestd.
_logic_r14.all.
zo
x0
X1
zl
YO
Y1
z3
Figun 82.4
Solucin
2 use ieee - srd_loqic_1164. all;
l entlty
mul tiplica
is
4 Port' (X0,1,Y0,Y1:
6
23,Z2,ZI,Z0:
7 e
ln std_1ogic;
ot std togic);
l multiplica;
2.5 Arquitecturas
Una arquitectura (architecture)se define como la estruccuraque describeel
funcionamientode una entidad,de tal formaque permitael desarrollode los
procedimientos
que se llevana cabocon el fin de que la entidadcumola
la" condicrone.
de funciunamrento
des.ada,.
47
sl
sl
a:bentoncesc=l
a+bentoncesc=0
rc
Figra 2.6 Descipci fucionL de u cohpdador de Lgualdadde dos bits.
48
2
3
4
5
1l
'1
funci onal
use
I
9
10
1l
I2
L3
a rc h i l e c tu re
t6
77
t8
e d i f,
bi t
recLorl
of
1 domto
0);
pi s
begin
c o n p a ra ;
p ro cess
(ab)
i fa = b th en
c < = ' L' ;
c < = ,0,;
n d Pro c e a a compara;
e n a t fu n c i o n a l ;
Ntltesecmola declaacin
de la entidad(entity)sedescribe
en lasllneas
de la 1 a la 7; el cdigocrcupade la lnea8 a la 18,dondesedesarrollael algoritmo (architectue) que describeel funcionamienrodel comparador. Para
iniciaIa declaacirn
de la arquitectura(lnea8), esnecesario
delinir un nombre arbitrario con que se puedaidentilicar -en nuestro casoel nombre asig,
nado fue funcional- ademsde incluir la entidad con que se relaciona
(comp).En la llnea9 sepuedeobservarel inicio (begin)de la seccindonde
secomienzana declaarlos procesosque rigen el comportamientodel sistema.
La declaracin
delproceso(llnea10)seutilizaparala definicinde algoritmos
y comienzacon una etiquetaopcional(en estecasocompara),seguidade dos
puntosO, Ia palabrareservada
processy une ia lisrasensitiva(ay b), que hace refrenciaa las seales
que determinanel funcionamiento
del proceso.
Al seguirel anlisis,puedenotarseque de la llnea 12 a la l7 el proceso
se ejecutamediantedeclaraciones
secuenciales
del tipo if,then.else (si,enrcnces-sino). Estoseinteperacomosigue(lnea12):gi el valor de la seal
r esigualal valorde la sealb, gqtrggg'1'seasignaa c, g!39 (elsc)seasigna un'0' (el smbolo<= se lee como"seasignaa"). Una vezque seha de,
finido el proceso,se terminacon la palabareser."'ada
end processy de ma,
neraopcionalel nombredel poceso(compara);de formasimilarseaadela
etiqueta(funcional)al terminarla arquitecruaen la lnea 18.
49
gmplo 2,5
00
o1
10
11
0
1
j
Figu.E2.5
Solucin
la declaracinde la libreray el paqueteseintroduComopuedeobservarse,
La declaracirlnde la entidadse decen en las lneas2 y 3, respectivamente.
ffne entrelas lneas4 a 7 inclusive.Poridtimo,la arquitectutasedescribeen
la slneas8a17.
r -- D e c L a ra c i n fu n c i o n a L
2 li b ra ry
ieee;
I u E e i e e e . s L d L o g i c -1 1 6 4.al l ;
con_o is
4 etrtlly
(
p
o
rt
5
a ,b : i n s td -1 o q i c;
ra
fL t o u t s r,d _ l o q i c ) ;
fu n c i o n a l
I a rc h l te c tu re
9 begln
10 D ro c e s s (a , b ) b e q l n
(a =
11
tf
0 andb
12
f1 < =
0 ;
1l
14
e IE
fL
<=
of
com_or i s
0 ) then
L ;
L6 e n a t p ro c e s s ;
17 e fl a l fu n c i o n a l ;
50
(if-then-eLse).
Esteripo de descripciones
permiteJefinir el flujo que romarn
los darosenrremlulos encargado5
de realizaroperaciones.
En esteripo de
descripcinse puedenutilizados formatos:medianteinstucciones
;hen.
else (cuando-sino) o por mediode ecuacionesbooleanas.
a) Descripcin por flujo de datos mediaote when else
A conrinu(inse muesrrael cdrgodel comparJor
de igualdadde dos
orrsoescflo
antes(Fe. l.) Ndreseque la diferenci
enrrelos lisrados
2.2
y r. r radcaen la elimincin
del procesoy en la descripcicin
sin declara.
cionessecuenciales(if.then-else).
(asisna a C et vator
Ejenplo 2.6
Con,ba.e
en I rablade verdady mediante
l declaracrn
when.else,
Je"cn_
Daer uncronamrento
de la siguiente
compuerta
AND,
i--{-\,
- --1
,-/
00
01
t0
tl
Ficla 82.6
0
0
0
1
5l
Solucin
I --Alsorituro urilizando
flujo de da.os
2 llbrary
ieee;
3 ue ieee. srd_togic_1164. I1;
4 rtlty
'com_and lE
5 Dort ( a,b: in std_togic;
6
f: ou! srd_togic);
7 erl con_and;
8 archltecture
compuerla of com_and l
9 begla
10
f <= '1' $htr (a = ,1, !d b = ,1,
11
'0, ;
'2 enal compu.r La;
) efse
aO
b0
a1
bl
52
I u s e i e e e . s rd L o q j c_1164.aI1;
4 entity
comp le
p
o
!!
5
1 a ,b :
i n bi t vecbor
{,
c,
8 architecture
out
bi l j )
bocteana
of
de un compar.a.l or
(L l ow nl o 0)
;
conp is
9 besin
1 r c < = (a (r)
Eo!
b(1)
li
and
a t0 ) :dor b(0));
l2 el booleana;
Describamedianreecuaciones
booleanas
el circuitomostadoa contmuactn.
Fisu 82.?
Solucin
-D e c l a ra c i n n e d i anre
ecuaci o.s
boo,enas
uae
i e e e . s td -l o q i c
t i 64. al I;
e n ti ty
e j e mp l o i s
(a ,b ,c ,d :
Polt
i .n std_l ogi c;
f: o u t srd I ol l i c ) ;
a rc h i l e c tu re
c o n p a e rras
of
ej enpto
is
beqin
f < = { (a o r
e n d c o m p u e ra s ;
tj) r.no
(c anat orr;
53
En nucstrocaso,cadacompuerra(modelolirgico)se eDcuentradento
del paquetegatespkg,
del cualsecomanparaestructuarel diseo.A suvez,
estetipo de arquitecturasestndares
se conocecomo componentes,que al
interconectarse
por mediode sealesinternas(x0, x1) permitenproponer
una solucin.En VHDL escaconectividadseconocecomonetlist?o listado
de componentes.
Paainiciar la progamacinde una entidadde maneraestructural,cs
neccsaiola descomposicin
lgicadel diseoen pequeossubmdulos(je_
rarquizar),loscualespermitenanalizarde maneraprcticael cicuito,ya que
la funcin de entrada/salida
es conocida.En nuestroejemplose conoceIa
funcinr{esalidade lasdoscompueras
xnor, por lo que al unirlasa la compuertaand, la salidac esel resultadode la operacinand eiectuadaen el in_
terior a travsde lassealesx0 y xl (Fig.2.8).
Es importante resaltarque una jerarqua en VHDL se reliete al procedimientode dividiren bloquesy no a queun bloquetengamayorjerarqua
(peso)
que oto. Estafoma de dividir el problemahacede la descripcin
estructural
unaformasencillade programarEn el contextodel diseoltlgicoestoesobser,
vablecuandose anali"apor separadoalgunaseccinde un sisemaintegral.
54
l l b ra :' y
2 uae
I
ieee;
i e e e .s rd
enlily
losic
1164.al 1;
port (
co1p is
a ,b :
c:
in
out
b i t,w ector
(0 to
1),
bj t);
7 u s e w o i k . c o r.p u e .ta. al l ,
E a rc h l te c tu re
9 siEnal
1 i-r begin
r:
bi'-
e s trucrural
of comp i s
(0 !o 1);
v e ci or
E I)
(a(0),
b(0),
x rrc r2
l )ol t
port
rap
(a(1),
b(i ),
);
)i (1));
and2
port
rap (x(0),
x(i ),
c);
Lt
U 0 : x n o r2
12
ItIt
13
u2r
:(0)
L 4 e n a l e s tru c tu ra l ;
Listado2.5 D.scripcin
esrtucralde un conpaedorde ieualda.lJ
2 brs.
ticoplo 2.8
55
Fisu D2.8
Solucin
1lt bl a ry
2 ua
ieee;
i e e e . s td
3 etlty
4 po rE(
conp
l o g rc _ 1 1 6 4 .a1l ;
i6
A ,B,C
: in
F:
s rd _ l o gi c;
out
s td _ l ogi c)
7 ua e w o rk . c o mp u e rta . a l l ;
8 alc h l t c tu re
e s tru c ru ra
9 s lg l ra l
xr
b i r_ v e c ro r
of
(0 to
comp l E
2)J
10 b e g i n
n a p (8 , C , x(0));
! D (c , A , x(1));
a r1 d 2 p o rt ra p (A, B , x(2));
14 U l : o r3 g o rt n a 9 (r(0 ),
x(1),
x\2),
15 e n d e s l ru c ru ra ;
11 0 :
12 U 1 :
13 U 2 t
a n d 2 p o rt
a n d 2 p o rt
56
Ejercicios
Unidades basbas dc diseo
2.1 Describalos cinco tiposde unidadesde diseoen VHL)L.
2.2 Detemineculessonlasunidadesde diseonecesarias
pararealizartrn
programaen VHDL.
2.J Mencionelas unidadesde diseoprimaasy secundarias.
Declaruct de entidades
2.4 Descibael signiffcadode una entidady cul essu palabrareservada.
2.5 En la siguientedeclaracinde entidadindique:
library ieee;
use ieee.std_logic_
1164.all;
etity seleccioni6 port (
x: in srd,logic_vecror(0
to 3);
fi out srd_logic);
end seleccion;
a)
b)
c)
d)
El nombrede la entidad
Los puertosde entrada
Lospuertosde salida
EI tipo de dato
Desp_laza
N_lvel
S uma#
Res _ta
+c
B+
2.9 Declae la entidad para el circuito que semuestraen la 6gura Utilice vectoes.
:)ct0:31
s0 s1
2.14 Declarela entidaddel multiplexorde 4:1 mostradoen la ffguradel
ejercicio2.13,si cadaentradaestformadapor un vectorde 4 bits'
2,15 Declarela entidad del multiplicadormostradoen el ejemplo2 4
utilizando vectoresy el paquete std-logic-l164
58
Atqutechnas
2.16 Medianteun estilofuncional,programeen VHDL el funcionamiento
de una lmparaparacdigoMorseque enciendala luz al pesionaun
botn y la apagueal soltarlo.
2.1? Con un estilo funcional,programeen VHDL el funcionamientodel
motor de un ventiladoren que ei moto gireen un sentidoal presionar
el born 'a' y en direccincontrariaal oprimir el botn ,b'.
2.18 Con un esrilopor flujo de datos,programeen VHDL el funcionamienro
de un panelen una lbricade empaquetamiento
de arro?. Estepanel
muestrael contenidode 2 silos(a, b) que rienela fbricapaagu;rdar
el arrozjun sensordetectacun llenosestn,cuandose encuentranal
1007ode su capacidad,
envlaun ,1 l(rgico',y cuandotienen25%o me,
nosenvaun '0 lgico';si en uno de estossilosdisminuyeel contenidoa
257oo menos,seprendeuna luz (c), si los dossobrepasan
eselmite se
enciendeotra luz (d) y suenauna alarma(e).
2.19 Mediante el esdlo de pogramacinpor flujo de daros,programeen
VHDL el funcionamientode un robot en una plantaque esperaa que
selleneuna tarimacon cuarrocajasantesde llevarlaa la bodegade al_
macenamiento;para sabersi la taima estllena cuenacon cuatro
sensores,
cada uno apunta a sendascajas;si hay una caja marcaun
'1 lgico';si falta, marcaun'0 lgico'.Si falta algunacaja el robot no
se puedei! cuandoestnlas cuatocajasel robot se lleva la tarima.
2.20 Con el estilode programacin
por flujo de datos,programeen VHDL
el funcionamientode una caja de seguddadcuyaaperturarequierela
presinsimultneade tres de cuatrobotones(,a',,b', ,c,y d'). Los bo,
tonesque se debenoprimir son;'a', ,c' y 'd'.
2.21 Medianteel estilode programacin
estructural,programeen VHDL el
probleuradel apagadorde escalera.La funcin para este problema es
c = a b + b, dondea esel interruptorinferior,b esel in;rruptor superiory c esel foco.
2.22 Con un estiloesructural,programeen VHDL el funcionamientole
un moto que seenciendecon la siguienteecuacin:
y=ab+cb+ac.
y aquiecum
VHDL: s! orsanizacin
59
Bibografa
BergJ. M., Fonkua4., MaginotS.:VHDL Desiger'sRelerence.
KluwerAca,
demicPublisher,1992.
TeresLl., Tonoja Y, Olcoz S., Mllar E.: VHDL lzrgaje Esandarde Dismo
Electnico.McGraw-Hill, 1998.
Skahill K.: VHDL /or programmable
logic. Adison Wesley,1996.
Mazor S., LaangstraarP.:A Cuide o VHDL. Kluwer AcademicPublisher,
t993.
Maxinez G. David, Alcal lessica:Diseode SktemasEmbebidos
a tras del
IanguAjede Descripcinen Haduare YHDL. XIX CongresoIntemacional Acadmicode lngenielaElectrnica.Mxico, 1997.
Kloos C., Cemy E.: HardwareDescriptionLangwgeand their aplkatiors. Spe,
cification,modzinguerificatbn and slnthcsisof microelectronicsystems.
Chapman& Hall, 199?.
IEEE The IEEE xandard VHDL UtnguageReference
MnrcI. IEEE-SId-1076.
1987.1988.
ZainalabedinNavabi:Anallsisa .Modelingd DigitaiSlsterns.
McGraw-Hill,
1988.
Otas lectuas sobe el tema
Armstrong James R., Oray E G.: Srttured lagic Desing wth YHDL.
PrenticeHall, 1993.
Capitulo3
Diseolgico
combinacionalmediante
VHDL
lntroduccin
msurilizadosen el
los circuitoscombinacionales
En csrecapmloseclisean
hardware.
EstopcrmLte
descripcin
cn
a
travs
dei
lcnguaje
de
diseolgico
reglas,aigoitmos,ctc.,
intoduci nuevosconcepros,palabrasreservadas,
que muestranla potenciay profundidaddel lenguajeVHDL.
El desarrollo,.lecadauna de lasentdadesde diseodescritasen esrecaseptulo sepuedeoptimzarmedianteel usoadecuadodc las declaacrones
cualquera
cuenciales,
concurrenteso ambas,urilizandoen estadcscripcia)n
y
por
estructuflujo
de
daros
funcional,
de los tres tiposde arquitectura
ral- vistosen el captuloanterior Sin embargoy datlala filosoffaque qu.remosmaneiaren estetexlo, nos parececonvenientepresentarsoluclones
que incluyannuevasdeclaraciones,
nuevostiposde datosy nuevosalgoritpretende
presentarla mejor opcinde disecr
se
mosde anlsis;esdecir,no
pararrn prohlema;por el contrario,seproponebrindarla mayorcantidadde
soluciones(modelos)que le permiran deducir y construir sus estategias
de diseoparaoptinrizarsusresultados.
62
tf-F?mol*,r"o"r
00
001
010
011
10
101
110
r11
0
0
1
0
0
1
1
of
rabla
(a= ,0,
(a= ,0,
(a= ,1,
(a= ,1,
aal
aat
al d
aat
is
b= ,0,
b= ,r,
b= ,1,
b= ,1,
ant c= ,0,
nd c= ,1,
ant c= ,0,
and c= ,1,
15 elal ejenplo;
Listldo 3.1 Desipcinde la enridadhosrEdaen la ablade la sura1.1.
63
,,.#ffi:Ii::T::l,ll;:i*"i[::Ji]
jjl]5*il,"il:::1
.e.,rado
e.ermismo,
q"l.!1.,',,fi1
;.;:; l""#i',#'dJl.j*l.Fi:i
5::iJi$.;:iil
,, .
*"Je ejecurar,e
antes
qu.r,.orrn,n,
-oo.:u"
"i,.*,
en comparacincon
el diseo
que
Ia
f'ncin
de
sa'a,
r,."a1"",.
iir"i::t:i''i* ::'H:,:'li"'iTndo
l-- ob, * abc _ a b c r a b c
en el di"eoconvencronal uriluar
lnvesores'compuertasOR y com"e
puetasAND; en VHDL la
solucinfn
j::;::
:y,in**lrrh.n#;.,11:Ti'^",:
l0
asigna
a "f"elvalorde I cua n d oa = 0 y b =
0 y c : 0 s in o
tt as i gna
a,,f,,el v al orde
I c ua n dao= O r b = ii. = i" i" l
12 asigna
a,,f"elvalordet cuando
a = l y b = i;; = ;i;;
=oi=ii. =i'i""
il ::ff;.i:i;:[:i:""""0o"
Operadoreslgicos
Losoperadores
igicosmsutilizados
en Ia descripcin
derunciones
boorea-
a' a"'uii--'i';;.T:::;
l:: '.::'':*: ':^':' 1'j':':1""
'ipo'
., ro_
- l_a.operacionesque 5e efecren
il:|ffi:fiXi:|.
deben
reali-zarse
cond"t' o*
n-
""r"'
compilados
losoperadores
lgicos
presentan
el si"'t.T."j.T;'fflf.o;ser
1) Expresiones
entre parntesis
2) Complementos
3) Funcin AlrlD
4) FuncinOR
Lasoperaciones
xor y
.. gulente
comparacin:
"i
&
En VHDL
Ecuacitr
r:a+b.c+
y= Mt(^d6al @ t.td)
DCB A
000
000 1
0.0 1
0 0.1
010
010
011 0
011
100
100 1
101 0
l01 l
110
I l0
ltl0
lt
I
0
0
I
0
1.
I
0
0
I
1
0
0.
0
0
I
I
I
I
0
0
0
0
0
0
0
0
A partir de la tabla anteri,or,se puedeprogramar la funcin F utilizando declaracionescondicionaleswhen--else.El cligo VHDL es el siguiente:
65
F: dt
s t d 1. ic ) ;
7 alctlll*ElE
9
10
F <=
11
12
13
a_fc
',1', it$
' 1' ld8
' 1' bdr
idr
'f
fuci@
of
(a
(A
(a
(A
is
=
=
'0 '
'0 '
'1 '
'1 '
d
.d
l
rd
c = '1 '
c = '1 '
C = '1 '
C = '1 '
.!d D=
.td
.d D=
.!d
e
d
x3
I
Ftn
El programacorrespondiente
al circuito de la ligua 3.2 se muestraen el listado 3.2.
us e i e e e . s td _ ]o 9 i c ,1 1 6 4 . a Il ;
ent t ty
]o q i c l s D o rt (
a, b, c ,d ,e ,f:
In s td l o s i c ;
x L, x 2 ,x 3 .
o u t s td l o s i c);
architctur.
booLeana of
losic
lg
x1 <= a *:ior b;
x 2 < = (((c n tt d )o r(a E o!
b) ) d
((e x o f)a :l d (c and d)) );
x 3 < = (e E o !
f) a n d (c D dl d) ,
Solucin
Las ecuacionesde la forma sunade productos para X, y y Z se muestan a
continuacin:
l ) X =A B C +A B C+ A B C+ A B C
2) Y = B C +A B C + A B C
3) z: Be+ Bc+ BC
2
3
4
5
6
7
8
TI
2 ul6 ieee.s|{losic_1164..rI;
3 dtlty
circuito
1. Dorl {
4
a: t! std_1ogic_vector
5
c :c | rl s td _ l o g i c )r
7 cbl,!ctu!
arq_ci
(1 k'r6to 0);
ol cloito
tg
8 brrt
9
10
11
12
13
Int.do
Flth a elat
c <= '1' vbe
' 0 ' r!o
' f i .!a
'0'
1.3
'00',
-0 1 " ,
'10",
otlr.1;
ln
VHD!: ELa,1rg-,.fr"sdisttr
Solucin
Ir!rrt.r"l
iqri:rrrr; ,i, .,ii.t,ll
'1.,,-dtivr,
la tabla de verdad que resulve
la funcin es la siguientel
, 1, , . . - i t , ) ) , . t . , t : j : i . ; - , - r i , " .
x o. X l
00'
0
0 ro l l l
0
r
li . F
x2,.xJ
..,.,t
{ i.i
,,
: ,
' , li
.t
010
ol0
oJo
010
t0llll
l
I
I
I
1110
0
0
0 lo
, r, l. , t l r, 1
.l00ll0
: . : : , r,
l l tl
2 u!. iq.srd*Losici+164..!i
3 .tlty
seleccion f. porr (
4
5
.:!
x: l
srd_1oqic_\r6itodq
F: crt std_loqiGi;,
seleccion;
6 d
? .cl.t/.br!
{s.'ec
to,j3j;
Gl'serec.ior
I b"C.E
9
r.lrh
10.
12
13
X ..I.ct
.0001.,
' 1 , tha
t : )t\b : :, : : | ,
{ ., rtr :na
, r r , .r:1 5 { .i,,j ," ,,i ,i
!. r1 4 raa
: ,j tt
. ie
i
..,,
1 6 t,,.
.:t;r'
_ ra
I7
" 0011' ,
" 0101.,
. .:. n\)i :,.
mtj rt\
i 10l i .,.:
.,. ,r,,;
.1E l i j ,r.- ,: , .i ,.
"
Rogramacinde estructrrasbslcasmediantedeclancionessecuenciales
secuenciales
sonaquellasen lasque
Comoya semencion,lasdeclaraciones
el ordenque llevanpuedetenerun efectosigniffcativoen la lgicadescrita.
A difeenciade una declaracinconcurrente,una secuencial
debeejecutarseen el otden enque aparecey formarpartede un proceso(process).
Declaacin if.then-else (si.entonces-si no). Esta declaracinsiNe
para seleccionaruna condicin o condicionesbasadasen el resultado
que
de evaluaciones
lgicas(flsoo verdadero).Por ejemplo,observemos
en la instruccin:
f Lt condXirn scethen
l;
rcalig la operacin
else
realizdla operacin2;
end if;
si (if) condrcinse evala como vetdadera, entonces (then) la instruccin
indica que se ejecutarl^ operacifii. Por el contrario,si la condicinse
2. La instuccinque indica el
evala'comofalsa(else)correrla operacn
in de la declracines end if (ffn del si). Un ejemploque ilusta estetipo
de declaracinseencuentraen la figura2.6 y por coodidadserepiteen la
6gura3.,f.
;:-::a::::::::-:.:'-ri.:-_'-:
Figur3.4 Conpandordeistrldddedosbits.
70
ktdo
D!.rlo hsicocombancional
m.diantcVHDL
7l
e3
2
e1
aO
b3
@.
DI
bo
En el listado3,5 sobservael algoritmoen VHDL quedescribeel funcionamientodel compaador.En la knea9 semuesftala lita snsitiva(a y
b) del goceso (poce). En las lfreasl0 a l7 el procesoedesenwelve
medianteel anlisisde lasvariablesde la lista sensitivd.Sin muchoeser.
zo puedeversequ si = b, entoncB x tona el v"lor de I, de forma
similarseintuye el compotamientopaa a > b y a < b, incluyendola de.
claacinelif.
1 1try
ieee;
2 u.. ieee, st{logic_1164,
11;
3 Gtit'
ccrp4 l. ,Gt (
4 a,b.
,.D st4-logic-veclor(3
ilmto
5 x , y , z : d t s l { l o g i c );
5 ol ccntr4;
7 !dhlt-qa
arq-ccp
od ccdI)4 l,
8 b{L
9
Drocaaa (a,b)
10
D.i
11
lf (a = b) tb
L2
x <= 'l'i
13
.L.11 (a > b) t!
y <= 'l't
14
15
ala
16
z < - ' I' i
1'-7
d.
lt
18
d
.,
rE
19 d
arq_ccrqg4,
Itdo 3J D.$rip.in d.l cmp.ndd
0),
','
zr zo
0000
000 1
00r0
001 1
010 0
010 1
011 0
011 1
100 0
100 1
101 0
r01t
110 0
110 1
ll10
l1l1
ll
01
01
0l
l0
tl
0l
0l
l0
l0
ll
01
t0
l0
l0
ll
81
Fisu! E3J D6cripcin tuncinal d u coftpaEdor de igualdaddc do, bits.
13
,..
frr'i9t
ut . ieee. 9tC_l.asic_1164. .ll ,
6tlty
cdrq) Is Dort
A,B: h 'std_1oqic_veror (1 aot-to l;
' ''
zt cb srd_loqic_vecror (i &*n!o'o) ) ;
lchlt.ctrrf
b.gfa
Proce
a_coFp of
ccfp l.
{A,B) bgb
1 ! A = .B tb d
.!rll
dal tf t
Doct!r!,
Signtficdo
Igual
Diferenre
'.
M.noio lgal
Msyor
l'{a}bt o igual
74
Losregistrosde tresestados(buffetstri,estado)tienendiversasaplicaciones,
ya seacomo salidasde sistemas(modo buffer) o como parte integral de un
circuito. En VHDL estosdispositivos son deffnidos a tavs de los valores
que manejan (0,1 y alta impedancia'Z'). En la ligura 3.6 se observa
el diagramacorresondiente
a estecircuiro,y en el listado3. el cdigoque
describesu funcionamiento.
"lllll-B- "",""
wqiFtrq:E1:fi!
Fisur 3,6 Bufer rri.stado.
ttl
ieee. std_losic_1164.
otlty
aU.;
la Dorr (
dtraala:
l std_]ogic,
salida: out srd_logic);
tri_est
enable,
.r.ibl't
:trl :
ctre
bsi
pfocers
ll
arS_buffer
(enable,
entrada)
=
enble
'0' th
salida <- 'z';
salida
of
tri_esr
l.
bst
<= enlrada;
!.f;
4*3!l'snitinsiiittt:!.r!:?{t$*W$,r.W;.qw::3tr1ir
Li.trdo 3.6 Descipcin nediante valoes de alta imDedancia.
7S
3.2.3Multiplexotes
los multiplexores se disean describiendosu comportamienro mediante [a
declaacinth-select whe o ecuacionesbooleanas
En la ffgura 3.?a) seobsewaque el multiplexo dual tiene como entrada
de datos las vaiablesa, b, c y d, cada una de ellas representadaspor dos bits
(al, a0), (b1,b0), etc., laslfneasde seleccin(d de dosbits (sl y s0) y ta lnea de salidaz (zl y z0).
En la ffgura 3.7b) se muestraun diagramasimpliicadoque resaltala re.
presentacinmediante vectoresde bits.
a1
bl
ct
at1
a[l:01
bt1:01
bl1:01
d[1:01
aO
bo
c0
d0
stl:01
s1s0
D)
76
atttitecture
arqnux4
wit] s select
Z <=
a ttte
b H
c ah@
d shr
@d"q
r
LL- 6 d o l .?
ot nu
l
]
,0 C ,,
I
I
I
I
"01",
" 1 0 ,,,
otherE;
Tipos lgicosestndares
I
Lo. funtione.e,ndare.
de6nida.
cn el lenguaJ.
VHDL.e irearonlra .virar I
qrrrcalr di.rrif.urdor
de.ufwreintroduiera
ju\ p.tucri.v rp,* je Jlo. ,l I
lenguaje.
Porerrrazdnel ln,riruoJe lngenier,^
El.crnco", H".,rd";.,;. I
IEEE.e"ablecro
Je"deIaoT1,,:e.rindres
srdLgrcv vJ loE_r.i,r.que1n.e I
verunen un caplluluanreri,,
|
tn . adauno dc lo. e"rnJares
.e Jetrnencisrr,o op,. d. J"ro. .,,n.* i I
do: (om,,rrpoilo{r.{ esandarer,
loscule..ep,reJenull-.jt ha.renJ.ref.. I
renriaal pa.luere
quelo. conrienerenerr c r.osrd /osc I lo4l. tn l rbl I
1.2.. mue.rranI,\ np,- lei(o,e.rndrre.deliniJ* en VHD|
|
;;
,X
-v,b-,"
t."h- J"
V.torroenede . ono,ido
i I ii:::r:
I
.Y
Arr.,nrpeJm.
m
v.rdhdeb,rde..on,Jo
'H
r eoit
( Joni( ,,.1.
Nu,mr o,,a
r.bla1.2 I..o.tosro"
c.,,"0...
.,,;;;;l-.-.'-*.,0
""*0., ""
I
I
I
I
I
.,n;-
lrldo.\hDL..rles.,-..
.e.1.,",,."-Jb.., .
.r ".,'
r ' ' n ' " ' ' ' " " ' ' " r rn' p ,. " ' r ,
-, 1 . . ;
' .."
. . ,.;:"..r ;fi- .
77
i e e e .s td _ l o q i c 1 1 6 4 .a ]];
mq Is porE (
etlty
a, b,c ,d : r s td l o g i c _ v e c to r(l
akml o 0);
s:
i l l s td l o q i c v e c ror{ 1 dohto 0);
z:
o r! s td l o s i c v e c tor(1 d!o!r!o0));
achi!cture
ar.{n
of m
iE
z ( 1 ) < = (a (1 ) a i d
(b (1 ) !d
(c (1 ) a d
(d (:L ) a rd
or
z ( 0 ) < = (a (0 )
(b (0 )
(c (l )
(d (0 )
nd
!d
a rd
a rd
r 1 tLFo s.Llsi.
7t
3.2.5 Suradore
Dseo de un circuito medio sumador
Paadescribirel furcionamientode los cicuitossumadoes
es impotante
recordarlasreglasbsicasde la adicin.
0+0=0
O+t=l
l+ 0 = l
l+ l= 1 0
En el casode la suma I + I = 10,el resultado,,0.'representa vael
.
lor clela suma,mientrasque el ,,1" el valordel acarreo.
Paraobsevarer detalle el funcionamiento de un cicuito medio sumador, considerela suma de los nmeros AyB mostradosen la
tabla 3.3.
AB
Suna Cout
00
0l
l0
I
I
0
0
0
o
r ( r + 1= r0)
La ecuacinlgicaque coespo_nde
a la expresinSuma: B + AE es
_
-la tuncin
gica or-exclusiva A (9 B, miennas que la ecuacinlgica del
acareode salidaes C.out = AB que corre.pond. h .ompuen" logic.
and.
I-a realizacinffsicade estasecuacioness muestra en la figua 3.ga,
en ella
se pesenlael bloque lgico del medio sumador (MS) la
fieura l.gb
v
representa sUimplantacin mediantecompuerus lgicas.
t-rPB'-*
r!ffiFftu.
Di*o lBicombiraciq'al
cdiste VHDL
79
Dieo de m oumadorcompleto
Un sumadorcompleto(SC)a difercnciadelcircuitomediosumadocorsidera
un acarreodeentrada(Cin) tal y comosemuesuaen la gura3.9a,el comportamientodeestesumadosedescribea tavsde sutablade vedad.
AB C Ir
b)
Itdo
000
001
010
011
100
101
110
l1t
au||l Cor
00
10
10
01
10
01
01
l1
t0
Ias ecuaciooeseducidas
medianteun mapadeKamaughcorresponden
tesa la salidaSumay Cout semuestrana continrurcin
S u ma= B C i n + A B Cin + A BCin + ABCin
Cout= AB +BCin + A Cin
Si
manipulanlas ecuacionesanrerioresmediantelgebrabooleana
"e
obtenemos que la funcn de Sumay Cout puedeexpresarsecomo:
= A@ B OCin
S uma
cout=AB+(AOB)cin
6-fiJ&t oo"
*{-.pp-s""
L!+d;lcout=AB+{a(EB,cn
lllL---atry
.-:ffifia'
I
I
a) Circuitosumador
complero
porcompuerras.
implemenrado
W;*l
AB +
(a @ B)cin
b) Grcuitosumador
complero
implementado
po mediosumadores
Ftsur r.r0 Cluiros
sudore'.
I
I
81
Lpfognmacin
r VHDL delsumadorcompleto
spresenta
enel lisrado3.10.
lllErrt
!eee;
. u. teee , sr{1ogic_1164,
a.1;
su,n l Do! {
A,B,Cin: .! srd-1orict
S!ra, cou!: dt std_logic);.
@tfty
alcltcctl!
a_sun o sull l|
b.cLu
cl
Su n a < = A rB C l n ;
cour <= (A .d
B) cr
a-sun,
-(A:d
B) aDd ain;
Conpleto
Una& l.r0 Sumador
SumadorParlelo de 4 bits
Segrlnlo anterio para realizar un sumadorpaalelo de 4 bits slo se requie.
e conecta en i3badaun ircuito medio suhado y tes sumadoescomoletos com se muesfta en la ffeura 3.11
AO
B1
BI
A3
retroalimentados
denEodel ci
exremo
asinado.
Enellistado
3.11
seilustrrca'i:;fi11il::.1'J'"fi;ilr- l
el"intervalo
utrlizado
d"' a'
,"or:;ili:"ii"':".::|x'"'^"1
"re"a"' i' a,
fiffi:";:::*::l'^.*'rlff
*".ffiiljl*l+:T:.,
use ieee. srd-toqic-l164 _11,
6rlty
sLm is Drr (
A ,B: i s r 1 o g i c -v e c ro r (0 ro
3);
s: cr srd_logic_vecto
(O to :);
Cour: <t srd_Iogic);
rcbitctule
aqsllna of s1@ ls
E.ts1 c: srd_1ogic ve.ror(0 to
2);
s (0 )
c (0 )
s (1 )
c (t)
s (2 )
c (2 )
s (3 )
cout
Lirtado l.lt
<=
<=
<=
<=
<=
<=
<=
<=
A (0 ) )i o ! B (o);
A l 0 l a d E (o).
(A (1 ) b r B (1))
t-A{ 1 ) a l r B (1))
(a (2 ) )< o. B (2))
(a (2 ) a l d B (2))
l a (3 ) b r B (3))
(a (3 ) Erar
B (3) )
ei c(0);
d (c(o)r(A (t)xor B (1)));
,i o c(1r;
d (c(:L)rt(A (2)r< orB (2))).
,< o( c(2);
d (c(2)* r(A (l ))@ . B (3) )) .
Descnpcion
d< un sumdortje4 birs.
1T{rili*ilrxffij:{;
ffiffi{ffiI::i
srma
Resta
Divisin
Multiplicacin
Table 3.4 OpehdoresaritmticosutiladG
en VHDL
83
liblat
ieee;
u8e re e e .s rd -to s i c
1 1 6 4 .a l l ,
us ro rk . s rd a ri rh . a U ;
eorlty
su- is !b {
a, B :
!n s td t.l i c v e c to r( O !o l );
srfr:
our std loqic_vecror(O
to l) ) ;
end sm;
archlrecrure
a.qsw
of sLr is
besln
s m a < = a + B;
etlit aqslm;
Lbrado 3.12 Descripcin
de un smado.nedianiefd_losic_vecto
yetpquere$d,rith.
84
v HDL E l r ' r c J r p
' rtu m{ n d ' r\,l ,e rJ l *
x2+
BCDDECO
1
2
13
24
45
86
7
8
I
b
d
I
s
h
i
j
-Decodili.adof
de tscD a decimal
u s e i e e e .s td l o s i c 1 1 rt4.a11;
ertlty
deco is porE (
:: i s rd l o s rc v e c to(l dkml o r);
at
s:d l oqrc) ;
a ,b ,.:,.I,e ,r,q ,h ,.,1:
archltecture
Drocess
a.qde.io of Ce.o i
(x) besln
Cantna
m.dint VHDL
t5
<= '\';
If
x
9 9 9 '
- "
a < = ,0 ,;
61 1 f x
0001'
- " ,Q' j
b
Is If
c rg tf
lslf
x
c
x
d
x
<=
= "0010'
<= '0';
= "0011'
<= '0' i
= "0100'
x = '0101"
f < - ,0 , i
t3 1 fx = ' 0 U 0 ' !h !d
g <= '4"
. lsl fx = ' 0 1 1 1 " th l o
h < = ,0 ,;
. l!l f
x = " 1 0 0 0 ' tb .!r
i < = ,0 ,;
.Ir1!
ndo
a)
Fiu
b)
86
Seementodel display
'd
AO A1 A2 A3
0 000
0 001
0 010
0011
0100
0101
0110
0111
1000
l00l
000
100
001
000
100
010
010
000
000
000
0
I
0
0
1
0
0
1
0
0
0
I
0
1
1
t
0
I
0
I
01
ll
l0
10
00
00
00
10
00
00
u Be i e e e .s td
entity
l o q i c 1 164. al 1;
(
deco iB port
A: in std loqic-vector(l
tlowrlo 0),
d : o u r s td l o q i c vector (6 l @ to
alchitcEllre
be!'1n
arqdeco
of
deco 1s
0));
Di\ e o l . e i . c o m b n d c nn l l m e d r a n k V H D L
Drocess
87
(A) bsi!
d
d
"0000001";
"1001111";
"0010010,,;
"0000110";
"1001100";
" 0100100
";
"0r00000";
" 00rt1110";
,,0000000";
d
d
"0000100";
"L\1,1171"
;
a0
Enlrada
a2
a3
a5
ao
a8
a9
d0
dl slida
d2 BCD
d3
88
c o d i fi c a d o r
d e d e ci nal
a B cD
tlb!.rr
ieee;
u s e l e e e . s td -l o q i c _ 1 1 6 4 . aU ;
enllty
codif 15 Dort (
a: 1E l,tgr ratg 0 to 9;
dj out std_1ogic wecror(l
archllecte
begh
arqcodif
of codif
tlornto 0));
16
Dloce6a (a)
bsi.!
Ifa = 0 th n
d <= "0000";
e ]6 i fa = 1 th @
d <= " 0001";
e l s l fa = 2 rh e D
d <= '0010";
e l d fa = 3 tb s
d <= "0011";
e l .s l fa = 4 h
d < = " 0 1 0 0" ;
e l s tfa = 5 tb e
d <= "0101";
e ]Ei fa = 6 th o
d <= "0110";
l s tfa = 7 t
d <= " 0111";
e L 6 1 !a = 8 th e
d < = " 1 0 0 0 ,;
d <= " 1001";
r:ll If;
rid plocess;
end rqcoallt;
"r:':::1r.:":t::=,:::::""::
=.:g::.-2:
Li6tado 3.15 Diseode un codidcadorde decimala binario.
89
Ejercicios
Declaracoesctmcutentes
en VHDL.
concurrentes
3.1 Mencionelos tres tiposde declaraciones
condiqu
se
usan
en
las
declaraciones
tipo
de
instrucciones
3-2 Indique
a una seal.
cionalesasignadas
lgicosen VHDL.
3.3 D el ordende ejecucinde los operadores
propoconela expresi(')n
equivalenteen
J.4 En lassiguientesexpresiones
VHDL.
a) X = (a+b) (cxord)
b) F=(a + c+d) +(a.d. c )
c) Z = (w.x.y) * (x r"rtory)
. (a + b )
secuenciales
3.5 Mencionela principaldiferenciaente las declaraciones
y lasdeclaraciones
concurrenres,
secuenqu
utilizanlas declaraciones
3.6 Mencione
tipo de instrucciones
ciales.
3.7 Indiquequ instruccinse utilizacuandoserequierenmscondici(t
nesde evaluacinen un Proceso.
aritmticosque seutilizanen VHDL
3.8 Mencionelos operadores
3.9 Indiqueen cul libreray en qu paqueteseencuentanlos operadoresde la pregunta3.8.
J.lO Un circuitocomparadorde 3 bits recibedosnmerosde 3 bits X :
X2, Xl, X0 y Z : 22, Zl, 20. Diseeun progamaen VHDL clue
produzca
unasalidaF= l siyslosiX < Z.
3.11 Elaboreun programaen VHDL que describael funcionamientodel
circuitomostradoen la 6gurasiguiente.
z
F2 - yz +t2
q)
Decodtiadotu
de un cicuito decodiffcadode 2
a 4, regn se muestraen el siguientediagama.Utilice esucturasdel
tipo ilthen.elsif.
Donde:
EN = Ennada de habilitacin delccuito (se acriva en bajo)
A, B = Entradasdel circuito
Y[0:3]: 5u,
.1. .u,o
Y5
a)
b)
Mlltiplemres
l.14 Diseeun proTarna
de un mulriplexorde I bit con ochoentradas
como el que se ilusta en la 6gura siguiente.Implemente el algoitmo
con baseen la tabla de verdad adjunta.
ENC
lXX
000
000
000
000
0t1
0ll
0ll
01r
a) Multiplexor
X
0
I
0
I
0
t
0
0l
EO
El
E2
E3
E4
EO'
EI'
E2'
'',
E4'
E6
E6'
b) rabrade vefdad
91
92
Bibograffa
rdvHDLLn'guase
Relcr'
n" Mnu,llEtt srJ-r07o
'ott',tJ;1o,"tuu"t'""
l
Nrab:
A,,ai)v'
r, vodl,ne./D,e!/
ir,,en",.
N4.urw.Hi
^'".,ij;j]"
I
on.,i*:
De.iEn.
ro
\
HDL.
N4,'rg.,n
K",rffman
rubti.her
'\ srrrJc
iJ;rtn
I
D*rrprrur'rnd
D''"r' Kr"'^*
' "'';hli:Ti';,1.',",:
1?0""""'.
|
tubli.her..
I
Arm.rr,.ng
I.R.v UalGrarF, Sr,,rd
Dcvgnu,rrhVHDL.p,enrt..H,ll.
I
1997.
."
;[::lll:;"iill;i".:,*Sli.i."i,oi;*.
I
RrnJolhH.: Aplnar
t,,n,oJVHD\oC,rcrirDc.g.
KluucrAcademr.
lu.
II
Captulo4
Diseolgicosecuencial
CONVHDL
lntroduccin
Los circuitosdigitalesque hemosmanejadocon anrericri:lad
han sido de
tipo combinacional;
esdecir,st)ncircuitosque dependenpor conpleto de los
que se encuentranen susentradas,en deteminadoriempo.Si bicn
vaLores
un sistemasecuencialpuederencr tambinuno o mselementoscombinacionales,la nrayorade los sistemasque se encuentranen la prcticaincluyen clementosclememoria,loscualesrequierenque el sistenasedescribaen
trminos de /ridcd secuencid/.
En estecaptulose descibenalgunosde los circuitossecuenciales
nrs
utilizadosen la prctica,comoflip-flops,conradores,
regisrros,
etc., adems
sc desarrolltnejerciciosparaaprenderla programacinde citcuitossecuencialesen l()sque se integranlos conceptosadquiridosen LrscaptuLos
ante-
94
Enlradas
de un sisrena secuencial.
;W;W;@
s Ro
0
0
0
0
1
1
f
00
0t
t0
tl
00
01
10
J KQ
00
01
10
11
00
01
t0
11
Diseoleicosecuencialcon VHDL
95
onrr
D
0
1
l
0
1
t e.4.4.
96
libraly
ieee;
u s e re e e . s td -l o s i c _ l l 6 4 . aII;
enllty
ffd ls Dolt (
Ir, clk: l srd_Loqic;
c|l sLd_losic) ;
Q:
dchllectule
bsln
aqffd
of
ffd
i!
(crk) bgln
l f (c rk ,e v e or ard ctk= ,1,)
Q.= D ;
stl 1f ;
d plocss;
Dd arqf fd;
9l@eas
tbe
re
Li.tsdo 4.1 Desipcin de un flip.dop dispa.adopor nancoosirivo.
I El:F6trcfo'
97
loplo,1.1
R
000
001
0t0
011
100
r0l
rl0
lll
Q,+r
0
I
x
X
Solucin
La tabla de verdad del flip-flop SR muestraque cuando la enrradaS es
igual a I y la entradaR es igual a 0, la salidaQ,*, toma valoreslgicosde
1. Po otro lado,cuandoS = 0 y R=1, la salidaQrrl = 0; en el caso
de que S y R seanambasigual a I lrgico,la salidaQ,*1 quedaindetemi,
nadai es decir, no es posibleprecisarsu valor y ste puede adoptarel 0
o 1 lgico.
Porkimo,cuandono existecambioen lasentradasS y R --csdecir,son
iguala 0 , el valor de Q+l mantienesu estadoactualQ.
Con baseen el anlisisanterior,el programaen VHDL puederealizarse
urilizandoinstruccioncscondicionales
y un nuevo ripo de datos:rdioresno
importd('-'),los cualespermitenadoptarun valorde 0 o I lgicode maner:r indistinra(Lisrado4.2).
98
1
2 use ieee. std_losic_1164. all;
(
ffsr
3 otfty
la port
4
S,R ,c l k : I srd-l ogi c;
5
6
7 rclrltcture
a_ffsr
of ffsr
lB
8 b.stn
(c1k, s, R)
9 r,!oc!!
1 1 b.gi
10
l! (c]k'evt
clk = '1') tr
'|rd
11
1 ! (s = ' 0 ' m d R = ' 1' ) tb6n
a2
1l
14
15
16
L7
18
R = /0/)
tr
d R = ' 0' )
th6
20
zi
22
23
24
25
26 d
4.3 Registros
En la figuta 4.5 se ptesentala estuctura de un registro de 8 bits con entmde
y salida de datos en paralelo. El diseo es muy similar al flip-flop anterior, le
diferencia radica en la utilizacin de vectoesde bits en lugar de un solo bit,
como seobservaen el listado4.2.
DIo:I
Iotn
Iia.rl
iee;
us i e e e .s td _ l o q i c
otlty
1 1 6 4 . 1 1 ;
fs Dort (
s rd l o q i c v e c to r(o ro 7);
std_loqic;
reg
D:
c1k:
Q:
olr srd_toeric_vector
ar(itectur
arqreg
of res
( 0 to 7)),
Is
beC
Dloce6g (crk)
tf (c l k ' v Ed t
'
b.gtn
. c tk = ,1,)
th4
coat tf;
nd DEoce6;
'.sLno
de S brrs.
l$r'I,4.2
Solucin
Como puede observarseen la tabla que descibeel comportamiento del circuito,si CLR: O, las salidasQ adoptanel valor de 0; perosiCLR = 1, toman el valo de lasentradasD0, Dl, D2 y D3,
100
CI
QN
Dn
0
Dn
I
Dn
0
I
1 llr:r
ieee;
2 iee. Ftd-1ogic-1164 . qLl t
3 @ttty eg4 la Dot (
D: !. std-logic_vecror (3 abmto 0);
5
Cl,K,CLR: l
std-Losic;
Q,Qr: lrcut
7 @,
! ]..,!
sld_loqic_vecror(3
alrr.to 0)),
].g4i
I .rdhlt.clr
4_reg4 o reg4 l
9 b.gtn
(CLK, CLR) b.gl
10
Daoc...
1.1
l.t (clK'.vr
.d
cLK ='1',)
L2
1! (CriR
'L. )tt6
13'
Q< = D ;
t4
en <= nor e;
15
.lr.
1,6
Q < = " 0000' '
t7
Qrl < = " 1111' ;
ol 1f ;
' ... 18
''
19
d 1r;
20
d
Do<rrtr,
21 6d 4-rJ4r'
Urbdo EfJ
tol
-1.4Contadores
Lrs contadoresson entidadesmuy utilizadasen cl diseolgico.La forma
usualpara describirlosen VHDL es medianteoperaciones
de incremento,
decementode datoso ambas.
Como ejemploveamosla llgura 4. qlre representaun contadorascendentede 4 bits, ascomo el diagramade lrrnposque muesuasu runclonamiento.
CLK
I .l ..1_) I I I _.1I
.l I
o0
Q1
Q2
o3
Cabemencionarque la presentacin
del diagramade tiemposde esrecir,
cuito tienela finalidadde ilustrarel procedimiento
que sesigueen la programacin,),aque puedeobservase
con claridadel incrementoque prescntan
las salidascuandoseaplicaun pulsode reloj a la enrrada(listado4.3).
Trrno'gco
supedor
r,xatapa
$
'n,o*,
PROPTEDAD
DEL
rtY
TNFORMACt
vav cENTRO
DE
u e i e e e . s l d _ 1 o g i c 1 1 rt4 .a -1 1 ;
us e w o rk .s :.i a rrrh . a l 1 ;
4tiEy
co.t4 ls IFrt (
c , k: l n s rd l c s i c ;
Q: inou! std Loqi._vecror(l
archlteclure
alosrto 0)l;
arqccnL of cont4 is
p ru e s s
If
(c l k )
(c ]k ' e l ,a t
rd cl k = ,1,)
O r= Q+ 1 ;
erd if;
eltt proceBB;
l ten
102
\ H l
UP/DOWN
ACCTON
o
1
Figub E4.l
Cuentadescendent6
Solucin
La sealde conrrolUp,Down permitedelini si el conteoserealiza
en senti_
do ascendente
o descendente,
En nuestrocaso,un ceroaplicadoa estaseal
deteminauna cuenla ascendente:
del 0 al 15. De e"caforma,el funciona.
mientodl circuitoquetladeterminadopor dosseaies:
el pulsode reloj (clk)
t la .el Up Doq n. c,.n,o,e ve cn el .rguenLe
pt,,grdma.
ur reee.std_Loqic_1164..Il;
us rcrk. s t{ari
rh. llt ;
dtrry
conrador 16 Dort (
clk: l srd_togic;
UP: lr srd_]oqic,
Q: trlc,rr s rd_1osic_vecror
trqhltectu!
bcla
a_contador
of
( 3 dot nro
contaato
r03
0) );
= '1 ') t b ! !
0 <= 0+1;
Q < = O1 ;
6at If ;
.|Dt tf ,
cll Droc..s;
at a_conractrcr;
%
ltdo
84.3.
b)
Iisra a.7 a) Conradorbinanode cuarrobLr.bl Tabt
de tun(ionm,enro
104
2 u s a i --,-e .s i d _ L o s i ._ Ir64. al l ;
I u s e w o rk . s td a 1 l h .a 1l ;
.1 enlity
co.t is Dort (
!
6
t
13
14
15
s td ]o q i ..ccto(3
Q: iroul
archileclre
:L:L
12
s]]d log1c;
s ld_loqic_vec tor (3 I@to
arLccnt
of cont ls
Q <- P ;
(IAD
elEi f
1
18
19
el8i f
?0
2l
0));
16
22
al omto 0);
': L '
Q . =Q ;
( L o A = '1 '
ad
a r i d a N r = '1 ')
Q <=Q +1 ;
d
q . i P = 'l ')
if ;
enal procss,
2 eDd ar4conr;
]H
lhen
then
105
Diseo de sistemassecuencialessncionos
Como ya semencion,la estructun de los sistemassecuenciales
sncronos
basa su funcionamientoen los elementosde menoriaconocidoscomo
flip.flops.La palabrasincronla serefiete a que cada uno de estoselementos de memoriaque interactanen un sistemase encuentranconectados
a la mismasealde eloj, de forma tal que slo se producirun cambiode
estadoen el sistemacuandoocura un flanco de disparoo un pulso en la
sealde reloj.
Existeuna divisinen el diseode los sistemas
que serefiesecuenciales
re al momentoen que seproducirla salidadel sistema.
En la estructuade Mealy (Fig.4.8) las sealesde salidadependentanto
del estadoen que seencuentrael sistema,comode la entradaque seaplica en deteminadomomento.
En la estructuade Moore (Fig.4.9) la sealde salidaslo dependedel
estadoen que seencueta,
106
j- ww
,,.'-]-ry-'
l" "'*--l
Fsr. {.10 Derccrorde secucncD.
107
Diagramasde estado
El uso de diagramasde estadosen la lgicaprogramable
facilitade manera
significativala descdpcinde un diseosecuencrat,
ya que no es necesario
seguirla merodologlacradicionalde diseo.En VHDL se puedeutilizar un
mudelofuncionalen que.Jlo.e indrcaIa trdnsicin
quesiguen1.. esrad,s
y lascondicionesque controlarnel proceso.
De acuedocon nuestoejemplo(Fig.{.12), vemosque el sistemase_
cuen.ial.e puederepreenrar
por medodel dragrama
de esrado.de la fieur 4.12):arqurectura
Mealv.En e.rediagrama
se adrierteque el si"rema
cuenrcon una sealde entadadenominadaX y una sealde salidaZ. En
la figura{.12b) semuesrrala tablade estadosque describeel comportamiento del cicuito.
Cuandoseesten el estadod0 y la se;al de entadaX esieuala uno. se
,van:al e,adodl r Ia sLdaZ durantee.rtransicrn
er rguala cero;en
casocontrario,cuandola entradaX es igual a cero,el cicuito se mantiene
en el estadod0 y la salidarambines ceo (Fie.4.l l).
olo
&.,-o
Fisura 4.11 Transicide !n estadoa oio.
SalidZ
X=0 X=1
d2
d2
d3
--f
a*
Ernada
stid a,
0
0
d2
0
0
108
VHDL: El te de prrsranarstemsdisitalcs
(d0,
iE
edo-sescnte,
d1,
d2,.jl)
e.lo furuo
;
: esrados;
Drocss
(edojr-se:e,
D ro c e a a ( doj resen.e,
c a a e e d o j re s e n te
is
w h e n d 0 .>
Z< = ' 0' ;
if
x = ,1 ,
x)
begi n
E hn
e d o fu tui o
< - dl ;
else
e d o _ fururo
< = d0;
e a d i .f;
I S. ll.mn riposenumcndos
B)que e elloss. grupan o eun n elemenorqrc Frrenecen unijn.
Discolgicosecuencialcon
VHDL
109
1 libr a ? y
ieee;
2 uae i e e e . s td _ 1 s i c 1 1 6 4 .a l 1;
I n! 1 ty d i a g rma
Is D o rt(
4 c lk ,X:
i a s td l o q i c ;
5
zt
o u E s L d to s i c );
6 end diaqrana;
? architecture
arLdiagratra
of diaqrana
ls
8
t t p e e s ta d o s i 3 (d 0 , d 1 , d2, dl l ;
9
ai g n a l e d o j re s e te ,
e d c fur::
cstados;
10
begl
p o c e s o L : p l o c e s s l e d o __rrsenre, ) besi n
11
12
c a E e e d o j e s e n re
is
1l
=
>
when d0
! < = ,0,;
14
i f = ,1 ' rh e n
L5
e d c _ fu l ro < = d1,
16
else
17
e d _ fu tu ro < = d0;
18
e n d i f;
19
when d1
z <='0 ;
->
2A
l t = , 1 , rh e n
21
e d c fu tL ro < = d2;
))
elae
2l
e d o _ ru tu ro < = c1;
24
e n d i f;
25
w h e n .1 2 ->
Z < = ' i )' ;
26
tt x = , 1 , rh e a
21
e d o -fu tu ro
<= d3;
28
e IEe
29
e d o _ I[tu r o <= d0;
l0
e a d i f;
Contna
ll0
32
33
34
lf
35
x-,1, t!.a
edo_futuro <= d0;
z <-'1, t
.1 i .
36
edo_fuluro <= d3;
3'-7
z <= ,0,i
38
.d Lt;
39
40 a Droc.a procesol;
42
43
44
45
46
47
I.do
l.do45 4J
Disfrodc
Dno
de
n dasrrq
diasna de 6.adc.
etedos.
I
Serequiereprogramarel diagtamade estadosde la ffgumE4.4.
I
AI
orc
r/0
ffil
\
1/0
1/1
|
0/0
to\
-"'- X)*
olo--'
0/0
1t0
r/o
\l
0/o
@l
rsuE4.4 Diaanmd.6rd..
I
I
Solucin
II
DiseolsrcosecueciaLcon VHDL
lll
us e ie e e . s L d l o s i c
1 1 6 4 .II;
entity
diaq is Dort (
c lk , x : 1 n s td l o g i c ;
z : c rl s td l o ri c );
4httectu!
arq_dlag of diaq lg
(q 0 ,q 1 ,q 2 ,q 3 ,q4);
t lDe e s ta d o s l E
619r
edojes,
edo fut:
estads;
bEi-a
procesol.
Docss (edolres,x)
cse edo !r:es l
d re d q 0 = > z < = ' 0 ' ;
i fx = ' 0 ' th E
edo_fut <= q4;
bgln
<= q4;
edo_fu!
<= q3;
ed lf;
l d l e n q 3 = > z < = ' 0 ' ;
tf x = '0' rr
Contina
ll.2
<= q3;
1a.
edo-fur
<= q3;
d a l !;
ta l t6 q 4 = > z < = ' 0' ;
l fx = ' 0 ' tl r@
edo_fut <= q4;
.l
edo-fut
<- q1;
oc tf;
c6l cr5!,
ll Dloceaa procesol;
proceso2: pocE (crk) b.stE
lf
(clk'event
edojres
<= edo_fut;
j
oat It
prceso2;
.Dil !bca.
lltdo f,14.
lli
nF.FIop
4,1 Reaiiceun progamaen VHDL quedescribael funcionamientodel flipdel
flop tipoJK. Auxlleseparasudescripcinconla tablacaractelstica
Flip-Flop.
'
0
0
',0
0
I
I
I
I
Qt+r
Q
'
I
I
0
I
0
I
Re8rrros
I
l
u4
SO SI
00
01
10
1l
CLK=
SO, Sl =
D0,,,D3=
RST=
Q0...Q3=
L:
R=
ACCION
Hold (Reten)
DesplaramientoIzquierdaSL
lad (Carea)
DesplazamientoDrechaSR
Reloj
Sealesde control
Entadasde datos
Reset,
Salidade datos
Enrada seie desplazamientoa la izquierda
Entrada seriedesplazamientoa la derecha.
4.4 En la figura siguientesemuesttael esquemalgico de un registrode desplazamieotocon entada serie/paraleloy salidaserie.Realiceun prog&
ma en VHDL que realice la misma funcin.
o----------x,--
VHDL
l15
Entrda
D
rzqureda
Co ta.tras
4.6 Diseey progame un contador que relice la secuencia0,1,3,5 y repita el ciclo. El cicuito debe conta con una seal de teset activo en bajo, que coloca las salidasQ en estadobajo.
116
l1g
Sismssecencioles
4,12 Realiceun programaque resuelvael siguientediagramade estados:
___lI I
N
-l
E_
l-l
Lgl
118
f l-
lq,q l
*-_l--
@
l
;t
II
f fii
r-P]
:il
i:
..:*,d.,.,,
r"r,g,,,,i"r
.ercicio
derapgina,,,
* "r. I
..e
modificado
ral v como muesrra
enla srguienre
ligura.
rmFr
jE==
=-=]
*'
i
-*9
I [E*
II
I
|
Diseolsicosececial
conVHDL
119
B
C
D
E
BO
A
B/0
c/0
DA
E/O
C/1
ctl
E/0
A/O
120
rt2
2ll
34
4)5
5l
o17
70
4.ZAPogrameel sistemasecuencial
chadorade reiescos,
el valordr
na aceptamonedas
de $5.00,$1
monedade diezo veintepesos,I
de $5.00pesoshastacompletar
Paareali?aresteptograma
dasni el sistemade sevicio
Programeexclusivamen
trolar la secuencia
descritaI
X=l
12.
Bibliografa
TL. FloyLl:Fundamentos
desisternas
drgrtales.
PrenticeHall, 1998.
Ll. Tlres; Y fboja; S. Olcoz;E. Mllar: VHI)I- I-enuajeestnrrde discr
ebcriico.
McGarv-Hill,1998.
David G. Maxinez,JessicaAlcl: Diseriode Sisal Ernbebidos
a trtsJe
Itnguajede Descripcin
enHrdu,are
VHDL. XIX CongresoInternacic
nal Acadmicode IngenierElectrrnica.Mxico, 1997.
C. Klxrs, E. Cerny: Harduare DescriptiarItnguage and their Apllcations.Spe
cification,modellig t)erificLuiotra s\nthesiso/ micnrelcctnrnicslstem
Chapman&Hall,1997.
IEEE: Tlw IEEE stnltrlVHDL LanguageRet'erence
Monral.IEEE-SrLl-1076
1987,1988.
ZainalabedinNavabi:Ana[srsandModelingry'Drgltai51sems.
McGrar"Hil
1988.
P J. Ashenden:TeDesgw'sguideto VHDL. MorganKauflmanPublishe
lnc., 1995.
R. Lipsctt, C. Schaefe:VHDL HardudreDescnption
anl Design. Kluwe
AcademicPublishers,1989.
S. Mazo,P Langstraat:A ,.ideto YHDL, Klu$er Acadenic Publshe
1993.
J.R.Amsrrong -vE Gail firay: StrucaredDesignuir VHDL. PenriccHall
1997.
K. Skahill:VHDL /rr Progra'nmable
Logrc.Addison\fesley,199.
A.
Bhasker:
A
VHDL Pmer.PrenticeHell, 1992.
J.
H. Randolph:Appicddons
of VHDL n Circuit Desrgr.Kluwer Acadern
Pblisher
Captulo5
Integracinde entidades
en VHDL
Introduccin
Hastaestemomentohemosutilizadola programacinen VHDL oaraliserentidde.inJiridu rle.I bl,,qrre.
N mnimo.l.concl tnrc. ,,b1er,de
lgrc,
familiaizariocon los diversosesrilosde diseoy programacino amos,
as
comocon el usoy aplicacinde laspalabrasresevadas
en VHDL.
Sin embargo,esobvioque estaheramientade diseono fue creadapara
este1in.Como vimosen el caprulol, existenvaias.azones
parasu utilizacin; peoquizsu verdaderafortalezaadicaen que pemiteintegra,,siste_
mas,.1igitales"
que conlienenuna gran cantidadtle srbsistemas
el"ectnicos
con el 1inde minimizarel tamaode Ia aplicacin.En primeainstancia,
en
un solocicuitointegradoy si el problemaes muy complejo,a travsde
una
seriesucesiva
de circuicosprogramables,
seaque sellamenCpLD (dispositivo
lgicoprogramable
complejo)o FPGA (arreglos,Jecompuerta"programables
124
En el seguntloc:$o, cuandoLrbservamos
cl sisfemacomo un todo (Fig
5.1b) el nrrnerode termiralcs de entaday
dismin.,ye,p,r. lo que
"rlida
nucstrotrabajoesdesarrollarno sloun algorioro
inrernocapa:,:leinterprctar el funci()namienao
de cadabloque,sinotarnbincmoconectarcadaunc,
de ellos.
r--clk-
I
I
l bcdet
b)
Figu6 5.1 a) Disonediant enriJadeshdilid uales.b) Di$io median
e la
rel.iD de entradr/stids.
oe elricrd.s
inci,,dra1..
2 r@
4 4tity
dlsp
c1i, r.seL:
d:
q:
il
in
1 Flt
srd-
o!:ri.;
1.qic,/e.ro.i6
i@t
st.i
iju
t@Eo r l ;
(] lcMro 0 l l ;
I
I achitetre
lq.1i:Dtal,
besln
pr e8E
11
( c t i, . . s e. )
otr displa'-
12
If
i4
(c1k er
q< = q+ t ;
ed
.1k
1 ) tb6
if
( r es et
125
ldq
It
L9
2,4
a7
22
2)
24
2\
2i
2B
2t
: lt
)?,
ll
l4
l5
l6
:1 1i 1110;
0 : L:L0act;
1 : 10110r;
i 1 11001 ;
rl rJ11 ;
r 0l l 1l i l ;
1 0:L:L:111
;
1 :110000;
1 i l 11r r ;
:L 11ai l l l ;
0 00c0i ra;
t7
2 l.
iee. std_1osic_1164..t;
$ork. 6rd_ai rh. .t ,
4 Etltt
djspLdyl 1. Dort I
s
clk,lesetj
t sraLlosic;
qr
6
d:
srd_1osic_vecto!
3 u-
(6 dmt
I .rcbllctutt
a_disp1 c displayl
t.
9 .191 q: st
oqic_vecror (3 (ro
10 b.ad-E
11
(clk,reset)
Eoc..r
b.el
lclt'ewnt il clk =
12
0) ) ;
u,,
t ) tte
q < Eq + 1 ;
15
16
tt;
7'/
od
lf ;
19
20
(q) !.t|I
tEoc...
cr. q
2t
22
23
! a
24
tld
25
r -i
26
27
28
tu
t e
29
tb o
30
,b
31
32
t c
33
liba
33
34
35 od
ldo
a-disp1,
127
I nf om t io n r
ta c ro c e l l
U ti L i z a ti o n.
Dedicaled
inpuLs
1l
CLock/Inputs
112
T /O Ma c ro c el l s
Buried
Macocells
L1
rJ
32
156
l2
I
22 I 225
Reporte de Lbt.lo 5. I
I nf om at io n :
Ma c ro c e L l
1
Buried
Macrocells
PIM Input
Conects
4
5
B/225
Report de Listado 5.2
3
2
32
32
156
=8%
128
YHLrL tlJfr
Llr F! s r m r r . , s f en, \ L, r , r . Lr
Intes.acindeentidades
n VHDL
129
2a
c <=
0041 when
0010 v hen
0011 when
01a0 v hed
0101 when
C110 when
0il1
v heD
1004 when
r AAT ;
r ec t a
r ec la
r ec l
r ec t a
r ec la
r ec la
: c c ia
r.c a
=
=
=
=
=
=
=
=
10C00OCO1] else
010OOO00| else
1 ] O I O l ] 1 I l ] 1 ] 1e
] lse
C0C1OCaO1] e16e
o0oo:Loool] else
O ( ] O 1 ] 1 ] : L 1 ] 1e] O
t5e
!!C0!01!
else
iaoocot
else
A.=a;
24
Dr oc eas ( c t li, A, D) beqf in
25
li
lc 1k ev enr and c l k =
:L ) rhen
26
Q < = A;
2 .1
D. =
Qj
28
^d f ;
29
e a6e D is
l0
r hr
0000 = > s eq < = O 1 ] 0 1 ] O O ;1
l1
Nh
0001 = > s eq <= t 0 o 1 i 1 i
,
qb
12
0010 = > s eq <= 0 0 1 0 0 : L C ,
ll
= > s ell <= t 0 0 0 1 1 ;
whn Coi1
1 ,1
whn 0: 100 = > s eg < =
10011C ;
l5
r her
0: 10: L = > s e! : r < = 0 : L l ] 1 ] 1 0 O;
:6
s hn
0: 110
> s eq < = 1 ] : L t r 1 ] l ] l ] 0
;
l?
. > s eg < .
s bD
0111
0001110 ;
38
r hD
: 1000
> s e! : r < OOOOOOO
;
l9
whr or he s = > s ell < = 1 ] 0 l ] : 1 1 0 0 ;
40
eDd c as e;
41
ed p.ocesa;
4 2 d a dis pl;
tado 5.1 Proetanacn del s$tena visuatador de un herc.
130
r4 a c ro l l
Jrr_-dt i o.l
i Dedicaled
Inpurs
3
2
23
0
I I/O Macrocel l s
Buried
MacroceLls
I PIM Inpu!
Comects
2Q
r3l
2l
32
)32
t156
48/225= 21
Fisur 5,3 Porcentajeurild en el CPLD CYI?2i.
GND
d'D
clk
c_0
c2
vcc
24
25
26
2
?8
29
30
31
32
33
34
35
36
31
38
39
40
41
42
43
44
seg_3
seg_2
seq-5
tecla_rBV_1
tecla_IBV_2
G.JD
tecla_IBv 3
seg_0
d,3
q,0
d_0
vcc
GND
@
FkuE 5.4 tuporte de asigacinde temitules det prosma lqao R4.
131
ft.
r32
1 l l b ra ry
j
4
5
6
ieee;
o _ o q . _ tb4.al l ;
n l i ty
d i s p L a y l s D ort{
c l k : i n s rd _ toqi c;
lecla:
l a s rd_l ogi c_vecror
s e r: o u r s rd_l ogi c vecror
(O to S )deetaracan
(o ro 6) ) deel aaci n
I acbitclure
a disp o! display
ts
9 slgEl C: srd-logic_vecror
aomro 0);
10 si91 Q: srd_losic_vecror
(l atoidnro 0);
11
L2
D !o c e 8 8 (c ]k , tecLa, c, Q) besi n
1l
(c l k,evenr
if
anal cl k = L ) l hed
IA
:1 5
endl lf ;
16
(tecl a = 100000000" ) thn
lf
L7
c < - ,0001 18
(r ec1a = ' 010000000 ) rhe
e l s If
I9
c < = 0010" ;
20
(lec1a = 001000!00" ) rhen
lslf
2l
c < = 0011 ;
22
(t ecl a = 000100000 ) thed
elsif
23
c < = 0 100 ;
24
(tecl a = 000010000, ) then
1 s If
25
c < = ,0101,;
26
(recl a = !00001000 ) he!
elslf
27
c < = 0110 ;
2A
(r ecl a = 000000100' ) rhen
lslf
29
c < = 0:111' ;
30
Is i f
{ t ecLa = 0000000:t0 ) rben
31
c < = 1 000 ;
32
33
c < = 1 001,;
34
etl 1f;
35
36
v h e n 0 0 0 0, = > seg < = ' 0000001
w h e 0 0 0 1 = > ses < = 1001111
38
w b e n 0 0 1 0 = > ses < = 0010010
.1 9
e b e n 0 0 11, = > ses < = 0000110
40
w h e r' 0 1 0 0
= > seg < = ,1001100
4i
w h e n 0 1 01 = > seg < = 0100100'
42
w b e n 0 1 .10 = > seq < = 0100000
4J
v h e n 0 1 11 = > seg < = 00011r!
44
w h e a 1 0 00 = > ses < = 0000000,
45
i h e n o th e B = > ses < = rl !01100,
47
48
enat a_disp;
Intcsra.i,ndr cDtdadcs
en VHDL
r33
. r,ede-clhe.ho cift'euent
an clk= .l'. qrrenr cr .ino 1.,hl_iliL
inn Jcl rt.
er\r.r..l-nlr linrJ l5 .c ol-.crr qu. parun v.,lordc.rmrnrdo
Jc e.e a, ri.
va un bit dcl vectorde salidadenoninadoseg,que
Fresentala int'ormacin
en
el displdlde sietesegmentos.
Al igualque en el casoanterior,el ahoode tcmirales
es signilicativo;
,
adems,la utilizacindel circuito sc reducede manera
stgnificariva
de 21 a
9 por ciento,segnsepuedeobservaen el a.hiro d" ..iort. g"r,.r".i
, fo.
el compiladorWARP R4 (Fis.5.6).
Inio mr , , n. M L uLel Ulf , J r Lo, r
:re d i . rc d rnpLts
I,/O ra c .o cel ts
,1
Buri ed 4a.rocetts
I)i/l tnlut ccmects
22 / 22a
32
i2
156
9
.ltARp
Fkum 5.6 Ach'o de reporiedcl comFilador
R4.
Ejernplo5.1
Realicela progamacjn
en VHDL para inregrarlos lliferentesbloqueslgicosmosrradosen la figuraE5.l.
Descripcin.El circuito de la figura85.1 sc utili?aparaautomatizar
el proceso Lle empaquetamientode mLrecas
.1eporcelana.C.".td.; q;; i;"
muecasse plredenempaquetaren forma individual
o con un mr.i,nodc
nueveunidadespor paquete.
En un inicio eloperadorseleccionamedianteel reclado
decimalla can_
tidad de piezasque va a empaquetaiConrosabemos,
estcnmerodecimal
se convietea cdigo BCD a avs del cicuito codificaclory
luego pasa
medianteel registrohaciael rlecoclificador
d" ,i.t" ,.gr,.r",rro.p"." i,o*.n.
lJ4
VH JI | | r , e p, . - ,
-e
' m r
j .' e mr J , i: t(.
@ql I
t@@.@tE>
b.@l '"
de Bandafransporadora
Ftun
Despusde seleccionar
la cantidadde muecaspor empaquetael operador presionael botr'rnde inicio, que desencadena
na seriede accione:
controladaspor el bloquedenominadocontrolarlorComienzacon una seal
de salidallamadaReset,que colocaal contadorbinarioen el estadode ceo.
enseguida
envala sealdc aranque(Encendido)al motor que controlael
avancede la bandatranspotadoa.
Ahora bien,cadavezque una dc lasmuecascolocadassobrela banda
pasapo el "sensor"(Fig.E5.2),seoriginaun impulsoelcti.
tansportadora
co (pulso)que haceque ei contadoaumenteen uno su conreo.Esreprocedimiento conrina incrernenrandoal contado en una unidad, hasta e.
monenro en que la cifra acrualdel contador(nmeroB) esigualal 'hmerr
A" dentro del comparador(A = B), con lo cual este ltimo enva un
sealal bloquecontroladorque detienela bandatransporcadora
(Apagado,
y marcael ffn del proceso.
Intqnctr.r d. cntiddccnVHDL
5t
egw
nr'
I"*"
vcc
Fl
Soluci
La programacin
correspondiente
a estaintegracirsernuestraen el llstado
).1
136
2 e i e e e . s rd -l o q i c _1164. el t;
l rJ s w o rk .s rd a ri th . a.l ;
4 ertty
conlrof ls trrt (
5
c]k, reser: lf srd_toEic;
6
Doon: j std Loqic_vecror
(O !o 8);
s e n s o r: s rd toqi c;
8
deco: out srd_Logic-vector
(0 b 6);
9
conpara: d! std_togic) ;
LO
1 1 ariLttctu
a_conrrol
0f control
is
I2 siolf
Q,c,R: srd_loqic_vecto.
(3 atounb 0);
1l
bEin
14
procesol: process (senso, reset, q)
bgl
15
i! (sensor'evenr td sensor = I
) lbd
).6
Q < = 0000^;
1?
O < = e + 1; cuenra
18
if { re sel = 1de=
1001 ) rhd
19
0 < = 0000 ;
2Q
2122
23
proceso2: Drocss (clk,boron, R)
besiD
24
if (c1k'evenr ad ctk = 1 ) tn
25
R <= c; casa eL regist.o
26
i ! (b oron = 10000!000 ) E ber
27
c < = , 0001 ,;
2A
(boron = 010000000 ) he
elst!
29
c < = 0010 ,.
30
(b oron = 001000000,) theo
elslf
3l
c < = ^0011' ;
32
(b o ron = ' 000100000 ) rh@
elslf
l3
c < = 0100 ;
l4
elatf
(boton = 000010000 ) lheo
l5
c < = ' 0101 ;
36
(b o ron = ' 000001000 ) thn
lsif
3?
c < = 0:L10 .
38
(b o t on
el8it
" 000000100 ) l ben
l9
c < = 0111 .
4A
(b o r on = 000000010 ) E b
elslf
4I
c < = 1000,.
42
4l
45
46
48
tter 0001
deco < =
dec < =
0000001.;
10o:L111 ;
ItesEcindenridads VHDL
49
50
51
52
53
55
tibn 0010"
rihl
0011
h{r 0100
whd '0101
*hed'0110'
rlro
0111"
ihen 1000.
ribd others
oil case ;
5',1
58
59
60
c o n p a ra < =
61
62 @d arcbrltecture;
v tl e Q= R el a
131
,0010010;
'0000110;
'1001100';
0100100;
0100000;
0001111;
,0000000;
"0001100,;
0;
w
Fige
138
jix:::
;:ilru.H:
ll',iluff;I:i:1.,i:.?,3.
:".il
: :;f:i;:,
:1:L'i.""f;:i
:l,1i,i,,"*:Ti*:il:.f.::[.".i:
i:
n::".in"iffi
::Tiff
rurru:m*1.*:T::.
proporctooan
el siguientecdieo:
BCD(7)= 0111
BCD(2)= 0Or0
i-)
Cdgo
BCD
Cdigo
Binario
r39
83 82 BI BO
0111
A3 A2 AI AO
0 0l
0
--.-
80
B3
Designacin
de bit:
40
82
20
Bt
l0
B0
Dgitode lasunidades
8421
A3 AZ Atfu
Bit
BCD
Peso
BCD
A0
A1
AZ4
438
B0
Bl
82
Bl
1
2
l0
20
40
80
ReprsentacinbiDana
r 84
0
0
0
0
0
0
0
I
000
000
000
00i
001
010
101
010
0
0
I
0
0
I
0
0
0
0
0
0
0
0
0
0
0
I
0
0
0
r40
;i 3F3?3??jj
solucin
a) Pnmero e"cribe
el nmero
BCDcore,p.,nd,.nt"
y.nr.eu,,l,
'e
"",r.,
el pesode lasunidades
y decenas.
VakrBCD
orooril
r
I 11133333?
[=ffi'iii
,
l:'"",oo,"nnouu",.pre:e
I
\aiuBCD
l.'\'lltor'
o,I
tr l,,s'"l'.","0,"",.u
j.I:r:*
""i: dr".rfff
;'.xi
r'il:
ff""#
:::*d;-,- l
,il:"::il",*
;*?i,:;:
l".':i';t
:lt:::::::f
I
".,nl";:f
",^
i:i,*t','^1'I"':llntirii,Ti.y1l*x
I
Es.gt.
r'drra (nossrgnrfrcarrv
lftE
,..
il
I
11il::
i,*:i:l;$''l:'::ll'::::",."i:::::
-:I
crcuro
meJi,'.umador.oro
r,,ro.
r","nui",,l"",i,".'"'n'li:rffi
lil:li;
--
^'-ffi
l4l
*--*ffi*".
- s_ ""
rigu E,6 Medio mmadoren bi<rquey con onpuen*.
En la columna'?"dela epesentacin
binaria,la posibleocunenciadedos
unosocuresumandolos bitsA2 y 81 del nmero
BCD y el a.r.."o d. l".uCon esto, la suma riene lugar a travsde un su_"do,
.o.ft".
*l_r:,a.i:.
u.lg.r)./).
---->Sra
binario4
co
142
ftigp
ACD
Despusde analizar el procesode conversin de BCD en binario, podemos desctibir el progama VHDL que intega las enridadesde la figua E5.{
(listadoE5.2).
a-conrrol99
0f conrrc199 4
Continl
113
T4
t5 .ICal C,RA,RB: std_Loqic-veto
(3 dtmto O);__ cod. y regisro
16 8&Er Q,cc0"v: sr
oqic \,cror (6 akro o);--conr. y co,eridor
17 aI9D.I E<1a: std_logic_veclor
(1 doDto O);,
recias plesilEdas
18 slsll. ca!y: st{toqic_veccor
(O to 6); -- bir d acdr
de1 cov
19 1aI x: std_logic !cEor (O to 1); -- se1 inter@ de1 co,1v
20
21 !l
22
(bDton, C, TECIA)
teclado: Droc6.
23
aiibL i: srd_loqlc_vecro (1 iL.6to o):= OO.;
24
25
(boton = '1000000000^) t
26
C < = .0 000 ; tecl a < = i ;
21
28
29
30
31
32
33
34
l5
36
37
38
39
4A
4t
42
43
I.1f
.trl!
l f(i =
lU
VHDL
t t d a . o e p ,,,c d m Jr !r cn d !
o ,e Id p !
60
61 display:Eocrs
62
!e
(ldA,F) hesi
FA 1s
-encide
display moos slgturi.:iv
(Jl]l]l] => dispa <= ,0U1IO1]1]1
;
e, ha 0 0 0
o:..tu .
,OO.
t{t6
1 ] 0 1 0 => d i s p a <= 0 0 1 0 0 1 0 . ;
. 0 0 1 1 =>
stE
d i s F a <_ r i r ( , u U 1 1 o;
t{ta
otOO. .> dispa <= 1001100,;
4itr@ 010:L => dispa <= "0:L1]1]11]O
;
6l
ldE
o
65
66
67
bd
69
,bsr
1A
'11
r6
st@
12
7l
r*6
U100OOO;
1]1]01t11 ;
0C0O1]1]O
;
0001100,;
'14
?5
c. F<Bi5
?6
tten
77
, "t 6
78
ldE
- ecide
dispjay @s sjgDrtrcati!
,O1]1]O =>
dispb <= U0001]l]1 ;
oo 0 t , => t i s p b <= 1 u u 1 1 1 1 ';
t9
t{be
80
81
32
I
84
85
86
a
38
eDd DEo@6s;
90
91
9:
!
converidor:
Elib1e
rEoceEs ( RA,NB,(J\RY,X )
z: sr
qic := 0 ;
c c ! v ( O ) < = RA ( O ) ;
1t N r
RA .
)@
RB 0,.
Cq y lc ) < = A{i l
attl rBc);
c ow( 2) < - RA ( 2 ) j @ F ( 1 ) : @
( F R y {o ) ;
97
08RA, ;
c a Ry ( 1) < "
tlr.tr(0)
99
( o) < = F, A ( l ) e
B ( O ) , r ( }1 ] ? i y ( 1 ) ;
c s FRy( 2t < = lFA ( : ) a E t F B {C ) ) c G ( c A R y ( 1 )
d(RA(])
e
'B ( o ) ) ) ;
c o\ \ ( j) < = r ( l]) ) @ R E ( 2 ) ;
95
96
100
101
742
103
104
:105
106
c A y ( : l)
( RA ( 2 ) d ( : L ) )
(NA(2) ,G
<= (0)
adt NB(2);
< = c a R y ( 2 ) , c
rB(:L) e
cARRy(4) <= (crRy (2) .d
riB(I))@
e
iB( 1 ) ) t ;
x ( 1)
atlt
cARyll);
{o\r1Ry)
sd
lcAFyi:
145
107
c c | (4 ) < = x 1 1 ) ) G FB (3);
108
C C r.R y (5 )<x=(:L )a n dR B (l );
:109
ccarv(5) <= cArRy(4) ,@ s(:L) c c1]]Ry(5);
110
C AR R Y (6 )<(c
= e R y (4 ) d R E (1)) @ { cA R yl 5)
111
)@ R B(1 )t );
712
c c ,v (6 ) < = ( z e
F (]) ,ro cA FR yl 6));
111
i:14 qd tEoce6s;
115
116 contado: !E ces (saso,resetO) bgia
117
if, (sensor adr
ad s@so = 1 ) ttE
118
Q < = I]OO0 0 OO
;
119
o<=Q+1;
L2A
l2l
l (re s e r= I @e=
11000:L:L
)tl E
722
e < = .o o o o 00o,;
i23
eod 1f;
724
6r1lf;
1:15 ed r):e@s;
126
1.27
SAI,IDA DEL CII4FAIIADORIA = B)
L2B
!29
cdpaa <= I *td e = C(s,-r'ete
0 ;
1:0 sal lchltatr.Ee;
Ahora analicemos
el programaanterior En lasllneas5 a l1 sedeclarla
entidadde diseodenominadacontrol 99. En stase han declaradolos siguientesbloqueslgicos:codificadoregisto,convetidor,compaado.
rle,
y . onrad,,r
codi6cddor
En la llnea 15 sedeclamonlassealesurilizadasen el diseo.El sienificdode cadauna!e expli\aen l LablaE5.2.
Sel
Descripcin
C
Sealesde salidadel codificadory d entradaal rcgistro
P-A.,RBSealesde saliddel resisro. RA repesentalos lua
146
II
t47
$rcicios
It gactu Ae eriaas
5.1 Considereel diagramamostadoen la siguienteguraque corresponde
a
una unidad aritmtica y lgica (ALU) de 4 bits. Como puedeobservarse
los datos se trans6een a travs del registro de datos y el decodificador
de iristruccin activa la funcin que se realizacon estosdatos.
a) Determine el cdigo de instruccin que se utiliza para activar las ope.
acionesde la ALU.
b) Programeel AIU mediante el uso de vaiospocesospara adherir entidad tras entidad.
c) Considereel ALU como un sistemageneraly programemediante la
relacinde entradasy salidas.
l18
t;
1".
fso
[;
cl
Selccionde turcin
s2
sr
o
o
0
0
0
0
0
0
0
I
I
I
I
o
o
o
0
I
I
0
0
0
0
o
I
0
I
0
t
I
I
I
I
I
I
s3
I
I
I
I
I
I
I
I
F=A+B
F=A+,1B
F = ,1 (complemmto
a 2)
F = A. (A. ,A)
F=(A+B).(A./B)
F = A,B-r
F=A.E-1
F=4.(A.B)
F = (A +/B) .A,B
r=A.B-1
F=(A+B).A
F=(A+D).A
F=/(A+B)
F = oo00
F=/(A.B)
F=/B
F=A B
F=A./B
F-lA+B
F=(A B)
F=B
F=A.B
F = llll
F=A+/B
F=A+B
149
t,
I
I
l
I'
I
I
l
cootncador de / Sepmentos.
de diseo
l!0
\,HDL: El anedeposEmdsrteirsdkirlles
Inreqrcr
de endadercn VHDL
l5l
Bibliografa
TLJlovd. Fundrmenordr srsrcrnas
drglales.lrenrrce Hll, laag.
Lf. Gre.. Y lorrora. S. Of.oz: E. Villar VHDL. lenguae
estjndarJe tJueno
eiecnnrco.
McGraw-Hill, I998.
David G. Maxinez, JessicaAlcal. Djejo de SremdsEmbebidos
a trdusdcl
Itngtaje de Descripcinen HardwareVHDL. XIX CongresoIntertacional Acadmicode IngenieraElectnica.Mxico, 199?.
^ _
C. Kloos, E. Cern1.Ha rduare DescriptiatLanguagemi ther Aplfcations.
Specification,Modelling Veificatirn and Slnthesisof Microeleoronrc
Slsr.
Chapman& Hall, 199?.
IEEE: The IEEE statulardYHDL lttnguageRefererue
ManaLIEEE-SId-l0?61987,1988.
ZainalabedinNavabi. Ana\sis and Modelingof Dg.iraiSlsrems.
McGraw-Hill,
1988.
P J. Ashenden.The Designer,s
guidenyHDL MorganKauffmanpublishers,
Inc., 1995.
R. Lipsett, C. Schaefer VHDL Hardware Descripticnand
Design. Kluwer
AcademicPublishes,1989.
S. Mazo P Langstraat.A guieto yHDL, Kluwer Academicpublishers,
1993.
Allrong
y F GailGray.Srrucrtre
J.R.
d. Design
withVHDL. prenticeHall,
199?.
K Sk_ahillVHDL for prcgrammabte
Lngk. Addison\)e.ley.laa
A VHDL Ptmet.Prentice
J.A. Bhas&er
Hall, I9o2.
H. Randolplr. Applicationsof VHDL to Circuit Design.Kluwer
Academic
Publishe
Captulo6
Diseode controladores
digitalesmediantecartas
ASM v VHDL
Introduccin
Como vimoscn el captuloanrerior,es deseableqtreun sistemaelecrrnico
sc diseedento de un circuirointegradoo quiz,si el sisremacs muy cornplejo,a tavsde vaiosdisposirivos;
pero siempretracandode reducirel r.rmao]r en consccuencia
cl espacioliico
Sin enbargo,en la mayorade loscasoslossistcmas
elecrrnicos
de aplicacinno son purarnentedigitales;por lo general,estnformadospor bloquesanalgicos
(amplificadores,
mukiplicadores...
etc.),bioquesde potencia
(sistemas
con SCRo TRIAC) y bloquesde interfaz(acondicionaclores
de se,
al, convertidoresA,D, erctera).Esto ocdsioraque el sistena digiral se
conviertaen la parrc de control encargacla
de sincronizarcada Lrnade las
accionesque se realizanen los diferentesbloqueselectrnicosmcdiantesenales(pulsos).La misi(indc esraunidadde control es activarcn formaprogramadala participacinde cada uno de los subsistemas
que irtegran el
sistcmageneral.
Al funcionarsiguiendocste esquema,el sistemadigital no cs nrsque
una mquinasecuencial
denominadaCONTROLADOR,
capa:de poporciona
pulso adecuados
en tiemposarlecuados
pararealizaruna operacitinscncilla
.lue,junto con otas,permireejecutaruna operacincomplicada.
El contoladoresel bloquelgiconsimportantey su actuacinesvital,
ya que sin esteelementoseraimposiblecoordnarlos procesosinternoscr
externosque sellevana caboen un sistemaelectrnico.
Debitloa estaresponsabilidad,
el dheno de controladores
ecibcun ra,
to especialy los algoritmosque describcnsusaccionesy comportamiento
deben de analizarse
corsumocuidado.
154
Bloque de estado
El bloquede estadorepresenta
el ,,estado,'
de una mquinasecuencialy de.
be contenerla siguienreinformacin(Fi$ 6.1).
. Nombredel estado.Por lo generalse
utilizannmeros(0,1,?,3,...etc.) o
letas(4,B,C,...etc).
. Cdigodel estado("xxxx"). Se reliere
al cdigobinario asignadoal estado.
. Lista de salidas.Sealesde salida
asignadas
al estadoy-queslo se en_
cuentanactivas durante el tiempo que permanezca
el sistemaen ese
estado.
Dc <lcconroH:t&
lts
Car*lo
drtada
(e)+mdo
Bloque de decii
El romboo bloquede deciOnsi dcCi l vaiblesdc'atraild.al
"iama
y conti:nen la siguienteinfomacin(FE 6.2),
i- iUn ti*l'dc-ai{rd,
blc de ntada.
Uh ahh rrdler.
Un rhh 6l"
156
@
Fiers 6.4 Estrucuh Bsicade ua ctaASM.
151
ffi
Fisr 6,5 Dscripcin de una cata ASM.
Como puedeotservatse,la carta ASM estformadapor cuatro estados,identicadoscomo A" B, C y D, cadauno con un cdigobinario respectivo;as( el es.
tado A tiene asignadoel cdigo00 y el estadoB, el cdigo01. Tambinpuede
veseen el estadoA que eriste uu sealde salidadenominadaInicio, mientras
que en el estadoD la sealde salidase de6necomo Apagado.La carta tiene
dos sealesde entadaidentificadaspor las variables X y Y.
Estacarta puededescdbisemediantela tabla6.1. Como se puedeve
presentalas columnasEstadopresente,Sealesde entrada,Estadofuturo y
Sealesde sa-lidas,
QI
lA 00
200
QO
1
0
tB0l
4 C1 0
5 10
Dl1
Tbla 6.1 DesiDcin de ua cta ASM.
0
I
01
10
0
Inicio
Inicio
1s8
Solucin
La tablacorrespondiente
a la carta ASM se muestraa continuacin(Gbla
E6.1).Observeen la lnea4 cmo es que al estaren el estadoB se pasaal
estadoA sin importarel valor de las sealesde entradap y R.
VHDL
159
'
Btado presente
Ql
1400
240
300
QO
Dntadas EstaioFuturo
( Q1,Qo) T+I
PR
0
I
t
0
0
0
0
0
0
4801
5Cll
T'bt
Sdtdas
Gnar
Limpiar
rl
o'
160
b)
Figu. 6.? a) Neeacin de laribles para indica la codicin de enada (0 o t). b) Notacin
de las sealesde slida.
Hastaestemomentono seha especificadoel usode lassalidascondicionadasen la cartaASM; stasse usanen la estructuraMealy cuandola sali
depende no slo del estado en el que se encuenta, sino tambin de su5
entradas.Como ejenplo considerela siguientemquinasecuencial(Fig.6.8a):
a)
b)
'_--'-.-.-----'
rigu6 6.8 a) Esnucrua
dc M@e.b) Eshuctra
Mealye caaASM.
Di*od.cEole*r&trLcntedieitc.rrsASMtVHDL
.16l
Conb'iiuddo&sa+nilo;lanCdh,reqtrabn
drcsilb B,pi
yatc
la sealde enrada
0 (0/l(Zl)) stransftereal estadoC y duranteeste
enlacsseactivala seful de soJa?l r l. Igualsueedecuandosehallaen el
D y sediigEh.cia el etadoA, Obefvp que,h sealde salidaquese
FsJqdo
srqrv?q522 (Zl = l) . l,alatta 'SM cespqrdientea estamqulnade es6ura.8b.I
tadosemuestraienla
. Conena la sigulggtemeqiiiraae MeAyin ,rnacataASM.
Soluctn
La crta ASM corrcpriirdtntc
s'niuestraen la guraE6.2.
tr i6.2
162
V HDL:E l J ,r ed r p s E n rre
r m ^ d i s r l < r
Desplazamiento
Esle
a-,
a.r"
Como puedeobservarse,
en la figura6.9 semuesrrantresestaciones
de_
nominadasA, B y C, con sendossensores
cadauna (SA,SB y SC). por oni
lado,consideremos
que cuandoel ten seencuenrradetenido,abresuspuer_
tasautomticamenre
y aslasconsen,adurante15 segundos
parapermitirl;
entraday salidade pasajeros;
luegolas cterray contrnasu camino hacr
la siguienteestacin.
Con baseen la descripcinanteriorpodemosinfert algunosaspectos
r:Je
-funcionamiento:
1) El tren debepodermovesede la estacinA a la C y viceversa;
sin embargo,no se estabiececon precisindndeinicia su recorrido.po L
tanto,si la tayectoriaserealizade A a C y viceversaseproduciraun
algoitmocon bastantes
estados,
por lo cual sela convenientesituars.
163
en l esracinB y de ahdesplazarse
haciala direccinESTE(cstacin
A) o direccin OESTE(estacinC).
2) Tmhinse interpretaque cLrando
el trcn se aproximaa una estacin,
el sensorcorrespondienre
enva al vagn una sealde pARO que
acfivael sistemade frenadoy detieneal tren jusoen los lmiresde la
estaci)n.
L condicinanterioresttrblece
que el sisrerade frenadoes_
r predeterminado
y sftrbasrala seaLpARO parainiciasu secuencia de fenado.
3) En la descripcindel problematambinpuedeinrerpretarseque el
tiempode ascenso/descenso
de pasajeros
se macamedianteun con,
troladorde riempoin,:lependiente
al controladordel sistema.
En el diseode controladoreses importante identiffcar con claridad
la parte de control y los subsistemasperifdcos que interactan con 1.
Desde esta perspectiva es posible ubicar el contolado como una caja
nega que permite identiffca con claridad el intercambio de seales
de
entraday salidaque se realizanentre l y sus subsistemas.
En la figura6.10 se observanlas seales,:le
entrada/salida
que interactan en el controlador.La funcindc estassealcsseexplicaa continuacin:
Sealesde entrada
Tiempo lndica el lapso,:lestinado
al ascenso
o descenso
de pasajeros.
SA Simbolizaal sensocolocadoen la esracinA.
SB Representa
al sensorubicadoen la estacinB.
SC Simbolizaal sensocolocadoen Ia estacinC.
DIR Indicahaciadndesemoverel tren (puedeserhaciael esteo el
oeste).
Sealesde salida
. Este Indicaque la direccindel
ren serhaciael esre.
. Oeste&ta seiralindicaque la direcciinque
tomarel trenseel oeste.
. AvanceSe envaparaque el tren realice
su recorridode una estacicjn
a oa.
. P abierta Sealque permiteabrir
las puerrasdel tren cuandose en_
cuentra,:letenidoen una estacin,
P cerradaSealque cieralas puertasdei rren una vezque el tiempo
de ascenso/descenso
de pasajeros
seha cumplido.
Paro Sealque al serrccibidapo el rren activasu sisremade frenado
paaquc secletengalentarenteen los lites de una estacin.
164
@
si
\:-/
@
@
Dco Je.'tuhdores
165
166
\ llDl. Ll
' , ,e
167
I. Descripcin
la cual estforde reftescos,
Se requierediseauna mquinadespachadora
(subsistemas)
mrduloealiza
por
independientes
Cada
mada
tres mdulos
pero hay que disearel sistemacontrolador
una funcin predeterminada,
A continuacinse
que gobiemey sincronicecadaaccinde los subsistemas.
describecadasubsistema:
Limpiezay Cap.
El sistemaecibedos sealesde entradadenominadas
y
tura. La primealimpia el sistema lo dejaen condicionesde inicio; la se,
gundaecolectalas monedasque ingresel cliente.
b) Mdulo de devolucinde monedas.Propoicionael cambioal cliente cuandointroducemonedascuyo monto excedeel peciodel producto.
Caractesticas
.
168
vHJt
| | ,.'.
-.
p, . ! , , . f
r c m . . , ! , ,, e\
Poseeuna sealdc entradadenoninadaListo sevicio (LS), que indica cundose entregtiel refresco.
En la 6gura6.1.1seobscrvacadamduloy la sealizacin
entm,:la/salrtl
que existeenrrecadasubsistema.
i,r '
,
..
169
170
ProgEm
de 1a qui
uae ieee, s t d
tlty
@quina
loqic
i6
dDaihaifa
jte lefies@E
: 1164 . a U ;
(
rbrr
aqtuq
ai9E1
SIR\,'E, cA],BIo,
of
A. B.
mqiina
std_logic;
std
1oqlc);
is
.D.-,-,
edo fur:
in
DEc: dt
, I
esrads;
Conlna
p-estados:
c aae
(ealojres,
1s
edojles
s b A = > CAP< = 0,
LI M P I A <=
MONEDA = 1
edo f ut
< = Bt
edo f ul
< = A;
0; DEC< =
v b@
<-
0 r SIR\E <=
0 ; C-\'IBIO<=
<=
0 r S I R ! 'E <=
0 ; C A M B I O <=
then
edo- f ut
<= c;
edo, f ut
< = B;
- > c AP< = , o, ; LI M PI A
0; DEC< =
0,
If
M P= 0
Ehen
edo iuL
<-
ed- f uL
< = A;
D;
v bn
if
PREcIo
0 ; LIMPIA
= 0
s r Rv E
0 ;
the
<= H;
CAMBIO <=
edo,fut
<= E;
sIRl'E
<=
lf
0 , D E C <=
<-
edo-fut
E => LIMPIA
rhen
C A M B I O <=
0;
MONEDA = 0
lf
0;
tbn
vhd
S I R ! 'E <=
0;
0;
0; DEC< =
lf
l7l
<-
<=
L ;
1 ;
DEC <=
0 ;
0 ; CAMBIO <=
0 ;
CAMBIO <=
0 ;
0 ;
1 ;
LS= 0
edo iuL
t hn
<= !;
eEl if;
vben
F => LIMPIA
DEC < =
<=
0 ; c AP < =
0 ;
1 ;
H => cA!
c At 4Br o < =
SIRVE <=
<= G ;
edo_fui
0;
C A M B I o<=
0;
L I M P I A <=
1;
<= A;
<=
0 ;
sIRvE
<=
0 ;
LIMPIA
<=
1 ;
Conna
172
ib{ I
LC= 0
0;
edo_f u r
l Dlocss
then
H;
C A M B I O <=
I;
D E C <=
l] ; SrR!E
D E C <=
<=
1 ;
I,
O ; LIMPTA
1,.
<= D ;
p_es raalos;
continua e1 proqea
- 1 n rc 1 a s e s u n d o p ro c eso
p _ e 1 j : D ro c 6 .6 (c L K) b qi tr
l f (c l k e v e n r a rl d ct_K = 1,)
edojes
e n d i f;
end Drocs!
l arqmaq;
tben
<= edo_fut;
p_eloj;
i
l
I
I
I
' e 'e'l
De manera
general.
en eldiseode canarASM p.dem." pr,nrualirr.losI
\rgulente5
aspecros:
I
L Paracada combinacinvlida de variablesde enrada,solo
ouede I
exir una slidalesroe5,no es posiblepresentu.do, u".e. l,
mir_" I
sirua(idn,
debidoa quehabriados
dferenre".
I
"alida.
2. Si esnecesario
qlida,
errolimentdr
una
esLo
debehacer.eante,Jel I
esrado
v o en sre.
I
l. Un bloquepuederenervarioscaminosen prlelo
que lleuena h I
mi.ma .alidy msde uno puedee\tar acrivoal misrnoriempo.
I
Cuandose tienencaminosen paralelo. puedendibuaren torma
I
"e
de
sin afectr
el rerultado; embargo,
un diagrama
paruleen
"erie
|
"in
lo puedehacerla carramscompdcra
rn,.nrrr.quJun,li"grr-, * |
serierenemenosprobabilidades
de llevar Lransiciones
de."tado
I
(Fis..151.
ambisuas
I
I
I
I
I
173
Figu6.15.) Estructura
en paralelode unacanaASM. b) Estructua
en seriede una
cartaASM.
1 ,3 ,6 ,0,9,10,11,12,13,14,15
Contador0 al3
Dcodiricador
174
VHDL: El arleeptusmnasisrems
disiialcs
Comopuedeobservarse,
en el diagramasepresentacadauno de los mque
dulos
integranun sistenaelectrnico.Este sistemaestdiseadopaia
abrir una caja de seguridadbasadaen una clave de acceso:si la clavede
cuatonmerosdecimalesinrroducidosen secuenciaa travsdel tecladoes
la correcta,el controladooriginauna seiialde salidadenominadaActiva.
cin, encagada
de abrir la caja;en casocontrario,activaruna sealde sa,
lida denominadaAlarma. Con baseen lo anterio la descripcindetallada
de cadamdultsea:
L Controlador Es la unidadque sincronizacadauna de las accionesde los
mdulosparaautomatizarel sistemade seguidad.
A continuacinse expo.
nen las funcionesde susselalesde eDrrada/salidd.
. SalidaReset.Inicializael contadory lo colocaen el cstado,:leconteo
. Salida Incrementa. Sealutilizadacomo reloj paa incrementaren
uno el contadordei 0 al J.
SadaActivacin. Activa la aperruradc la cajade seguridad.
SalidaAlarma. lndica que la claveintroducidafue incorrecta.
Entada FX. lndica si el nmeodecimalinrroducidoforma parte de
la clavecorrecta.
Si FX = I el nmeointroducidoescorrecro,si FX = 0, se rratade un
numerotncorecto.
EntradaCont,l. Sealdeavisoque indicaa tavsde Cont4 = 1 que
se ha tecleadoel cuartonmero,
Enrada Botn. Indica que seha pesionacto
una tecla.
En la figuraE6.5seobservanlasseales
de entada/salida
del controlador
disitalcsnediantecarasASM r VHDL
Diseode conroladocs
175
176
VHDL: tl
'fte
Disenodc ()nholadoresdisirales
hedianccams ASM ! VHDL
1jj
u E 1 ee e. s Ld loqic - l164.
a1f ;
tiry
. aia m a i6 Do! E(
c1k, tx , c onr , l, bot on:
in
s t d_lo! :J i c ;
ar m a:
a.chitectule
tlf)
loqic);
arLalarma
of c aLama 18
1 ( A, t s , C, D, E , F , C , H , r , . r , K , L ) ;
eoo_c es ,
esta.tcs:L;
- - do t ur :
p est.losl:
c as
p@eaa
eoo pr es
!t@ ->
edo
ts =>
'E
=
5oto.
t u:
edo f ul
< = B;
<
.1k,
fx,
conL4, boron)
besin
I ;rnc <=
0 ;acrj\a
<=
0 ,a1m
<=
O ;
0 ;i..
0 ;activa
<=
0 ;alam
<=
C ,
<=:;
resel <=
:L
< = C;
c = > f es et
ledo_Jres,
ls
eset <=
ed. _f ! t
rb r
std
es t a. los l
slg ra1
if
out
<=
hr
0 ; inc
.=
0 ;a.riva
<=
o.;aLarna
<
l] ;
Contina
fia
fx =
1
D;
D => ieser
tib.
1l
r 6
Il
boton
<=
edo_fut
1'
<= Dt
edo_fuE
<= E;
0 ;inc
t.D
edo_fut <=
.oil If;
rd F => reset
. edo_fut <=
tihe c => reser
edo_fuc <=
th e I] = > re s e t
lf boton =
edo-fut <=
F,
<=
B;
<=
A;
<=
1
H;
,0 ;aetiE
<=
,0 ;acliva
<= ,t ;irc
O ;atalm
<= ,O ; inc.=
edo_fut <- r;
.l If;
the I => !6er <= 0 ;inc <- ,O ;aciiva
l f c o n r4 = ' 1 tb.D
edo_fut <= Ir;
<- K;
Di*o dcotbldtr
reloj:
'
l.r.do 5l
'
(clk) b.tt
Droc.rr
tf (clk event and clk
edo--preE <= edo-fut;
.!rit tf;
.Dtl D!oc...;
rrcLlt.ctur.
I
= '1
17.,
:
) ther
arq-alara;
180
Ejercicios
Esttu tn ua Coa ASM
.1 Realiceuna tablay describael compor'tamiento
de lassiguientescartas
ASM.
b)
Uf
tE2
Dseod canttoladrnes
'''naiat
cartas ASM
Disctudc coDrolado,es
di8irales
ne.li.necartasASM r VHDL
183
--F
-
.w
.w
.l
.w
tl
Controtde
',"":1,:lri:x""
184
v H, ' L LI
J r ,o . , .d . .,. e ,n . o ,i ,..,.
' '.
R]
R2
RI
185
c
z
ZM
186
tu,\
Rb,v
5
Contemdode B rlansfe.ido CI
R, \flcc
'[bla d tuftioMmiento
tEil
188
VHDL: El ne de prosm
si3t
'@
disiralg
LOCICA DE DIRECCIN
MEMORIA
CONTROL.{DOR
SINC
r89
190
c-
INTERMITENTEfUO
191
Bus de
192
REGISTRO
DE DATOS Disposirivoquc almlcena temporalmcnteel datr,
que se va a trarun tir. El dato contenidoen esteregr.r ru , rd e \ p la ra p .re
, r., lrz rla
rrrn , mt r, . nrn . e n e
"."ut,.
i.in Jc la mernoria
p.rrala. ,'p.raLi.'ne.
CS Habrlr.
i.
lecturao escrirua.
\t
.,:r
'zamrenro,
vezquc un bit ha sidotransnritido.
Dne{,J conoladores
dqatales
ediantcrts ASM r VHDL
CARDAI
193
Jerrrr-luel|ror\\rrrnoot|n nro.]ue
oe odto\nr ndo trasmirido.
por
Coordinlas funcionesque debernrealizarse
que
cadauno de los elementos formanal sistema.
de memoia
CARDIR lndica a la lgicade dircccionamiento
quedebecargala direcciiniciala parth dela cual
sealmacenan
los datosque van a serrecibidos.
194
195
Bibografa
FloydT.L.: Fundamenms
de SistemasDigitales,Prentice-Hall, 1998.
StephenBrown, Zvonko Vanesic:Fundmenrk
of DgitalLagic\XlitchVHDL
Design,McGraw,Hill,2000.
FJ. Hlll and Peterson,ComputerA l,ngical DesinWirch Erniusrt on VLSI,
4Th ed, llitey, 1993.
C.H.Roth Jr, Fmlamenralso/I-og?DestSn,Vest,1993.
VP Nelson, H.T Nagle, Digitd lgic Cicuit Anairsisand Design,PrenticeHall,1995.
Charles H. Roth, Jr, Digitai SlsremsDesignUsing VHDL, P!(/S publishing
Company,1998.
PerryDouglas,VHDL,2ed,New York,.McGraw-Hill,
l994.
Herbert Taub, Circliro s Digitalesy Mitroprocesadores,
McGraw-Hill, 1981.
aptulo /
Diseojerrquico en
VHDL
wqffi
F,r'I\
l@l] lF6ll
a)
rs. ?.1 a) Esuctursjequicas.b) Iresracinde enridades.
198
vcc
GN O
YO
Y3
PUsH/PoPl.
oE
crN
l
Figua 7.2 Secuencialo
de cu,rro bitsAMD2909.
l'l contol
Terminal
199
Rmcin
Entradasde registrcRJ-Ro
Entrada!dirctasD3-D0
EntadaER
Entada/FE
EntdaCIN
Entrada,/i:)E
Habiliracin de salidas.
Entnda PUSHrcP
Sealcspan brinc
EntmdS0y Sl
SalidasY3,Y0
y retomc de subrutina.
SalidaCOUT
Alimntacin del circuito.
200
VtiDL,llrt
Je pNerf sisrcms
digiral.s
PUS|-I/POP
clN
s1
Direojerquo en VHDL
201
(R)
_..-..Tr:,=.::_z_
Di s e o d e l
re s i s tro
u. . i e e e . s td _ 1 o s i c _ l 1 6 4 . a l l ;
.tlty
resisrro
16 Dort (
R:
i n s rd l o s i c _ v e cl or(3
E R, C L (:
l n s td _ l o q i c ;
REG:
lout std_loqic_weclor
architct!
arLreg
ot regisrro
t.
bglu
9loc s s (c L K, ER , R E G ,R ) b e g t
(cLK v6!! aal cLK = 1 )!hea
lf
REG <= R;
REG <= REG;
edt lf,
nal If;
dounro 0);
( 3 atolrnto 0));
m2
Saiia (Y)
Fisur ?.6 Multiplexor d seleccin.
--
una operacin
lr.do
rux_4
1s
"10 ,
' 01' .
" 00' ,
otla! ;
Diseojerrquicoe VHDL
Contador de microptograma
203
(PC)
D i s e o d e L b l o q u e d e c u enl a
(contador
de ni croproqrana)
us e i e e e , s td
logic_1164. aLl;
us e w o rk . s td _ a ri th , a l l ;
entity
npc ls 9ort (
C IN , C L K i
Y:
COUT:
PC :
1 n s td
inout
loqic;
s td -l o si c
w ecLor(l
o u E s td _ ]o _ o i c;
l o u ! s td l ogi c_vector(3
atoMro 0);
dow nto 0) );
Conlina
204
aq,rrpc
(cL(,
lf
ol
rpc
ls
Y, CrN) b6gin
(CLK vcot .d CLK = 1 ) tb.n
1 ! (cIN = 1) E h
PC < = Y + 1;
e1s
fd lf;
rit tf;
!a Drocra ;
c o u < = (c l N d Y(0)ad Y (1) d Y (2) .rd
oat
Y (3));
arLry)c;
*effii:*cLK "i
fl
A4
Diot.rtquico6 VHDL
?M
- Dr s e o d e a
pil
d e u a pa-tatra cl e 4 b:rs
llbtary
i eee;
i e e e . s td --o g i c _ II6 4 .
u .
u!
wo rk . s rd - ri
a II;
th . a l l ;
s L a c k Ia D o rt (
CLK, FE, PItSt, .POP:
G Dt l l y
lE
std_logic;
PC: lD td_losic_vector
STr ,.!art
(3 iowtrto 0);
(3 dlordto 0));
6r{logic_vector
n d s ta c k ;
trcbltctur
arq_slack
,1.!ra!1 var:
of
slack
std*losic-weclor
l.
(3 ohto
0)i
. b.glE
(FE, Clrt, PUSH, POP, PC)
Drocer
(3 lol'to 0);
vrldbl
x: srd-logic,vector
D.!rlE
(clK'.vct
l!
ait CLK = 1 ) rh.
(F E E ' 0 ) tb
If
(PVSfl = '1
tf
'
c l .l f
) th.
x <= Pc;
w a < = x;
{ POP = ' 0' )
SI <R; -
.I..
nl lf;
e ti;
.ndt lf;
.dl
do
- alacena
.D D!oc.'';
aq_stack;
dalo
th.a
saca daLo
2n6
| 7.4 Creacin de un
paquetede componentes
e- del
'
,.t
.)
3 u s e i e e e . s td L o g i ._ 1164.al l ;
4 rEckase comps_sec t3 -- declaracin del paquete
5 cc4)qrent
registro
Dort (
6
R:
i n s td Losi c vector(3 al c' drto 0);
7
E R ,C L K: i n s td l oqi c;
8
Fc:
it@t
sLd_logic_ve.tor ( l tlohEo 0));
10
11 cc4)oeat rpc Dorl (
decLaracin del contador
1 2 C IN ,C L K :
i sLd_l ogi .;
13
Y:
i std logic_vector(l
lrhto 0);
14
coUT:
i@t
sid_lgi.;
(:l domlo C));
15
rC:
iDout sld_logic_vecloi
1i1
rat cc.ponen!;
11
18
cq)on@t
20
21
'.
stack !F.t
- f,D
?C:
j.lort
s r:
i o r!
.D OD :
decLaracin
l n-o
09
del
stack
alcrtto 0);
doi nto 0));
23
24
,
26
21
28
29
cqpt)@t
D ," .^
U s t ad ?. 5 ( , c r n dc p. . l- c r . l u . n h . n , 1 " . , , n , p . n . , '. . o e l
.e.u"a.hd.r
))l ?
Diseojerquicoen VHDL
207
a)
Figu 7.9 Rogramde ako nivet(TopLvel).
2909
md
ContintE
208
V HI jL [ J r ne J r p n ,g rrmrr.F re
n J L r [\
1 9 a rc h i Ee c tu re
a (L arnd of and2909 i s
(l domro 0);
2 C i g n a l R E e r s i .l l oqi c vecrcr
(l dohto
2 1 Bi s n a l s r:
s td l oqi c vector
0);
(l
2 2 s i g n a l !C : s l ]d i ogi c vector
dow nto 0);
2l
bes ln
2/ \
25
ini. ia
inl i c o . : x i
de
los
corponenres
26
polt M D 1 C r I l =: a l ( ,
27
! 1i
28
u2: mpc
! l;
s t ac k
! ! t
: 4:
m u I
r egis : r o
)r
l0
@p (cil
ll
. 12
l4
eld arlslc,
La cnridadsedeclaaasignando
lasterminalesde entraday salidadel scuenciado,
la! cualesse nombantal comoestnreferidasen su mdulo(l:neas6 a 16).A conrinuacinlas sealesque interconectancadauno de lir
mdulossedeclarandentroLlela arquitectura(lneas20 a 22). Note que er
tas sealesno tienenasignadaaLgunaterminaldel clspositivo.
La segundaparredel cdigohacereferenciaa la conexinde los disnr
tos cornponentes
utlizandola clusulaport ap (lneas27 a 32). Adern-r
u1, u2, u3 y u4 se denominanetiquetasde asignacininmediata.En ca
asignacin,
el smbolo= ) seusaparaasociar(map) lasseales
actualesrar
decirlasque conformanla entidadamd2909)con laslocales(lospuertosqu.
componencadamdulode dlseno).Una vezque seconectacadamdulo.
diseose compila, generandoun archivo.jed,que contienetodoslo cor:.
Ponentescreddos.
Es importanteresaltaen esteprogamala funcin de las terminales;
(inout). stasse urilizxn para acoplarlos difeentesbloqu.
enta,:1a/salida
debidoa que son salidasde un bl4ue y entradasa un bloquediferente.
Diseojer:iqui.. cn VHDL
209
contienelos componentes
del diseo.Cabemencionarque el ur) de las librerasauxilia al programadoren la reutilizacirinde cdigo;es decir,en la
creacinde un lugarparaairacenarsusdiseos,de modoque puedanservir
paraformapatede oos diseos.
Ahora, con el fin de que puedacrearuna librerade trabajocon facilidad,presentamos
esteapartadodondemostramoslos pasosque sedebenseguir con Ia herramientaGalaxy(WarpR4, CypressSemiconductor).
3 . Una vezcreado,debeaparecerla ventanadel proyecb en que se inclu n los diseos.Paraestoelija la opcinFile -> Add del men
principaly los programas
que formarndchaaplicacin(multiplexo
rcgistrojpc y stack).
210
sistehs
dicitales
VHDL, El artede programar
Permileslecci@arl diso d
fD.sliaton
Lbrary
-
tr olhe,
F@
lwd k I
Il
Il
tl
L
f ok-l
<--
Ll
Err.d. de LasLb@r6
lpseniadasporwa.py
lrascreadd po,!usuaro
f""""r1
Diseojrrqu@ en VHDL
2ll
212
Lainsfrucci(inque
Registrode instruccin,Almacenatemporalmenrc
seva a ejecutaen el microprocesador,
Descodiffcadode insftuccin.Esel elementourilizadoparainterpreta y ejecurarla instrucci)nque se requieeeRlizaren la unidadaritmticdy lgica.
de la mcmoriade
Registrode datos.Ahlacenahx datrs queprcvienen
paraefectuarunaopcracin.
pograma
y querequieeel nlicrcprocesador
"*J Lfl-l_ft
f tfli_L
,
Ficu. E?.2 a) Gnerldoi de ct io de mqri,r (lM).
]-L
fL
b) Diaqrndc titnFos.
uo jcrqicoen VHDL
213
La progamaci)n
correspondiente
a estebloquese muestaen el listado
E?.1.
Md,ilo de gen.racin
.ic1o
.le rqu1ra
qr
is
cLK, RfijFT:
rh. all;
iFlt (
sr.l-loqi.;
a, ri, at, l, E: I t ut : t d
Q: i'ut
srd_loqi.
1ogi. ;
vecro
a g.m of
ihlEoctue
q@
G at@rto
is
1.1k, res.tl
beqin
Prcc$s
if
l.Lk evert atd .1k =
:L ) tlleD
o< = 0, 1,
if
( FEs t T
Q <dl lf ,
Drccss
1dQ =
aL:LC) !h4
laoa ;
10) begln
= > A< = : L; E<
rh
0000
ste D
EtB
0010
a ; B <.
1 ] , c <=
0 ; D <=
0;
:L ; B <
0 ; c <.
0 ; B <=: L ; a r r =
A ; D <=
tj
= > A< =
0 , E <=
0; f t < =
t),D<
0,
= > A< =
C, E< =
1 ; B <=
0 ; C <=
0,t.:=
1];
titE
= > a<
! ; E<
c ; B <-
1];
0; E.
l];ts.
0 , C <=
( J ; c <=
1 ; D <=
= > A< =
0 ; D <=
1.
c r r lo
rh do t heE
En la programacin
de estebloqueseintegrarondosentidades:primero,
la entidadde un contadordel 0 al5, el cual generaun nmerobinarioque
determinala sealque seaccivar;en la segundasedefineun circuitodecodificadorque al recibirel cdigobinaioprocedentedel contador,activauna
y slo una de las lneasrle salidadel generadoiciclo de mquina.
2t1
'
Fht
-- Mdu1oregrisrro de instruccin
ll.b.q' iee;
u- ieee. s Ed-l os i c-1164 . a].l ;
@t1t! reglins t |ct (
A: lg!
std-Iosic;
(3 6dto ol.;
Et4-logic-vector
R0: tqt
(3 dmcq.o) );
RI: lE
sr{logic-vecror
d
reg-ins;
lrrlt
atutr a-reg of res-ins js
b.qb
Doc..r {4,R0,RI) bd.a
tt(AeventllA.1)tbo
.oal tt;
d
Ido
a_:regt
P!q.ci6n
dd rcgbtro d iqtuetin
DiFo je..quico.nVHDL
215
:r.+
a_deco of deco,ins
<=
<=
<=
<=
<=
<=
<=
<=
<=
la
10000000 ;
fci n
and
' 0 1000000 ; -- fl nci n 01
00100000 ; -- funci n xo
'0001000! ; - frmcin :lr@ ditica
'00001000';
fcin il]Etir
el a(m
' 0 0000100 ;
funci n retn
'00000010 ;
funcin carera
' 00000001 ;
fmci n reseL
' 00000000' ;
se i habi l i ra
el D I
ListadoE7,, Pl"cfum,ciondelde,od,cdor
de rn-u.crn.
216
Programacin del regisco de tos (RD). Estemdulo almacerItemporalmente los datos provenientesde la memoria de programa.Su funcin es
guardar el dato correspondientemediante la seal de habilitacin (B) que
enva el gencradorde ciclo de mquina, En el listado E7.4 semuestrasu pro.
eramaclon,
--
Mdulo del
erislro
de datos
atl ;
(
reg_dat Is Dort
B:
l o !
s td _ 1oqi c;
u s e i e e e . s td _ l o s i c _ 1 1 6 4.
etlty
rchltctr
a_dat
of
res_dat
l.
bgir
Drocag (8, RD, RI) b.lrla
(B e v e n t anl B = ' 1' )
If
R D < = R 0;
ral i!;
eal 9rocess;
tte
Diseolerqui.ocDVHDI-
217
Progamacin del contador de prograrna (PC). Sin duda un microprocesadorrequiereperitricosexternosque le auxilienen su funcionamiento.
En nucstroejemplo,el contadorde prograrnaes un cremenroque gcneraet
bus de direcciones,ya sca paa direccionaruna memona de pograma
tR OM ) .unr nremolade Jr,^ tMlr4 t , , rmh a . .E n la rrg u r,t,7 . n . c in , r. tra el diagrmacorespondientc.
ctdor
de proqrama
us e i. rc e . s td _ l o q i c 1 1 6 4 .a l l ;
us e wc -k . s td _ a i t. a fl ;
4tity
lcounL is Dolt (
E: i :d !
s td l o g i .;
DI: i:d!
st.i lcAic_vector
PC: inctt sld logr._lector
alchltecture
__pc o! p.ounr
ls
pr oc . :s s (E ) b e g i
if ( e v e n : d F = 1 )tn e r
PC < = PC + l ;
i f (D I = C C C 0 C C C)T l her!
Pa <= c000 ,
eltt if;
ListadoD?.5 Prosramcin
JclconradoeFrc$na.
218
Prognmacin de la unidad atitmtica y lgica (ALU). Thl como su nombrc indica"la funcin de estebloqueesealizalas operacionesariunticasy lgrcasdel micoprocesador,Segnseapreciaen la ligura E7.6,la ALU de nuestro ejemplo puede lleva a cabo ocho operaciones,las cualesse refieren por
medio de un cdigode opeacinde cuatro bits (tabla E7.1).
Instuccin
Cdigo de Operacin
0000
0001
0010
0011
0lm
0101
0110
0111
T.bh E?.r
ffi
Figua E?.? ALU: unidad antntica lsrca.
Diseojerquicoen VHDL
219
arcbiteclure
ploceag
r DI. AL ( .
(D I =
oP <=
61t f (D l
Of < =
els lf
{DI
O! < =
(D I
elgif
OP < =
el, if (D I
oP <=
(D I
el8if
of <=
if
of
KUr
0
I
(3
(l
t' o r:
l oE l o 0)i
al oE l o 0);
dl ow nto 0));
aLu is
De q lD
1 0 0 0 Q 0 0 0 ) th e n
acc and RD;
= 0 1 0 0 0 0 0 0 ) th e tr
ACC o RD;
= 0 0 1 0 0 0 0 0 ) th e n
ACC xo RD;
= 0 0 0 1 0 0 0 0 ) !h e!
ACC + RD;
= '000C1000 ) lhe
not Acc;
Q 0 0 0 0 1 0 0 ) th tr
HoLD
Acc;
OP <= RD;
CARCARACL'MULADoR
to
deL acunulador
--plrgamacin
u ieee. std_logic_1164.
otlty
acct l. Dort (
c:
lt
oP: b.'tlt
ACT: ltrdt
lLtctu!!
tenporal
1,
std l@ici
std-logic_vector
srd_1ogic_wector
a_acct
o acct
(3 tlo*ato 0);
(3 dE @ro 0));
lr
bg!
(C) t g{.a
Dloce.r
(C eve.1l .oil c= '1 ) tb.!r
lf
ACT <= OP;
d
tf;
@al Doc6;
DFo Jerrqurco
en VHDL
22t
-1'
+t"
v4
.|-]--J'
-!!is
[ .,,. 1q9.1. -a; /a
-::=-1f::.
acc
ti13:::e:i:;=i:::::--:::
a acc of
0' j
0));
acur' Lg
1 ) tb6
w
Listado 87.8 Prochna.in del cunuldor pemanente.
222
us e
ieee. s t d
Dackag
Lgic _116 4 . a l l ;
nicro
is
CLK, RESET: ln
A, B, c , D, E:
srd
ln o u E
logic;
sLd togi.;
ln o u r
Q.
std_loqic_vecto
(3 doto
0));
nl colrDon!;
cdDona!
eg_rns
A:
P0:
Dorr {
std 1gic;
inout
lnout
srd_los
P | : Ircut
B:
it r oul
P0:
lr c ut
'td-
lMto
c\ . o
--.
sLd logic;
. d_ q ._\
or
. d _ o s . _ \ . - 'o r
FD: lnout
ed
oq
0 i
I doto
0'
11 IMto
1 Iolo
0 ':
(3 lohto
0);
{0 E o 7 ) ) ;
0))j
cdiEont;
RI :
it r out
std
Dort (
logic
vector
Da:
i, nout
std
Logic
coq)onnt
deco_ins
eDt cd,onot
Dl:
RD: lout
AC. :
i out
ir c ut
E:
o!
sr:d_1oqic_vecLo
s d loqic.
std
logic
I nd!
Dor! (
std_loqic;
t out
s Ld _ l o g : . _
c@9oEnt
Dl:
aLu Dort (
. .d _ l o q : . _ \ e c
t out
cdpo!t
oP:
vecLor
/-.'
o.
vector
0 !o
1l lomro
, dohro
'
{3 l o @ t o
;
0);
0 ';
0));
pcount
PC: i out
std
loqlc
p.
vector
j
0 lo
(3 lomro 0));
Continta
',,|mot.squKom
vHu!
Z3
erY.E
accr Dort (
C: lEt
std_loqic;
OP: tour st{togic_recror
M1': ler
st{togic_rector
cc4)@er
ac lbrt (
D: Lr s!{1oglc;
ACr: t.ur sE{logic_vecro!
ACC: lldur
sE{1ogic_vecror
d
ccq)6tt
U!do
(3 ak6ro
(3 atmto
O),
o) ) I
tD std_logic,
- toj
lat
sr{losic_reclo
torlr 6td-togic_@cror
ttDut
sr{losic_vecro
y eeer pa el g@
(3 (toEto O),
_dtraata t alaro
(3 itmto
O) ; __drraala
te insr
(3 lmto
0) ) , __sauala det ataEo
e!chl!.c!ur.
3 1!u 1
.lsal
.L sM1
,1sut
a np4 ot np4 t.
A, B , C, D, E: s t d loqic ;
s id_I ogic _v ec t o
Q,Ac T, o! , pc :
{3 i t o E r o
Dl: s r d_loqic
v ec r o { o r o 7 ) ,
RD: std_togic_vecto
(3 itto
O);
o),
Cotina
zx
VHDLjEI.r..
de pgr[!
@M ,crr
.na_'ii-p4 ;
lrdo
l,
''':
Diseoje'rquico cn VHDL
rt <
Ejercicios
Diseo ToP I*t'eI
7.I A continuacinsedescibeel funcionamientode un sisremaglobalde un
contdor clellenadode pastillas.l
Inicializacin del sistema
Antesquenadael sistemadebeinicializarparaarrancaren losestados
binaios
correcttx.En primerluga el contadory los registross debenponera cero,
paraquc la cuentaernpiccca patir de cero.A continuacin,el nmerode
pastillas (hasta 99) que se introducir en cada bote, se introduce a
travsdel tecladonumrico,el cual seconviertea BCD medianteel codificador sc almacenacn el registroA. En la a) cl nmero decimal 75
-v
se introduce a tavs del teclado numrico,1o que indica que en cada
bote se introclucin?5 pastillas.Cadadgito tecleadose codificaen BCD y
se envn, Lrs4 hits a la ve;, al regisnoA, para ser almacenado.
El cdigo
BCD de 8 bits sc coLocaen Laslncasdc salidadcl rcgistroy se aplicaal deparailumicodificadoel cual lo conviertede BCD a ctidigode ? segmenros
nar el display.
Simultneamenre,
el mismo cdigo BCD se aplica al convertidorde
cdigo,cl crral lo convicte a binaio. El nmero binaio rcsultantc,75,
se pesentaa la entadaA del comparadorAhoa el sisremaestiniciaLizado y listo paraempezar contarpastillas.
El sistemaen proceso
que el sistemaha contadoun total de 50 botes (3i50
Ahora supongamos
pastillds)y se encuentraen e1pocesode contar pastillaspara el bote cincuenta y uno. En realidad,cono indica el conteniclodel contado de la
figuraa), ha conrado74 pastillas.Observcque el regisrroB mantienela suma binariaanterior(3?50)que se ha pasadoa BCD y luegoa formatode 7
parael displa El registroB se actualizacadavezque se llenaun
segmentos
bote,pcro no micntrasse estllenando,
La salidadel comparadoresta nilel bajo (LOW 0) , ya que las entradasA y B no son igualesen eseinstante.En la enrradaA hay urr 75 binario,
y en la entradaB un 74 bilrario. La salidadel sumadosiempreindjca la
sumamsrecicnte,cn csrecaso,1824,pcro estenmerono se almacenaen
el registroB hastaque el bLrteesrlleno.
r Src5(d.!ci'cuitosecrcrci
f. tl9
! Skm\
DsrLi.Prcnti.c H11,199N,
226
En la figurab) semuestrael estadosiguientedondeel contadorha alcanzadocl valor binarode 75, por lo quc la saldaA : B del compaadopas
a estadoalto (HIGH, 1), lo que da logara que ocurraDvariascosassinul!,
neamenteisedetieneel flujo de pastillas,permiriendoque la nuevasumabinaria3825-ligura b) a la salidadel sumadosealmaceneen elegisoB, y
se inicia un avancede Jacinta rransportadora
paracolocarel siguierebote
en posicir'rn.
El nmerobinarioalmaceradoen cl registroB, que es ahorala
sumaactual,se aplicaai convertidorde cdigoBCD-? segmentos,
y en forj825.
matode 7 segmentos
seacrualizael displaycon el valrr
Tnprontoco.
mo se colocael siguentebote, el contadorse pone a cero y el nuevo ciclo
a) Jerarquice
el problemae identifiqueentradasy salidasde cadabloque
b) Programemediantetop level el sistemagencral
tomml
,2,
a) Sistemade ernbasado
de pastillas.
I co".i'd"' I \
I 6"",'*8. l
eo:t
Li Elfi:g**E
227
228
VHDL: El a e de proerarosiemsdigitles
Bibliograffa
Caprulo
I
Sistemasembebidosen
VHDL
lnffoduccin
Los rnicroproccsadorestenen un gan us()como componentcs fundamentalcs cn sistemaselectnicos nodernos, ya quc ircrcmentan su capacidad y
poporciLnan una mejor ejecucin en las rareasque se encomiendan educiendo su cos(). Cuando un sistemaclecnico incorpora un mieroroccsador, ofrece hcrramientas de conrol adcionalescon tan slun rncrcmento
rclarivo en el costo de softwarede desarrollo.Debido a esro cacl semala millones de pequeoschips de compuradora salen de fribricascorno Motorola,
National, Mitsubishi, ctctca y encuentan diversasy nuevas aplicaciones
en productos de uso comn com, sistemasde transportc, produccin de comida, defensamilitar, sistemasde comunicacin, ctctcra.
8.1 Sistemasembebidos
Estrx sisremas
y disciradospara
clcctrnicosbasadosen nicroprocesadores
aplicacioncsespecficas
se les ccrnocecomo sistemasembebidos,es deci
sc trata de un sistemacuvohardwarey sofrlr'aresediseanespecficnente
opdnizando su funcioramientopaa resolveuno o variosproblemascon
eficiencia.El trmino embebidose efiereal hechode que la microcompuradoraes encrpsuladaen un solo circuito. Estossistemasinteirctrxncon
rodolo que Lrsrodeay funcionancomoel monitor o el control de algnpro,
ceso.Estehardwaresuelediseasea nivel de componenteen un circuiro
integradoo de tarjcra;por otra parte,el softwareque controlaal sisrcmase
programacn una memoi de slo lectura (ROM) y no es accesibleparael
usuariodel JisF(Jsitivo.
230
Campo
Hogar
Contcstdols iclcinic$
l. J c ' , . t r ' \ ! J 1c or
Ssteascmbebidos
e VHDL
Campo
231
Miliar
Orden programada
de fotmadnecta
Sistcna de posicin globl
SGtemas
de controlde tco Detcctala posicindel caro y conol l sealacnjD(semforos)
Conola los motorespara el !!tsicionanientode bazos,
ecre.
CdEode bar.aslecruay
Mdico
Tabl 8. lb Continuacin
Erp.cilicl luncional
3
d .qun durr
E pocillca4ln
E.pclt:cion$ d. odulo6
5b
sAcnr5emLrcb u, .n V|IDL
233
El diagrama
de la ligura8.1 ilustralasfasesque ocunenpor separado
o cn
paralel),peroslounaa la vezyen secuencia.
En realidad,
eldesarrollrdc la informacin,losproblernas
y lasdecisicmcs
encontrados
tonadasdxrantealguna
fasepuedencausarquela faseintcactecon fasesmteri()resLrpostenores,
con
lo queesposiblela reactivacin
previas.
de laserapas
EI rcsrrlrado
clelproceso
es
iteativoy seclrencial.
A continuaci(in
dcscibimos
lasfasesdel proceso.
Anlisis de requerimientos
Esteanlisisrepresenraun ex:rmena detalleclelas necesidades
dcl usuano
final; escleciel problemapor resolverEn estaetapaintervicneei usuariofinal o clientey ssnecesidadcs,
y|t que stasse estudiana fin de determinar
qu quiereel usuarioo qu necesitaque hagael sistema.Estosrequerimientos sedefinen:rpartir del punrode visrade esterikimo y sin refcrcnciaalgu,
na paa FosiblessoLuciones.
Los rcsultarlosdcl anilislsse rcgistranen la
definicindc los rerquerinientos.
Especificaciones
Se basanen los requerimientos,
funci()nes,
y ia inteacci(mcon
oFeraciones
el usuario.Definenal siscema
y lo simulanparaprobarlodirectamenac;
csdeci! determinanla funcindel sistenra,
no ctimo quedarri.
Arquitectura del sistema
Esteconceptosereficrca lasespecificaciones
de softwarey hardware.En esta
fasesedefinequ tipo sev a utilizay cadaelcmentose.lescribe
po separado. Todoesropermiteequilibrarelsofrwarey el hardware,aspectofundarncntal parala ejccuciny el cosodel sistema.Estaetapadetermindqupartedel
sistemaseimplementaprimeoen el soft,are
y culen el hardware.
Diseo del hardwae
Durantecstepasosedefinenlasluncionesy la interfazde entraday salida;1as
primerasen formageneralyla segundarle mancaespeclfica.
Estediseosc
puedeestabiecer
a gustodel usuaoo siguicndouno de los esrnclares
aceptadospor la industria.Esrafaseincluyenombrede seales,
funcionesy caactersticasascomodiagramas
de bloquesdel sisrema.
Implementacin del hardwaro
En estaerapase eiigenlos dispositivos(microprocesado
memoria,perifrico, etc.) que van a inregrael sistema;tambinsc llev:ra caboun anlisisdc
234
y diagramas
esquemticos
de tiempo.Todoio antiempoascomodiagamas
teio permitela construccinde un pototipo.
Pruebas de hadware
paradeEstaetapaconsisteen realizarpruebasindividualesa losdispositivos
y el tiempoque precisana fn de ejecutarun
terminassespecificaciones
235
236
Como vimos antes,los sistemasembebidostienen una infinidad de aplicaciones.Estosdsposirivosreali?anoperacionesy contolan oiros disposiivos,paralo cual recibeninfomaciny dan rdenesa fin de que los dems
eiementostrabajen.
se facilitagraciasa la divcrsidadde
El diseode los micopocesadores
heramientas quc hayen la actualidtd.Segnvimosen el captuloI, cl len'
guajeVHDL es una heranricntamuy podeosaparacl diseo,puesadem5
de 'r flcxbilrJaJp.rmrc dhrrar cn I remp,)\ , ,,irus.
237
l ---
E#|;"*-"
CLK
tBol
Figu 8.2
Como puedeobservarse
en la figura8.2, el microprocesador
se cornpone bsicamentede 1l bloques,cada uno con una funcin especlffca.En
lo que resradel capruh'se analizr
cadahl.4uedc manerJerallada.
hte tipo de microprocesador
esde claseVon Newman;esdeci! los datos
e instrucciones
seencuentranen una memoiaextemay el microDrocesador
por sulono rrabaianh.
ra que requiere
cieflo\circuit(,5
para
auxrliaie.
"l
"u
oDeracin.
,t6
.-
,.
':
El contedorde prqgrasa(PC)e un regrstqde 8 bitt quecontienela direccirdel siguienteregiotrodondesoncuenftah diecqii'n(nibbi)de la instucairque.sebqse,la m9moia.psaou eieeuEin.El hechoque el
contadordGlrrqgaguede E bit geneaut tatl de 28 dieccionesdfe'
debe
ente,esdec,i,2l6.di{Espipnss
nieq8,a lar cualgqel micopocesador
esunihabilia cdaunadeell+. El.busddiaqbrsdel!icoprocesador
los
difeentes
y
permite
rnicroprocesado
hacia
slo
salidas
del
direccional
dispositivos.
Cadavezqueseejecutaunai$truccin, el contadordeprogta'
ma seincrementa.Su diaeramasemuestraen la ffqur 8 3.
U.b!q
t.
ieee;
ieee.srd-1oqic_1164.
uort. stari
lh. ff
pc
t t cEt (
@tlty
clk:
pconrrol:
cs:
all ;
;
std-loqic;
sld-logric-veclor
19 eld-logic,-veclor(4
l td.-loglct
r6$et:.
p a:. |[ stdjosiq-vgctor
pcout:. lflqt
std,-logic-ve9t4
(? ilmto
acEt.o
0);
0),
(? drylo
o) ,
(7 to
0) ) ,
d.
rrbltatrr
arqlrc
o pc b
Dqif
Connna
239
p r @ e8s ( c Lk ,
i.f
(clk
resel
p.
j:
.s,
<=
ev ent
caae
r es e. l
rh@
! 00000 t
dd
cs
c ik
;
1 )
i3
t h@
11110
=>
wr E
i] 111
=>
* b4
1t 101
=>
*tren
erd
ottErs
pi l a;
"> nul l ;
ca8e;
eod if;
enal process;
rRQ2.
Cuandola vaiablecsdel concadordel programaesiguala ,'111l l" el valor de pcouseincrementauna unidad.Estoocurrecuandoseestejecutando la instuccinpresentey requiereun dato o la siguienteinstruccin.
Cuandocsesiguala "11101",pcouromael valor que esralmacenado
en la
pila. Esto sucedecuandoel microprocesador
arendiuna peticin de interrupcuin (IRQI e lRQ2) y necesitaregresaa la direccindondeestabaen
un inicio. Cualquieorra combinaci)n
en cs tiene un efectonulo en el contador de pograma.
La sealde cllcindica al microprocesador
cundoejecutarcadauna de
las accioneseferidas.En bdos los bloquesdel microprocesador,
la sealcllc
tieneefectocuandopasade un bajoa un aho.
an
Regirto de fudice
rftlt
D.sl!
rq,-ind-ic
oC i-rdice
E c .t. (c l k , c s, eseL)
ba!'t!
lf reset = "1' trre .
i x .. ' 0 0 0 00000' ;
!
rclk .r,cr
t!
.
.
d
d
clk
cra
.
I ) r.!
c6 lr
.!ld If;
Lli
Docaa ;
d;:l
Sistemasenbebidosen VHDL
241
-:::-::-::::.:!::::..::1-.:i:i::E-:F::=
us e iee e - s td _ 1 o q i c 1 1 6 4 . 1 1 ;
us e work . s rd a rl th .a L l ;
(
ontlty
stack ls IDrt
c L k . l n s td l osi c;
pcour: l std_loqic_vector
(? domto 0);
pila:
(7 dMto
l!ou! srd_loqic_vector
0) ;
eset: l std_losic;
c s . 1 n s rd tosi c_vector
architecture
bcIn
arclstack
oe stack
{4 at i rl o
0));
16
Contina
2A
(c ]k , c s , reset)
q: srd-1oqic vecto
(7 domto
0);
lf
1 ) t:bs
u s e i e e e . s td -ro q i c -1 1 6 4. aU ;
en!1ty rega5 ts DorE (
cs:ln std-1oqic wector {4 Ic't'trto0);
' k:l JI s d- og ;
vector (l alo}'|rto 0);
datoin:h
sld-logic
te s e t:
sLd l oqi c;
a: i!@t
archl!clur
impedancia
of
sLroqic-vector
resa5
(3 alownto 0) ) ;
13
Contnb
Sisrefrsembebidosen VHDL
Drocess (cs clk, reser)
\labl ares:std-1ogic
=
1f reset
a <=
vecror
243
(3 atoldnto 0);
ten
0000 ;
etse
if
ca4
1 ) rtE
=,
a < = d a r oi n;
uteD 11100
*hef
eb
11101
=>
oters
ruu;
ed
ca8e;
eft if;
eralif;
erd Drus8;
Las sealesclk, resery csmodilican el valor del acumuladorA. El contenido de stedependedel usuarioy del resultadode las operacionesefectuadasen
la unidadaritmticay lgica.Cuandoel resettieneun valorde "1",el contenido del acumuladores "0000".l-a variableintema aresdesempeauna funcin
importante cuando existe una interupcin, ya que guada el contenido del
acumulado mismoque devuelvecuando el microprocesadorregresade dicha
intenupcin para que la ejecucindel prograrnaprincipal no suia alteraciones;en la descripcinVHDL se ve con claridad qu combinacionesde cs realizan estafuncin.
Adems,la combinacinde csiguala "10001"permitealmacenarun dato en el acumuladorparasu pocesamiento.
En el listado8.5 semuestrael cdieoen VHDL del acumuladoB.
Conlna
u4
imped@cia
otr reqb5 1
b <=
i bE
l res
rle
b <=
rth.r
fuu;
@d
datoin;
' 11100 = '
:= b;
11101' ='
brs;
=>
olbB
ca6;
et tf;
fal lt;
,al Dlocr6a ;
Regiso Sel,Dato
Es un registro auxiliar que permite itroduci datos al bus de datos intemo
del microprocesador.Estosdatos tienen como destino los acumuladoesA o
B y la unidad de control.
2Al5
srd_1ogi c;
aarouL:l
srd toqic_vecror
G atorraro 0);
darin: t.6r
sral_togic_wecro
(3 dcioro 0);
operacion: l srd_logic_vecror
(3 dodrro 0);
cs:ln
aichlreclllfe
arq,sel_dato
stuosic_vecror
of
sel_laro
(4 ak ro
0) ) ;
b.ct!
Droc4s (c6, clk)
If
(clk'vrllt
ad clk
= ,1 ) tlr.ri
c:ia cs t6
{b.o
10110' => daroin <= darour;
,10101, => alatoin <=
t6
operacion,
=> rnLl,
rtrlt othss
ert cae;
e!:d 1f;
proc3s;
srd
*ffi'a$..w
Lirtlo
24
1 1 6 4..r1;
u s e i e e e .s l d -l o s i c
(
l! Ft!
tri_esr
@rlty
std-loqic-vector
cs:b
c l k : l std Logi c;
operacion: i
arqtri
cJLtectu!
of
0),
{3 do!rto 0);
std-1otic vector (l ldetllo 0));
std-1osic
dalout:Idt
(4 (Lmto
veclor
ls
li-esr
bgl
Dtec8s (cs, clk)
tf
(cLk'evEl
.!d
clk
1 ) th
case es is
i b e
1r000' = d" cour < = ope' c:onr
*Ler ottrs => daLo.rL <= zzzz'i
!d
dd
dd
cle;
1 t;
Ess;
241
Registio SetDir
El registro Sel.Dr permite que las direccionesgeneradaspor el contador de
pograma o las del regis$o fndice salgan del micoprocesador con objeto
de lee o escribir un dato, segnel valor de la seal\rV\I.
t|hs
otblr!
=> direccion
.oal 1f;
< = i x;
<- Fcout;
244
Registro Dir.Val
all;
us e ieee. s t d loqic , I 164 .
is
dtiEy
dlr val
1
Dort
ra: out srd Lcqic;
vect.rr
c s : i
std-Logic
(,1 d(xnto
0l);
Dr@e6B (.s )
besitl
o(
1 c s (l ) rd rc t (c s (2 ))
ertt procesE;
, ad.
(.s(1))
ard o!
ard
aid
not
td Ft
(.::;Lolrl;
.lL6rn6.reb]n'm'-
lh9
u. ieee. std-1ostcj15?ttl
;
rc' roifti:su_arlrh, arl
(
ctLty
a1u4 ,.a rl
c1k: t srd_loEic;
a,b:l std-logic_wector (3 nt 0);
(4 irto 0);
'cs:l irt{toqic-vector
(3 tiato 0);
"bperacior tt std-logic-rctor
(3 d.i6to 0));
rc: l-.rt st{loqic_vecto
.rlt.ctu!
st]Irlar: o a1u4 1t
(1 eto
.1BA1 c1: st{rf-vet6l
bqrt
,88..|t
(clk)
'j
0);
+-j
v!tbL
cout : EL4-Iosit'
'
bql'
t! lc1k'.llaa !al clk = 1 ) tb@
selpc. ior Lm ope!cin.
ca. cs It
rt"oooo1'
=>
cFerclr1
(a + b);
<=
c1(0)<-1a11)
ad bfrl): d!i(i6) adb(0)) arl (a(1))cb11)));
c1{1)<=(a(2)
arb(2}).r (c1(0)a'd ((2))@b{2)))t
q.'.il:-1a{3) aalbIJl) r (cl(xt d
(a(3) )(o b(3)));
Cottna
t50
c 1 (0 )< . 1f;
' 0' ,
' 0' ;
b);
,00x01. = >
fb
cperacion <= (rDt a);
Cout := 0 ,
c 1 (0 ) < = ' 0' t
tl i b ' 00110' = >
b),
op.acion <= (a e
0' ;
' 1111' ),
=>
ibo
ot.r.
4l;
oal caa;
nol 1f;
rc (3 )< = cout rd c1(1); -- sobrefl uj o
rc (2) <= lat (operacion (3) c
operacion(2)
opracion (1) or operacion(0) );
-- Cero
rc { 1 )<= opel aci on(3) ; --si so
rc(0)<= coul; --Aca!eo
oal Doc...;
Udo
Sstems embebidos
en VHDL
251
La unidad artmticay lgica del micnrprcesador se componede dc,sentradas de 4 bits cadauna (contenido de los acumuladoresA y B) y una salida
de 4 bits fuperacin)
con acareo.Puederealizarsieteoperaciones:
dosaritm(suma
(AND,
y resta), cincolgicas
ticas
OR, NOT, OR EXCLUSIVA) y enmascaarel contenido del acumuladorA.
El diseode staunidadaritmticay lgicasuponela generacindel re'
gistrode cdigosde condicin(cc). Esteregistoesde 4 bits e indicacmo
es el esldtadode una opeacinen la unidadaritmticay lgica;estoscuato bits indicansi el esultadoes negativo(N), iguala cero (Z), si tiene sobreflujo (V) y si hay acaneo(C).
. Acarreo(C). t.te brr (bit 0l del regisrro
de ccidrgo.
Je conJrcr.in
se
cohra en "1" si despus
de la ejecucinde ciertasinstrucciones
hayun
acameodel bit mssignificativode la opeacinque se estejecutando; de otra manerase colocaen "0"
. Sobreflujo(V). Estebir (bir 3) dl regisrrode cdigosde condicin se
poneen "1" cuandoun sobreflujoen complernentoa 2 resultade una
operacinaritmtica;secolocaen "0" si el sobrcllujono ocurreen ese
tiempo.Porlo generalhaysobretlujocuandola ltima operacinresulta serun nmercmayoque :t 7 de un egistrode 4 bits.
. Ceo (Z). Estebit (bit 2) del registrode cdigosde condicinse colo,
ca en "1" si el resukadode Ia operacinlgicao aitmticaes cero;de
otra maneraseponeen "0".
. Negativo (N). Este bit (bit l) del registrode cdigosde condicin se
colocaen "1" si el bit 4 del resultadode una operacinlgicao arirm,
rica esiguala "1", de lo contraiose coiocaen "0".
que se puedenrealizarcon estauni,
Aunque son pocaslas operaciones
y
que
dad aritmtica lgica,no hay
olvidar que al combinaresrasoperacionesbsicasel nmerode stascecede maneaimportantey ases posible
realizardecrementos,
incrementos,
corrimientosa la izquiedao derecha,corrimientosadtmticos,funcionesNAND, NOR, etctera.
En lo que serefierea lassealesque conftolanla unidad arirmricay lgica,el valor de cr determinaqu operacinse va a llevar a caboen dicha
unidady la sealde clk marcaen qu tiemposeealizar.
Unidad de control
La unidad de control (CU) sincronizacadauna de las accionesealzadas
por el microprocesador;
asimismo,determinaen qu tiempo,haciadndese
mandanlos dacoso de dndevienen,decodificacadainstrucciny revisa
que se ejecute,
,<7
in std,loqic-wector
pcot:
(1
(l
(3
(7 tl@to
in std_logic_vectr
0);
(4 tdnto 0));
bdt
std-loqic_vecto
cs:
chitecture
arLconLol
of control
i,s
(d
0
,
E!' e s ta d o s i s
d1, .12, d3, d4, ds, d6, d?, d8, d9, dl 0,
d l 1 , d l 2 , d 1 l , d 1 4 , d 15, dl 6, dt7);
6igMl edojresente,
edo_futuro: esrados;
(7 domto 0);
sigMl
f: srd_Logic_vector
pocesol:
irq,
Docess (edojresente,
besin
if reseL = 1 tlE
do_futuro <= d0;
p c o ntrol < = 11111111 ;
fl
<=
,0
reset)
Conna
253
1 1 110 ;
ce edotresente
ls
etm d0 =>
lf iq = '10 then
c s < = 11100 ;
edo_iuturo <= dl;
e1if irq = 01 rhe
c s < = ,111Q0 ;
edo_iuluro <= d1;
edo futuro <= dl;
c s < = 11111 ;
libo d1 =>
if
'
irq - 10 ttE
p c o n rrol < = 0:1000000;
<= dl;
c s < = L1110' ;
edo_futuro <= d3;
edo_futuo
<= d5;
c s < = 10:L:10;
n<=
1;
edo_futuro <= d4;
ry < =
0;
datoin = 0000 lhe
c s < = 00001 ;
e d o fu tu ro < = d2;
elstf datoin = 0001 cher
c s < = 00010 ;
edo_futuro <= d5;
If
Contna
254
dlroin
.bll
= '0010" rh,
cs < = .00011' ;
<= d5;
ealc-tuo
.ltf
' -
daroin
- '0011'
cs < - ' 00100.,
edo-fuEuro <= d5;
td
datoin = 'o1oo" tb
cs <. '00101';
do-fuluro <= d5;
altf
.Ilt
.Irlt
:
daloin = "0111' to
cs < = " 11111' ;
<= d7;
edo_fururo
.ltlf
alaroin = '1000'
cs < = ' 11111" ,
<= il8;
edo_futuo
t6
daroi = '1001'
cs < = ' 00111' ;
td
.1.1!
,
.Llf
.,
edo_futuo
<= d9;
.lrtf
f,
.Ilt
datoin = '10u'
cs < = " 11111' ;
then
Conni.
255
rc (0 )
<= d 1 0 ;
el.If
edo futuro
and l!;
<= d0;
13If
edo_futuro
@ d ff;
<= d0;
c s < = ,11101.;
edo_futuo <= dot
c s < = .10101 ;
edo_fuluro <= d11;
c s < = 1011Q' ,
m <=
L;
edo_futuro <= d12 t
Contna
2f
tnadisitld
VnDL. i'dn,prlslmrd.t
j l b d
.e ' .'
ii
unJ
d7 = >
cs < : ' 10110' ,
< - 1"
'do-fuluro <- d11;
-.
t,b
rabo d8 =>
j _ 3 .i :, cs < . .10L10,;
''
rw < : edo-furuto
:i
iy,j
d15;
d9 _>
cs < = ,11000,;
d-futuro <- d0;
rA-
'
. | 'iro
:. ..
n1.
'
i
1: I
l;
d1o ='
cs < = ,10110 ;
rw < = ' 1
i
.=
d15;
do_fuluro
?'
d:I =>
c5 < = ' 10001' ;
n < = ' 0' ;
<= d0,
lr edo-fuluo
taG
.) {tt
!b
t. r}:J
a a t,
'
d12 =>
cs < = ' 1.1111 ;
m <- '0 ;
pconlrolio)
<. alatoin(o);
pconrrol (1) <= iltoin(1);
pconrrot(2) < = daroi n(2),
pcodt.ol (3) < = datoi n(3);
pconlrot (4) <= Pcontrol (4) ;
P conl ro L ( 5l < . E contl o](5,;
pco.ltro1( 6 ) <= pcontrol(6);
Pconlrol (7) <= Pcontrol (7);
Aotd
ISitt@.!
eilc_fuluio
.mb.bidd
m VHDL
al
<- d13;
' .
at14 =>
.q r < = 0l ;
c s < = .' 11010.;
Pcontro] (0) <=
pconllolll)
<pcont{,91(2) <=
pcontrol (3 ) <=
Pconror(4) <=
rcgnor l5) <=
Pcontrol (6) <- dal oi n (2) ;
pcon!ro1(7) <= daroi n(3);
edo_futulo
<- dot
ibn
dl.5 =>
c s < = ' 10010,,
!1 < -
edo-futu
0;
<= d0,
n d15 =>
' c s ,' < = ' 10000" ;'
'
f(0 )< - datoi n(0);
r{ 1 )k e dto1(1);
E (2 )< " ,datoi nl 2);
f(3 )< -' 0' ,
f,( )< - ,0' ;
f{ 5 )< . .' 0 ;
f(6 .)< - 0' ,
f (7 1 <= 0' ;
daroin(3) =, 0 te
Pcontrol <= pcort + !;
edo_fururo <= d17r.
elaa
control ;= cout - f;
edo_fut
<= d1,7|
'
.i ,
rb
df.?, .>
Conline
258
eat D@eaa
pr oc es o2:
t f oc es s
if
( . lk ,
lclk
if
ere!
=
feset
edojesente
eld
p!@eEa
d
0
reser)
rilk
L ) ter
th4
<= edo_flruro;
proceso2;
S6rensehbebidoscD VHDL
259
iguala "01000000".
Ambasdireccionesindicandndc iniciar las utinasde
intcrLlpcin.Al terminarlas rutinas,los acurrrladores
vuelvena su valor
original,al igualquc el valo del ccntadorde programa.En casode no exisdr algunainterrupcin,el microprocesaclor
generaIa direccn"00000000"y
la sealF,IVVseva a "1".Con esroel microproccsado
leeel contenidodc esque es una instruccin,e iniciRla secuenciade ejecucin.
ta diecci)n,
En la figura8.5 se pue,.1e
observarun diagramaque indicael flujo de la
operacinque sigueel microproccsador
al momentode empezara trabajary
el caminoque toman las intcrrupciones,
La unidaddc contol estcompuestapor 17 estados,cadauno con una
funcin cspecfica.
Los estados"0" y "1" se encargande ias tresinterrupcionesque existen.Se llegaal estado"0" despusde un reseto luegode correr
ia ltima instruccin.
En el estado"0" seda la ordenparaincrementarel conradorde pograma (cs= "11111").
Del estado"0" seva l estado"1",a menosqueenrreun
rese.En steia unidadde conrrolcompruebasi ha entradouna inrcrrupcin.
En casopositivocambi;rel contadordc programay pasaal estado"3",en caso contrariopasade igual forma al estado"J". En csteestadola unidadde
, v V MA . . v rn " l , y L
con r r olleela in.rru.cr,ln.
l,r, ellol,' . e r' ' . , I e
rW
sealcrsesiguala "10110".
Estevalorde csindicaal registroScl-Datoque ,:lejepasarel dato extemo
albusde daosintemodel microprocesador
(r)ln),paraqueseaanalizado
en
la unidadde connol. De aquseva directamentcal estado"4",que es el ms
impotante,ya que cunple lasfuncionesde decodiffcatlor
y
de instrucciones
determinael caminoque sedebeseguiren la ejecucinde lasirstrucciones.
]
J
- ;*;*
t;t
G-
260
y cadauna
,:1e
h sealdatrrin
L.nei estado"4" sc ricnenl6 combrnaciones
f eprescnteuna instrLLccin.
categ(rras:
se dividcnen las sguientcs
Las l6 irsrrucciones
NnEo de instruccin
Csr cn a.umulaloi i
I
,c. t dcc.in
Rekro dc ntcrruF.o
que puede
de las 16 instrucconcs
Ms dclanteser-laun lista deallacla
ejecutarel microprocesador.
lgicoarilmtiEn el estatlo'4'nodamsseejecutanlasinstruccioncs
casy sc indicaa la ALU el tipo de funcnqrrese va a eallzar.Paaesteti'
po de insuccionesse pasa:rlestado"5",tlondela unidadde contrclcoloc
el resultatlode la operacitinen el busde datosnlerno.A contiluilcin sera
sealmaccnaen el rcumrrladorA. Poltil esrado'11",dondeel rcsulta,:lo
nlo sepasaalestado"0" dondcodo comenzade nuevo.
Parallegar al esrado'6" es neccsarioque en cl estallo '4" el valor ,-1e
datoinseaigual a "0110".Estedato correspondee la insfrucci(inde cargar
una diecci(inen el regisrondice.En el csrado"6' la unidadde contol da
la orden para introduc un dato. De aqu sc pasaal esrado"12", clondc
el dato que se introdujo en el estadoanteiorcoresponllea la parte baja
de la dueccinque sc va a cargaren el regisondice En el estado"ll
seda 1ordende introducirun segunrlodaroy en elestetlo"L4"esretlatopasa a formarIa parte alta de la dircccirny desdecsccestadose cargaestadi'
rcccirnya formadacn el registrondice.De aqu sc va al estado"C" para
insrucci(in.
ejecutarla siglLiente
"4' el datrinclebeseriguala "01i l
al estado"7",cn el estacio
ParalLegar
A
a la instuccirnde cagarLrndafoen el acumulado
Esterlatocorresponde
pasa
En el estado"T" seintroduceei dato que sequerecargar.De ah sc
al estado'l1", don.lela unidadde control colocael dato en el acumulador
A. Parafinalizarseva al estado'0" a esperar1.1siguienteilstruccirn.
Parallegaral cstado"8', en el esado"4" el valordc datoinrlebiscriguala
"1000".Este val correspondea la instrucci)nlle cargarun.lto en eL
acumuladorB. En ei estado"8" se introducecl dato que se va a carg$ Dc
ahl se va rl estado"15",.londe1.runidatl.le conol coloca.licho daro en el
acumuladorB y po ltimo sepasaal estado'0"
"4" el datoines igu.rla "1001',estosigniticaque hr
Cuandoen el estadc
A en la clieccrin
conte'
una instuccir
de alnacenarel datodel acumulador
nida en el regisrrordice.En esteestadola umdaddc controlcolocacl valrr
261
8.3 Diseojerrquico
Ccmose mcrcion cn el captulo 7, cldiseo jerrquico es una herramienta
de apoyo que permite la programacinde extensosdiseosmediante la intc_
gracin de pequeirosbloques,Ios cualcs se pucden detalla simular por
se),
parado con suma facili.la,:l.
Una vc: esudiadocada uno de los blLrquesque clrnforman al microFro,
cesdor,cs necesaoaclarar que de acuerdo con la programacirinen VHDL
es neccsano crca dos pogramasjuno que Llefinacada uno Lleesrosblo.lues
como componentesy otro -dcnominado de alto nivcl
que cncarlena cada uno de csroscornponentcsy los hace trabajar en clrnjuDto.
262
J,{d1..
u e i e e e . s L d _ 1 o s i c 1 1 6 4.atl .;
Dackag cnicro i3
coq)or6!
a1u4 IErt
{
cLk: i std l ogi c;
a,b:h
sLd-l.sic vecto! (3 atMto 0);
cs:l std_l ogi c veci or 14 at(mto 0);
(3 aktto 0) ;
olEraci: il
std-L.sic-vtor
(l d@to 0))r
rc:irEt std-1cEic-vro
ccq)drEt
rega5 Por!
cs:j
reset:i
c1k:i !
dtoin:l
a: inout
cq)onea!
regb5 IbrE
resel: l
cs:l
clk: i
daroin:i
b: ilnt
(
(4 akarto 0);
std loqic-ve.tor
std lolric;
sLd l ogi c;
sLd-1ogic vector (3 t(hto 0);
0));
sid-Losic vecto (3 akhto
(
std-loqic;
std-loeric vecror
std-1oqic;
sLd-1oqic_vecLor
std loqic_vstor
{4 domto
0);
(3 aloto 0);
(3 aLirlto 0) ) ;
ccqEdt
t1
es DorE (
Contina
Stemasehbebidosen VHDL
cs:l
opeacioni h
srd_1osic vecror
std_toslc_vecror
datour: lnout
pc Dort
c1k:
eseE:
pila:
Dcdtlol/
cs:
cq)onet
rEorr:
cc4)c'f@t
conponst
srd_1osic
vecror
O);
0);
(j d.Eto
0));
(
i
1!
i
ln
ilst
std_togic;
std logic;
(7 aloMro 0);
srd_logic-vecror
sd_loqic-Bror(4
akrero o);
(r aknoto 0) );
srd losic_vecror
(
sLack IEE
c]k: t srd_1ogic;
pcour: lf sr{Losic_vecro
(7 dmlo
0);
reset: h s!{losic;
pila: lut
(? tEro 0);
srd_logic,recror
cs: j srd_logic_vecLo
(4 dloe.ato 0));
indice pot (
clk: Lfr srd_roqic;
pconrrol:
la srd_Logic vecror (7 d@rto 0);
reset: t srd_Logic;
cs: i s td_Losic_vec ror (4 t<Eto 0);
u: isr sLd loqic_reccor
(7 abr.ro 0));
c(q)dlet
(4 d.m!o
(3 dr\Mto
23
wector
(7 donro 0);
std_]osic;
std Loqic_vector
srd logic_vecro
srd_loqic_vecto
(7 aldrrto 0);
{7 d,nato O);
(4 alortrto o));
di_vat
Dort. (
rm:c!
srd_logic;
Contna
264
c.:i
control
cdrDdret
rer-1, cil:
:rq:
m:
datoin:
(4 akmE o 0)l ;
(
Dof!
i.! sid_loqic;
i
std
1!dt
ln
1oEr.-vector
std
std
(l
lMto
l-rl ;
(l
dolo
0);
.gr.;
logic
vecror
pconto1: itMt
vecLor (7 lowElo lll
sid-'ogi.
c. i std lcsi.-ve.tor
1l akmto 0);
pcout: 1 sLd-logic ve.t
{r (lotto 0);
.s:
@d
cdrDfet
ilgt
srd_l.lic
]@or
{4 tldrto
0ll,
deldiseo
delosconFrnentes
Listadoa.12 Creacin
De acuedo con el cdigo anterior, cada componente se declaa de manea simila a su entidad de diseoy cada uno se almacenaen el paquete llmado cmicro.
265
llbrt'
ieee, diseno;
ur. ieee. std_logic_1164. cll;
us rcrk. s rd_ari Lh. !.11;
ua6 diseno..t;
.dttty
icro
.chltcctulc
1! Dlt (
c l k ,re s e t:i
s d _ ro gl c;
direccion: cit st{Loqic
vector (7 tlmto
0);
\na: c|t std 1gic;
(3 donrto 0);
alatouL: tort srd_1oqic_vector
tu.ldt
er{1osic;
(1 ld$rro 0));
irq:i!
sld_logic,wector
arq_amicro
ls
6Lg!1
a: std_loqic_vector
(3 !ro
st9!a1
b: srd_1ogic_vector
(3 dLrmto 0);
.I9!1
datoin:
dgl!
operacion:
.191
rc:
std_1oqic_vector
(3 tonto 0);
3i91
cs.
std_loqic_vector
(4 almto
sI9!1
pila:
.Ictl.
pcoul:
tt!trt
ix:
std_1oqic_vector
std_loslc_vector
bql:
ul: lu4 ro rt
tCLloqic vector
D D rc -R ..c IR ,
(3 d.r,trto 0);
0);
(7 ao|rnto 0);
(7 .rnto
srd-loqic_vector
std_losic_wector
0);
(3 lotdlto 0);
stalloqic_vecto
319Dat pcontrol:
'
of ardcro
0);
(7 t i.rto 0);
(7 dorEto
0);
a=>a, clk=>c1k);
(cs=>cs, datoin=>dtoin,
b=>b, c1k=>c1k);
.' .,
Continta
266
porc lap
(cs=>cs, opelacion=>operacion,
datout=>datout,
pcontrol=>pcontrol,
datout=>clatout) i
cs+cs,
!,cout=>pcout,
Pcontlo1=>Pcontrol,
ir>ix);
Pcout=>Pcout, Pila=>pila);
pcout=>pcout
u9: sel_di!
rrort @p (clk=>c]k,
r ec c l o n , c s > c s ),
u10 di val ,orl oaP {i4na=>vna. cs=>cs)t
u11: contol porl naP (clk=>clk,
pcontlol=>pcontrol,
toin=>datoin,
ope-
ix=>i:(.
direccion=>di-
reset=>reset,
ilq=>irqr
pcout=>Fcout.
rc=>rc.
!f>w,
dacs=>cs) t
6!di
Li6tado a.l3
Li8ta de irstncciones
El microprocesadorcontiene un conjunto de 16 instrucciones,dichas operacionespueden ocupar l, 2 o 3 niblessegunel tipo de operacinque se va a
Al
ejecutarEn la tabla8.2 se puedeobservarel conjuntode instucciones.
linal de dicha tabla se describecadauno de los smbolosque se utiliza en sta.
Codico de
rstruccn Mnemnico-
A+B-A
ABA
00m(0)
guardael
Sumalos acumuladoresy
esultadoen A.
A-
SBA
m01(1)
y guardael
Rdt los cumuladores
resultdo
en A
A andB-A
ANAB
0010(2)
y eud
AND leicaenrreacumuladores
el resultadoen A.
A or B-A
ORAB
001i{l)
OR lgicdene acumuladores
} euaruaeresultadoen A.
not A-A
NEG
01m(4)
InvierieAysualda el resultadoe A.
A xorB-A
EOAB
1
0101(5)
XOR lsicaentrcacunuladot""y
suardael resultadoen A.
B-A
'ic
.p"..*
S6reasenbebidosen VHDL
I'bru..n
Mnmnico
A -M
STTA
X+ l 'X
INX
c = "r'
Bcs
z- ' 1 '
Rcc^
codigo de
Nlv|!
opqacon
267
comentario
llli
liil
3,6 z
1:11
BEQ
3,6 2
11:1
N = '1"
BM I
3,6 2
ti:l
V= " 1 "
BVS
3,6 2
Jl:1
Pll4*Pcoui
RTI
llil
1111(F) tusresa
deunainrerlupcin.
M-X
LDXM
:111
0110(6) Caga
elndi@
conladireccin
de
memona inmediata.
M-A
LDDA
r1
0tl1(7)
M*B
LDIIB
.T
r r rr
10m(8)
) - Tiansfeenciaa.
) . Se poneen "1" si es cietoy en
casocontraioen "0"
) A Acumulado A.
) B AcumuladorB.
) X registro de ndice.
) C lndica si hay acarreo.
) Z Sealaque el dato esigual
)
)
)
)
26a
\Hr'r ll
.i.p,..,,
., I m
,.-l
Ejercicios
Ptogta;nacin de sisteLmosembebios
8.I A continuacirin se describeel sisemacnrbcbido 14500 de Motorolal, que
es un procesadorprogramabledc un bit i:lerclo para construir sistemas
dc conrol elaivamente sencilhrs,en Lrs clue preferenfemcntc sc rcquieren decisioneslgicasen vez de clculos numricos.Una lFlicacir
tpica del 14500 cn cl conrrol de procesosindustriales es el conectar
o desconectaralgunosdispositivo! como respuestaa cambios en el me,.1io.Por cjemplo, si el conmutador Sl de la almentacin principaLcst
conectirclo,un conmutador 52 limitador dc movimiento est tiesconecrado y tarnbin csr desconectadoun conmutaJo temostlitico SJ, en'
onces debe conectaseel motor M. Operaciones de conrrol lgico dc
este estilo hce unos aos se realizabanfrecuentenrcnfc con crcutos
de rels electromecnicos)', ms rccicntcmente, mediante circuitos l>
gicos cableadoso no pogilmables,con clispositivosSSIMSI. El 14500
y suscircuiros de apoyo esti Fensadospara proporcionar una alternativa clebajo costo a ltx circuiros lgicoscablcadoscn apLicacones
industriales del estilo anterior Por esta ra:n el 14500 se conoce com0
unidad dc conrrol industrial (lCU) en las referenciasde los fabricantes.
269
Siscrasembebnlosen VHDL
ne un rcloj, un registode irstruccinIR dc 4 bits y circuuosLlgicosque gencranna varie.l:rdde sealesde conrrol y de temporizaci(in
utilizadaspara
comunicarcon lcx disposirivos
extemosincluyendola unjdaLll, la nernoria
princgal v disrosirivos
de E/S.
EL 14500riene 16 rerminalcso patas,.1e
E/S,cuyasfuncLones
se dcfincn
en la tabia8.1. Lasopcraciones
a realizarpor la ICU sc cspccificannediante una insruccinde 4 bits que se aplicaa lasparasde entradaI0 a 13.como rcloj del sistemase puedeucilizaruna seal.le eloj que se tiene en la
patr clesalidaX1; tambinla ICU puetleestacontroladamedianrcuna scal de reloj extcrnaconectadaa la patade entradaX2. Parael 14500seutilizatccnologade circuitosCMOS, quc requiceuna patapar alimentacin
(*5V) y otra paratierra.Una seiraLdcreset,RSll sirveparaponertodoslos
registros susvaiorcsiniciales.Se utlizala sealde salidaWRITE parahabilitar la memoriacxtemar:lurantela ejecucinde lsinstruccones
de almaccnar Tpicamentelas cuatrosealcs,.lecontrol JMI RTN, FLGO y FLG!'
setransmitena la unidadcxtcnaI durantela ejecucinde las instmccioncs
de control del programa.La tempod?aci(in
de ias instrucciones
es muy simpie. Una vczpor cadaciclo tie reloj las sealcscn l0:l3 se ansfierena IR; a
continuacinse decodificany ejecufan.
y tiena T 2
AC
,0,'"*@
-l
JUMP
FTN
i:?:ff)lifsry;1;-1
FLGO
BST I
-l
210
comoun sistemaembebido,
Considenndoa estemicroprocesador
a) Progamea travsde una seriescesivade procesosparacarlaentidad individual
glohal
b) lr,,gramemedianteunaintegracin
Programemediante top level
Tipo
Nombre
DatN
DAIA
RR
Lneabidi.eccbnalde.latospaaentraday salida
Llneade salidadesdeel acumulador(resistrode resltado)
Inrruccin
l0:lll
Alimenacin
Voo
vss
x2
\IRITE
JMP
RTN
Tiena (0 V)
de cnol del sisrenacenerada
Seales
Fo el 14f00
de reloi exrema
AX2 sepuede@nectarna seaL
-I;ftbin pedeconecrase una esisenciaente X1 r X2
parafijar la frecuenciddel reloj inremo.
Sealactivadapq lasituruccionesde almacenamieno.
Utiladaparahabiliala esc.itulade hehoria extema
Sealactivadapor la inrccin de salo.Urilda !-,
cargarun conradorde prlgrdtu extenocomouna decSenalactivdapr la insuccinde reomodesdcla suUtiladapamhabilirarua opemcinde cxtraccinen
una pila de instuccionesextem.
< enal derc' eturi l D d,
pr,p, nerr cero,oJo l o. esi .
RST
ILOGO,ILGH
Sealesindicadorasactivadaspor Lasisucciones de no
ope.acinNOPO y NOPE respectivamente.Varn^ posi
bles usosdenidospo el usuao.
sistenasehbebidos
en VHDL
271
Bibliograffa
GanssleJack. Thc Art ol DesigningEnbeddedSysterns.Etl. Newnes. USA,
t999.
Valvano \(l Jonathan.Embedded.Microcomputer
SlstemsRealTimeInterfacing
Ed.Brooks/Cole.Ca. USA, 2000.
Powel Douglass.Real Time IIML DeuelopingEfficient Objects Embed.d.ed
for
s)iter. &1. Addi.on.!le.let. 1998.
Kenneth L. Short. EmbdddMicroprccessorSlsremsDesign.Ed. pentice
Hall, 1998.
G. Maxinez David, Alcal J. Jessica.Drseode secuenciadores
inteyadosutili,
zanda calnposd.e lgica progratwble FpGA. Congreso Internacional
AcadmicoElectro'98.Mxico, 1998.
Skahill Kevin. VHDL For Progan:nabb Ingic. Addison llesley, 1996.
Mazor Stanley,LangstraatPatricia.A GuietD VHDL. Kluwer Academic,
1992.
T.L. Floyd. Funmenns de Srsremas
Drgiraies.prenrice Hall, 199g.
Ll. TeresY Torroja;S. Olcoz; E. Villar. VHDL, lenguajeestndar
d.edisei,o
eldrirco.
McGraw-Hill, 1998.
David G. Maxinez, JessicaAlcal. Disenode SistenlasErnbebios
d tralts del
Lzrguajede Descripcnm HardwmeVHDL. XIX CongresoInternacio_
nal Acadmicode IngenieraElectrnica.Mxico, 199?.
C. Kloos, E. Cemy. HardwareDescriptonLanguagea the A2lications. Spe,
cificati.on,Modeling Yeification atd Slnthesrso/ MicroelecronrcSysrerns.
Chapman& Hall, 199?.
IEEE, The IEEE stanlad VHDL Langage Ret'erece
Mn/.IEEE-SId_10761987.1988.
ZainalabedinNavabi. Arwllsis and.Modelingof Digual Sysrerx.Mccraw_Hill,
1988.
P J. Ashenden. The De signu's gide m WDL Morgan Kauf6nan publishen,
Inc., 1995.
R. Lipsen, C. Schaefe VHDL Hardwme Descriptanand Design. Kluwer
AcademicPublishers,1989.
J.R.Armstrong y E Gail Gray,SrrucrlredDesignwithyHDL. penticeHall,
t997.
A l4lDL Primer
J.A. Bhasker
Prentice
Hall,1992.
Captulo9
Redesneuronales
artificialesv VHDL
Introduccin
Las edesneurories
rtifcialesson modelosde comportamientointeligente que puedense construidoscomo sistemasartificialesinspimdosen el
sistemanerviosode seresvivos.Lasaplicaciones
de sistemasbasadosen edes neuronaleshan permitido disea redes con propsitosespeclficos
como el reconocimientode patones.Esteesquemaes novedosoen el rea
de la computaciny es muy interesantedadoque una computadoradigital,
aun la mssencilla,superala velocidady precisindel cerebroen la relacin de operacionesnumricas;aunque las operacionescomo econocimiento de patrones,memoriaasociativay en generaltodaslas relaciones
con el comportamiento
inteligenteparecenimposibles
de alcanzarmediante
las concepcionescomputacionales
tradicionalesde la computacinincluyendoel campode la inteligenciaarificial.
Estassimilitudesde los modelosde las edesneuronalesy el 1i.rncionamientodel cerebroparecensugerirque la posibilidadde conocermssobreel
comportamiento
de sistemas
inteligentes- -{ msambiciosamente,
la reproduc.inde cicrLa5
propieJade.
de la inreligencra
"cerebro.
en
arrifcilej'
medianteedesneuronalesartificiales.El desarrollode sistemasatificiales
inteligentesse puedeobtenerno slocon algoritmosmsperfeccionados,
sino con cambiosmso menosadicalesen la concepcir5n
bsicade lasescructurascomputacionales.
Existeuna grancantidadde problemasde ingenieaesueltoscon diseos de redesneuonalesatilicialescapacesde emular en mayor o menor
medidaalgunasfuncionesrealizadas
por el sistemanerviosode los seesvivos,como la discriminacinde patrones.No obstanteel xito obtenidopo
l. redesnerrronale,
artificrle:.
no ercomprobado
qr,ee*ra,rquirecrura
274
disitales
VHDL: El atede lrocraM sistemas
Redesneuronalcs
ariiclalesJ'VHDL
275
276
\ LlDl. ll, ,
Ir'
r n
r,L
El iuncicnamicntode ls edes neLrronalesse basa en el del sistemanevioo. En generel, las criaturas vivientes ticncn receptoesquc urilizan para
ver, olcr, or y sentir
Con bascen el .lesarollo de las rcdes neurcnalcs,sc han construdo circuir()selectrnicosqLrepueclenaprendcr de rnanerasimila a como lo hircen
los scresvivos. El fun,.1.rmcntodel aprencli:ajccst en el ftrncoramicDtoLle
la celd.rncn'iosa bsicaclela rreuronabioirigica.Esrospcqueosbloqueso cstructuas rle tcdoslos sistemasvivientes, fanto del cerebro colno del sisteme
ncrvio*r Je cas cualquicr ser vivo, es posibLcmodelarlosmediane un filtro
cl aprentransvcrsalcuyos pesosvaran.r se:rdaptan cLrandohan alc.rn:.r,.1o
dizaje descado.A esta estrLctuasc le conue tambin corno filtro ansversal arlaptable.
En la figura 9.1 rencmos el nx)Jelo de dos neurones bolgicas La neuona del sistcmaDervlosoest compuestapo ulr cucrpo celuldr y susprolongaciones (dendritas y axn). Esto es, una neurolrit dene muchas entadasy
una sali:1a.Lasllendites cn la neLrronacquivalen a los reccptoresde infrmacin proveniente Je ota ncurona. Dch informacitin llega al cuerpo
celular y dc ah se enva por mcdio del axirn hacia otras neuonas Esfc proceso de comLrnicacinentre neuronas sc llana sinapsis.
por un
pucdeestarcomptresta
La entradade una red neuronalbiok'rgica
de datosLlel
que desempcan
la funcinde receptores
conjuntode scnsores
patrrn,Lx cualesproporcitnanlos estmulcxprovenientcsdel extedoral rnpor impulsoselctrcos
reriorde la re.l; dchoscstmulosestiinreprcsentaclos
que se encargande transnitt Ie informcinhaciael sistenanerviosocenhumanaque sc puedeexpresrcn un
rral,rovocandoefecrosde respuesra
granvarieda.lde acciones.Al igualque en la neurLaien los circuitoselecsc
nicoscxisteun estadobajo o al&) (0 o l), las entadasa los circuriLrs
Redesncunnr.lerartidcile5y VIIDL
277
278
tig!6
9.2
(xrxz).
-'
Redesneunnalcsamr,crle,
! VHDL
279
i'
r=o+\.\x,=b+w.x
wr e !
FtB
9.4
l+ 1i siI>0
[-1; siI<o
= w o r ln o + yx
I = b +i w ,x , = b + w. x
Dondew esla matrizde pesos,x esel vectorde entraday b esuna constante iniciali?adaen l.
Si el valor de la entadaponderadaes mayoro igual a cero,la salidade
la neuronaes iguala + 1; si es menora ceo,la salidaes-1.
'V-i
f+l ; s iI > o
l-1; s iI < 0
'Ibdared neuonalsedebeentrenarparaque
respondacomosedesee.En
otras palabras,es necesariocalcularel vecto de ponderaciones
(pesos)w
que le permita compotasede acuerdocon la informacin de entada.
El procesode entrenamientoparauna neuonahebbianaes muy simple.
Bastacambiarel vector de ponderaciones
w, por cadapatrn de entrenamiento,de acuerdocon la siguientereglahebbiana:
!f fr a s = wrbof
+yx
280
Iquatar
Iqualar
Ajusta
de enlradiento
d L Fr.i o'
b + Y,
ffifufuf*
Entrenarunaneuronahebbianaparateconocerla compuertaAND'
Salida
Entnda
( xl
l tI
xz\
-l I-1
-1
-l
-l
Solucin
Parael prmervectorde entrenamiento(1, l), tenemos:
=
(1, 1)
arilicialcsy VHDL
Redesneurcnales
281
= (1 , 1 )
(0,2)
b 2 = b*y=1
Parael tercerpatrn de entrenamiento01, 1):
x = ( -1, 1),xr = -1, xz:
1, y = -1 , w2 : (0 , 2 )
(1, 1)
b 3 =b2*y:0
Parael ltimo patrn de entrenamiento(-1, -1):
x = ( -1, -l), x1 = -1, x2 : -1, y :
-1 , wj : (1 , 1 )
hebb IS EiD;
4
5 RcrrTacToRE neurona
6
7
FIiE archivo
FrLE archivo
ctF hel rs
TEs! oPEN RBAD_!@DE
rS
salid:
tEa! oPBi 9{RIlIrE@DE rs
entada:
patron.rn
pess.ut
8 BEGIN
9
PROCESS
Contina
282
10
vlABrE blf
lL
VARBir,Ex1,x2,y:
12
:Ll
14
15
:16
iDtege.
ranse
: = J;
1;
18
re d i b u f i ,
19
re a d l b u f i n ,
20
21
w l :=
q 2 .=
22
b :=
x2) ;
y);
w t + x1* y;
)t2 + x2* j ti
b ry ;
2]
EiD IOP;
i re (b u f_ o u i ,
E i :e (b u f o !t,
w:L) ;
28
);
i re (b u f
o u t, w2);
ri re (b u l _ o L ,
);
Mi te (b u f
o u t, b );
29
Mi te l i n e l a c h i w o s al i da,buf,out);
:O
9BIT;
26
2l
]:L
I to l;
BEGIN
17
25
LIiIE;
buf,out:
END PROCESS;
Rdeseuronalsaniffcilesy VHDL
ffitffi
283
AND.
Softcin
El archivode entadaprron,incontiene:
1 - 1 -l
111
El archivo de pesospesos.outcontend:
z z-l
Uso de su lewom hclbiat
AlgolitrnoWa unfleurmahebbiana
Iniciatizar
Inicializar
Leer
1a enrrada
calcular
La alrada
s il> -0 ,
e r]rro n c e s
salida es isual
Si I<0, entonces
saliala
ponderada I
a +1
es ignral a -1;
ffi
parael ejemplo9.1.
Demueste
Ia ted hebbiana
Solucin
Del ejemplo9.1 se obtuvo w - (2,2")y b : -1. Parael primer patrn
(1, l) tenemos:
x: (1, l),xr=1,x2=l
por lo tanto,
I = x1w1*x2w2*b=(l)(2)+(1)(2 ). 1
= 3 , c o mo l > o e n t o n c e s=y 1 .
2U
I Ef,Ill
hebb IS
2 PORI (x1, x2: N lfllCIA. Rl@ -1 m 1;
y : @ll trlrE@. &iXG -1 1A 1) ;
3
4 E!D;
5
6 ACIECltRl neurom G hebb t
7 BECTTI
8
lROClaa (x1, x2)
q
Cligl t! u , v: E@
:
.;
0
@tltqrfr
b. Itll(R
: = -1;
11
12
13
14
15
'16
17
t8
VrrlBr!
BIGtf
I:=
!
f.
DlllqR;
b + x 1 * !r1 + ).2r!
I> = 0 ll!
y<=1,
E!
y< .
-1 ,
E@
;
19
llD POC!8A;
20 llD !|ula!,
Ltttado 9.2 Proca@ paa uM neuronahebtiana enrrenadapan reoneer um
@npu..ta lsica AND
285
De las lneasI a la 4 se declaala enridaddel programa;aqusc manifiestancomo sealesde entradalas variablesxl y 12,que se dan como enterosentre -1 y 1. La seial de salidaes y, que tambines un enreroenrre
- Ivl.
Dentro de la arquitectura,encontramos
el procesoque se activacon las
sealesde entradax1 y x2. En la lneat hallamosla declaracine inicializacin de los pesos.En la lnea l0 se tienela declaacine inicializacinde la
constante. El clculode la entradaponderadaI se realizaen la lnea 13.
La decisinde activar la neuonase da a tavsde la condicionalen las
1nea5l ta l /.
9.2.2 Perceptrn
Varen S. McCulloch y Walter Pitts desarrollaronla red neuronalperceptn en 1943 proponiendolas ecuacionesgeneralesy el diagramade la
figura9.5.
r=-,,, =w."
'
, ={tji
l + 1 ; si I>d
[- 1 ; si I<d
sl la fespueslaes corecta
sl ra respuestaes tncorrecta
x2
w","""=w,^,".""+lyr
ffi
Figm 9.5 E uacioesgenerolesy modelodel percepnn.
286
= w.",..",+pyx
",e,a
cal.ular
1as entradas r;
calcular La satida de1 perceptrn y;
si es correcta entonces
i si 1a respuesra es +1, entonces
por on o- s
sr 1a espuesla es L enlofces
el patrn de dtrad
nuevo w = anterior w
actL;
)
{
de entrada actEl;
de entada
acLl;
Redesneuionalesrtilicil.s r VHDL
Eiemplo 9.4
247
Entrada
( xr
xz)
Salila
It
l-1
-1
1
-l
-t
I
-l
-l
-1
288
dieiralcs
VHDL, El artede prcltamarscremas
1 n s B s td . te x L i o . a l l ;
2
:l ErrrTf perceptrn rs END;
4
IS
5 ARCBITEeTURBneuona OF percepton
IS
6
FILE ar.hivo entrada: TEcr OPENREAD,TODE
Is
!{RITE-{ODE
Ttl! OPEN
7
FLE archivo-salida:
patron.rn
pesos.out
;
;
I] BEGIN
9
PROCESS
10
VARIIBI;E buf-i,
11
vaRlABtE
12
:L:
:14
15
16
1?
18
19
2a
2l
22
23
24
25
26
2'
28
29
l0
l1
12
3]
]7
38
:1 9
.1 0
41
42
4l
LINE;
inEeqer
range
1 to
L;
pesoe i ni ci al es
VARIABIEw1,w2: lntger : = 0;
VRIIaBLE I: integer
;
L to :l;
rdge
llger
VARIABT,E respuesta:
=
:L;
:
CINSI theta : iDleger
BEGII{
eDtada) IOP
I'HILE not e.dfile{archivo
buf,ln) ;
readline (arcbivo,entrada,
(b
u
f_
i
n
,
e a o
x 1) ;
re a d (b u f-i r, x 2);
re a d (b u f-i r, Y);
r: = w 1 * x 1 + v 2 * a2;
IF I> = lrheta !I{EN
e s p u e s ta : = 1;
E["SE
re s p u e s ta : = 1;
END IF;
calola
rF y = respues:a TIIEN
rF respuesta = 1 ltlEl
d l : = w 1+ x1;
v2: = N2+x2
si 1a respuesLa es correcta
ELSE
01: =
34
t5
l6
zl,x2,y:
our:
bu:
'2: -
w 1 x1;
w 2-/,2;
END IF;
--si
=
1
TIIEI{
IF respuesta
rL : = w I z1;
q 2 . = \2 .2
E,SE
ELSE
wl:
w2t
La respuesta es rncotecta
= w 1 +x 1 ;
=
'n2 x2;
END IF;
END IF;
Contina
Redcsneurcnale.
r,l(Dles v VHDL
46
4?
48
49
50
51
52
289
nD lcop;
l fi l e (b u f_ o u t,
w 1 );
se esci be l s pss fi nal es
l ri :e (b u f
o u r,
en -.1 archi vo de sal i da
);
M i L e (b u f o u t, w 2 );
w ri re l i n e (a r.h i v o _ s a 1 i da, buf ourl ;
IAIT;
ElD Drcceas;
Se deseaque el perceprrnreconozca
y realicela operacinlgicaAND.
El archivode entradapaton.incontiene:
- l - l -l
- t l-l
l - 1 -1
111
2m
contemlr:
El archivode pesospesor.orit
2.2
Solucin
Uso del perceprn
El algoritmoparaun perceptrnesmuy sencillo.A continuacinsemuestra
en seudocdigo.
AlgorianoPdrd1 Perceqtrtr
i n i .i a l i z a r
th e L a ;
La entrada r;
lee
entonces
salida
es igual
1;
y = - 1.
< 0, entonces
291
TN
=i*,',
'
w=w
[+t; si l >o
L-l ; si I<0
BEx=
!i-:w-**
-."-+
Aclulizacn
+ aw
lxl-
La deline,al igualque el perceptrn,tiene un salidabipolar.5tagenera en su salida * 1, si la entrada ponderadaI es mayor que cero, y -L si la
entada ponderadaes menor o rgual a cero. La salida se comparacon la sa'
lida deseadacalculando el eror de la adaline E.
FEx
l*l'
Donde p es la constante de aprendaie y puede tomar un valor entre
ceoy l. E esel erorya calculado,x esel vectorde entrada( x1,x2 ) y w es
( w1,w2 ).
el vectorde ponderaciones
Entenamiento
293
de una adaline
dk
L;
w =F +d q
)
calcula
s1 I
la
entada
> 0 tonces
salida
de La
s iI < = 0enr o n c e s
saLida
calcular
el
de 1a
ero
!;
con e1 nuevo w;
294
9.4 Redesasociativas
En lasredesasociativas
los patronessealmacenanasocindolos
con otrospa,
por ejemplo,
para
tones.Existenvariasclasiicaciones las redesasociarivas;
pueden ser autoasociativas
o heteroasociativas.
Una red autoasociativa
patrones
almacenalos
asocindolos
con ellosmismos.Una red heteroasocia,
tiva se utilizaparaasociarlos
con otrospatrones,
Una red asociativatiene la estucturade la ffeua9.7.
r -S -.,,
Y1
X1
,,={_1,
si I>0
si I=0
si I<0
x2
Y2
Xn
Ym
l1 ; s iI > o
I
) = 1 0 ; s it = 0
I
[ -1 ;
s iI < 0
., - f l;
'-l o ;
s iI > 0
s ils o
Redesneuronalesdrtilicialesy VHDL
29s
de acLivacin
V=3J
AlusLar Los pesos:
wj (nueva) = wt(mterior)
iqrat
a1 parn de enrrada de
al parrn de sarida de en
+ xy
1000
l0l0
0101
0001
e4
sl sz
10
10
0l
01
Solucin
La topologade la red heteroasociativa
se muestaen la ffgura9.8.
296
297
ti
El listado9.5 muestraun programaen VHDL paaentrenauna red heteoasociativa.El programalee los patronesde enrradade n archivo pdon.in y
escibe la matriz de ponderacionesen el archivo pesos-ort.
1 t ls E s td .te x ti o .a l l ;
: E+TITY heteroasocitiva
S END;
4
5 ARCIIIECIITRE red OF heteasociativa
IA
5
FILE archivo_enCrada: !!Eir OPEIREADI'!oDE rs ,patron,in
;
?
FILE archivo_salida:
!AlK OPENI{RITE_!@DEIS pesos,out ;
8
TrPE ponderaciones
rs |RRAY (0 10 l, 0 TO 1) oF rTEGER;
9
TYPE CIAdA IS ARMY (O TO ]) OF I:EGER;
1O
TIPE SA1ldA IS ARMY (O TO 1) OF INTEqE]R;
1L BIISIN
12
PROCESS
1.1
1,!RIABIE buf_in/ buf our: rJrNE;
14
VA R IA BL Ew : p o n d e ra c i ones : = ((0,0), (0,0), (0,0), (0,0));
15
VARIABLE x : ent.ada;
IARI,ABLEy : salida;
16
t1
18 BEGIN
.hi o
. .d" rop
to
ar[r,E or df
-r
"!
20
readline (archivo enLrada, buf_ir);
21
POR i IN O TO .] IOP
22
te a d (b u f i n ,x (i ));
2l
EiD taoP;
24
e a d (b u f i n ,y (0 ));
Cotna
298
sistems
dieitales
VHDL, El arteepocamar
e a d (b u f_ i n ,y(1)l ;
25
FOR i rlr 0 m .l IoP
26
t@ j D.r 0 fo 1 roP
2?
= vl r,j )
+ :(i )rY (i );
v { i ,i ):
28
END IOOP;
29
END IOP;
]O
EI1DOP;
31
o R i l N 0 !o 3 r@ P
l2
FoR i N 0 'o :L roP
ll
u ri re (b u f, out, w (i ,l ) ) ;
14
d ri te (b u f out,
);
15
ED IOP;
36
m i te l i n e (a rc hi vo sal i da,but out);
3?
38
END IOP;
{AIT;
]9
40 END PROCBSS;
41 EiD red;
299
TYPE pndera.rnes
TYPE ENLAdA
10
TYPE salida
IS AAY (O TO ], O TO :)
IS ARRAY (O TO ]) O INTEGER;
IS A1Y (O TO :L) OF ITEGER;
OF INIEGER;
Va R IAB L Ew : p o n d e a c i o nes:
VARIIABIiEx: entrada;
\AIABIE yr salida;
( ( 0 , 0 ) , (0 , 0 ) , { 0 , 0 ) , ( 0 , 0 ) ) ;
readline (ar.hivo_etada,
F OR i IIOIl O 3 T OP
re a d (b u f i n ,x (i ));
ED IOP;
re a d (b u f_ i n ,y (0 )) ;
re a d (b u i _ rn ,r(1 )) ;
buf rn) ;
La lnea22 muestracmoaccesaruna localidaddel arreglo.Estoseealiza anorandoel nmerode localidadentre parntesis(r(i)); es decir,la pri,
mera vez que se ejecuteel FOR, se almacenarlo que se lea del archivo
de entmla en la primeralocalidaddel arreglox. La segundavezque seejecute el ciclo se almacenar
en r(l), la siguientevezen x(2), etctera.
Al terminarde ejecutarse
el FOR, seleenlos dosdatosparaelvector de
salidav.
300
2a
29
30
FO RiI NO TO 3 I O P
FORjrN0roll,ooP
w(i ,j): = w(i,j)
+ x(r)*y(j);
Bi'D I.OOP;
B{D I,OOP;
La foma d tener accesoa una localidad de un arreglode dos dimensionesseapreciaen la llnea 28.
Uso d w rcd heteosxiatic)a
Algoitmo para utiliza la ed heteoasociativa
hicializar
l o s p e s o s.
patrn
de a.rLrada
Para cada
hacer
{
de entraala;
Hacer x igual al.patrn
calcular
la enlr.ada ponderada a cada una de las
Deleminar
]a activacin
de las
neuronas
salidas
sil>0
sil=0
sil< 0
'=1t',
Pruebeque el ejemplo 9.7 funciona para las entradasdadasen el problema.
Utrlicela funcinde activacino transferencia:
w = t; :l
p2l
FeJa ncu,n11.
r,ute5r vH D L
Jol
Ehrltplo 9.9
Demuestela ed heteroavrciativa
del ejemplo9.6 parauna enrradasimilaral
patnde entrenamiento.
Solucin
302
distialcs
VHDL: Elaite de prosramar
isemas
parauna entradacompletamente
diferente
Demuestela red heteroasociativa
,i lo. pdtrone.de entrenamienro.
Solucin
Pruebeel vector (0 1 1 0).
Sea,
x= (0 110)
1 1=x1w11*x2w21*x3w31* x 4 w4 :1 (0 )(2 )+ (l)(0 ) + (1 )(l) + (0 )(0 )= 1
12= x1wl2+ x2wt2+ xlw:r2+ x4w42= (0)(0)+ (1)(1)+ (1)(0)+ (0)(2):1
Por lo tanto,
y : 1, dadoquel>0
y2 : l, dadoqueI>0
La ed asociael vecto (0 1 1 0) con el veccor(1 1), el cual no se encuen,
tra en los paones de entenamiento,La red respondecoectamenteal no
encontrarsimilitudcon los patronesde entrenamiento;por lo tanto, contesta
con un vectordiferente.
El programaen el listado6 muestrauna fomade programarla red heteroasociativaparael problemaanterior.
1 ErrTY
heteroaso.ia.iva
PORT (x1, t2,, v3, z4
: lll
y1,
y2
IiTBGERRArGE 0 TO 1;
0 fO l)t
4 EIiD;
5
rs
6 ARCflTIECORE red OF heteloasociativa
rYrE pndera.iones
rg ARRAY (0 1!o l, 0 To 1) o
lqEsER,
IJ BAGIII
Contina
22
33
s-&
y2< = Al
23
24
EID !;
25 ED PROCEAS;
26 !D red;
f'l' l t
E s te.t.
= l srS :'
t' l
le"l
fe,s,
e,s, ...
.-r=l
"i''",r .
Le"s
,:]
30l
w=!r,S=)ers
ffi**
pamencontr
la mtrizdepesos
delejemplo9.?,
Utiliceel pmductodevectores
Solucin
Pamel prie vectotde entrada
e : (10 0 0 ), s=(1 0 )
el productoentrevectoreses,
lii'l'll
Parael segundovectorde entrada
s= (l 0 1 0 ), s = (l 0 )
el poductoentevectoreses,
|l]"lill
Paael tercevectorde entrada
e =(0 l 0 l ), s= (0 1 )
es,
el productoenttevectores
iil''ltll
Redsneuonalesaftificialesr" VHDL
305
e = (0 0 0 1 ), s= (0 l )
el producto entre vectoreses,
li]'Iil
La matiz de pesosse obtiene al sumartodas las maticesresultantes
paracadapatrn de entrada.
l'iliiil[;]liilliil
que esel mismoresultadoobtenidoa tavsde la ley de Hebb.
Aplicacin de la red heteoasociativa en reconocimiento de caacteres
Lasedesheteroasociativas
se han aplicadocon xito en el reconocimiento de caracteres.
Como ejemplosepuedeutilizar la red paraasociardospaes de vectores.El vector x tiene 30 bits de entrada,y el vector y, 15 bits
de salida.
x.,.x
xx.
x...x
x...x
xx.
xxx
x,,,x
x...x
x,x
306
(010 1 0 1 1 r 1 l0 l
l0 l)
Salida
x.x
xxxxx
x.x
x...x
Entrada
Salida
x.x
)oo(xx
x,#.x
x.x
Entrada
Salida
#x.x#
oxxxx
x...x
.x,
x.x
x.x
x...o
Entrada ..x..
Sada
.x.x#
xxoxx
x.x
o...x
x.x
.'.,,
Entada oxx.
x...o
x...x
ooxx.
o,..
x...x
Salida
bd.r.rr*4rdfi'a vtFt
'
xx,
x.x
xxx
x.x
xx,
if
308
Jisitules
VHDL, El aede pfusnnr stemas
Ejercicios
l. Entrenauna red hebbianapara reconoceruna compuertalgicaOR
Useun programaen VHDL.
2. Enenaruna e,:lhebbianaparareconoceruna compuertalgicaXOR.
Useun prograrnaen VHDL
compuertalgicaOR.
3. Entrenarun perceptrnparxeconocerLLna
para
una
reconoc comprrertalirgicaXOR.
4. Entrenarun perceptrn
5. iRrr qu no es posibleprogramaruna compuertaXOR con los tiposde
neuronasanteri()resJ
6. Elaborarun programaen VHDL paraentenarla adaline
?. Redactarun programaen VHDL parautilizala adaline.
8. Realizarun prograrnaen VHDL paraenrrenauna ed heteroasociaiva
que aceptepaonesde entradabipolares(-1, 1).
de la
9. Redactarel programaen VHDL parausarla ed heteroasociativa
pregunta1
en VHDL paraencontrar1matrizde pesosde una
10. Elaborarun programa
utilizandoel mtodode productosde vectores.
red heteoasociariva,
de camatrizde pesosparaei problemadc reconocimiento
11. Encontra1r
y
y
espectivo
racteres.Debereconocelas letrasA B asocifflascon su
patrrnde salida.Use un programaen VHDL.
30!)
Bibografta
MaureenCaudill, CharlesBuder (1997). Undstatdine
Neural No,mls.
Corrp tar expkatir:.Volumenl: BasicNetworks.A BradfodBook.
The MIT Pess,
JamesA. Freeman,David M. Skapura(1991).Redanewonales.
Ngotitnws,
aplicatbrcs1 tlcnica deyoganwci6n. AddisonVesley/Diazde Santos.
R. Beale,T JacksonA99q. Ner$alConlfittig:An hrod.tiott.Insrituteof
PhysicsPublishing,
Timot\ Masters(1993\.fuactiralNeuralNecwori<s
Rcipes
in C++. Academic Press.
SthephenT Welstead(1994).NeutalNetatzkandFuz4lgic Arylicatiocin
C/C++ Viley Professional
Computing.
ApendiceA
Herramientasde soporte
para la programacinen
VHDL
Si bien ya rnencionamos
coranterioridadlasventajasque presentael diseo
de cicuitosASIC medianredispositivoslgicosprogramables,
convienereque
cordar
una de las ms importanteses el bajo costo de los elemenros
requeddospara el desarrollode estasaplicaciones.Estos elementoscle
soportebsicoson: una computadorapersonal,un grabadorde dispositivos
lgicosprogramables
y el softwarede aplicacin.
4089432600
hrm ://ww!r'.cvpgls.raq
3t2
Distribuidores
en Mxico
' UniqueGchnLrlogies
rr, hnulucrc'. . ' . m
uuu.,rnrqlle
elecrnicos
' Integracndc sistemds
Tels.26 82 ?l 03, 51 2A27 31y 57 65 28 72
Paracualqrrierinormacinadicionalpuedeconuncarsccon los dutoes
(dagonzal@icampus.cem.itesm.nrx,jalcala@icampus.cem.itesm.mx)
A.1.1 Para iniciar WarpR4
hay,:luetencrlainstalada.
trabajo\y'arpR4,
A fin,-1eusarla heramenta,.1e
En la figuraA.l se muestraestacondicirin como se observa,en csfesoftel simulador(Nrrua),lasnotas
w:rresecncuentrala irrrerfazgrfica(Galax-r),
(WarpToolbar)
Noer)yla barrade herraruicntas
rcnicas(Reledsd
E}Q Pragranas
fvarpRa
. lJ
Q
: -8
i -A
uaary
Nova
Relasd'lotes
war! Toolbat
^I
F i g u A.2 M e nI s n . J ( C d l ) \.
tra...
313
Creacininicial de un poyecto
Parainiciarun proye(o (Projecr)es nccesrio elegirla opcirrProject.Aqu
sepresentirn
r rscasos:primero,al scleccionar
Projectpor Frimervc?rpereceriruna panrallasinilal a la rnosrraJa
en la figuraA.3. En ellaclprogramasrr
licita la ruta cn,queseguardernhrsplryccros(ennuestrocso:Ejenplt, as
conn)clnombrequeseasignar./r
alarchno (diseos)
en qtrcse.inacenarnlos
p|ogramas
que gencrcmos.
Fisura A.l
Craon Jc un fn.l'e.!,.
d, alhxi:
314
el listadodel comparadorde
Paraproseguircon el anlisis,consideremos
igualdadde 2 bits de la gura4.6.
ffi
deicaldadde2 bits.
Fisuo A.6 Compado
ficun
.t15
td
Figm
A.8
L rn
'*
!.
g;.;
31
ffi
Fi8un A.9 Eleccindel dBposirvo.
317
Tccnologadel dispositivo
La tecnologadcl llispositivo(TchMapping)se refierea las opcionesqlre
perDritenla nxima oprimizacindel circuiro cLegido,la cual se relaciona
con la estructuradc srl aquitecturinfcrna' Seleccinde tiPos de Flip-Flops
Estaopcn(ChooseFF Types)seeplicaen la sntesisde sistemas
secucnciales.Con ella,el r.liseirador
puedeescogcrlosdiferentesriposdc tlip-flopsque
seurilizanen h oFtimi?acnindc un diseo.La opcinOpt esla reconendada, ya que permiteal programaelegirde forrnaautomticael flit-flop que
mejo se adecuea cadadiseo.
. Consawacind.eIa polaridad,
Cuandoestaopcin(KeepPolariq) sehabilita,ei usuarioticnc la posbilidad
de elegirIa polaridaddeseadaparacadasalida.Cuandoro estseleccionada, el programaasignade manerRautomticala poiarida,.l
que consi:lerams
adecuadA.
. Tetminalesy nodosaariables
Duranteel procesode snresis
del programa,Wapgeneradiversasscales
internasen el dispositivo,lascualespermitenrealizarlasconcxionesnecesarias
para cl ptimo funcionamiento,.1e1
cicuito. Estasseiialesconoci:lasconr,
terminalesJ nodosvariables(Floatpins,Floarnodes)sepue.lenignoraral
momentocleimplemcntarlt Ligicaproduci.lapo ft)sprocesosdc srresisy
optimizacin.Porlo genealestaopcinno seactivay esfoscambiosquedaD
sujetosal citeri()del programa,:1or
. Factor lgico
Es una opcin (FactorLogic)aplicablernicamentca la fellliiiaM,{X340 de
la compaAltera. Esremdulo pernitc le implementaci(inLigicacn trcs
nivelesen lugardel mo,:lonormaidc dosniveles(surnade produ*os).
. Nodos
Nodos (Nodc cost),permitesinrcti?areldiserode tal mancraque seacompatiblccon Lrtro.El vaior recomendado
es "10".
3f8
. Oqcionesde simulac
Estaopcin (PostJEDEC
Sim) slose aplicaa PLD y CPLD.Corsisteen un
modelo de simulacin que pemite al usuario simular el diseocon informadis,
Sim exhibeuna listade simuladoes
cin peridica).El menPostJEDEC
(<none>).
ponibles.En nuestroejemplola opcinno estseleccionada
Opciones genricas
En la opcin Generics (Fig. A.10) se considerandiversascaactersticas
relativas a la compilacin.
ffi
Fisa 4.10 Opcionescenncd.
. Ni)eI dt o,tmizdcin
Esta propiedad(Optirnization) se utiliza para indicar el nivel al que se quiere
optimizar el diseo. El nivel exhaustivo permite una optimizacin que abarca diagramasde estadoy condicionesno impota.
. Retencirn de XOR
Estaopcn (Retain XORs) hace que Warp retengalos operadoresXOR que
seencuentren en el diseocon el ffn de lograr una implementacin msade,
cuadaen el dispositivo.
319
. Snei da cdmpos
Con estaopcin (Goals)el usuariopuedeseleccionar
el caminoque segui
la sntesisdel diseo.Ahora bien,es importantehacernotar que sloes recomendableparausuariosexpeimentados.
. Mximo efiores y de condiciatesde resgo
Ambas opciones(Max errors, Max Vamings) se utilizan pincipalmenre
cuandolos diseossonlargos.Su funcinesque el usuarioespecifique
el nmeo mximode erroresy condicionesde riesgo(warning)que se preserarn en la pantalla.
. Reqoe detallao
Estaopcin (DetailedReport)muestaun repotedetalladode la compilacin de un archivo.No es recomendable
habilitarlaen diseoslargos,debido a que el reporteque produceserfamuy exrenso.
. Conqrobaci'n de kt lfd seriifi{d
Como su nombelo indica,estaopcirn(SensitivyList Checking)tevisalas
vaiablesque formanla lista sensitivade los procesosque seincluyenen los
diseos.Si el programano presentaproccsos,csraopclon no es ecomendable.
Inicio de la compilacin de un diseo
Antes de comenzara compilael diseo,es necesaioqle dento del men
del proyectoseseleccione
y enseguida
la opcinSet top, ya que stapermi,
te la compilacinde dicho diseo(una vezrealizadoesro,el nombredel archivo debeapareceresaltadoen la pantalla).
Ahora bien, consideremos
que hay doscaminosparainiciar la compila-
320
Una vc: cornpiledo cl diseiro 0ncdiante la opci(ilr l), sc genera una pntrlla que trxcscnra,entrc orrtrs pultosi el resuLttiode hx ljvcrsosLrrlrccsos
po los que aaviesa el disco para su compilaciLi adecuada(Fig. A.Ll)
A.1.4 Nova
Nov (cl simulador)es la heramienta.lue pernite simular el comportamiento dc un cliserioL.asadoen el rraz:rJo cle fomas de onda La nTancra
dc entrar l simulaJc Nov:r es por mcclio de l l'arra cle heramientas o
dcsde el menr tle \larp. La pantalla principal se mucstra en la figrrra A.l2
Dicha Fentslla c(ntiene utr men con lirs opclrnes File, Edit, Simula'
te, Vicws y Options, Observe quc cn la secci(ir i:ruierda de la pantalla
hay una columna dc botones en los cualcs se inrlca el nlrrcrcde termilal
(Fin) y cl nmero de no,:losl avciatlos con las seles .lue sc silularn
(Fig.A.l2).
L tin i.,1..,
321
FiEuraA.l2 SimuhdorNova.
ea de trazado
El eade trazadomuestalosvaloresde lasseales
y rodos listadosen la co_
lumna izquierdade la pantalla.
Parainiciar la simulacinse debeasignarun valor a cadasealcleentrada.Estose ealizaen la opcinEdit, ya que contienelos diversosvalores
puedetomaruna seal(alto,bajo,sealde reloj y un pulsode reloj).Ca_
_que
da valor seasignaseleccionando
primeoel botncorrespondiente
a la seal
y luegose indicaun valor opcionai(Fig.A.lJ).
%
Figm A.1l Asisnacin
de vloresa seales.
tt
Note que la sealde salidac toma el valor de "1" porquelos bits de entradason iguales.
A.1.5 Archivo de rcporte
La compilacin del diseotrae consigola generacinde un archivo de reporte (extensin.rpt), el cual presentainformacinimportantedel diseoy de
la forma en que se implementa en el dispositivo. Para analLar el achivo
de reporte, se regresaa la pantalla principal y se elige el men Info Report
ffle, el cual abreuna pantallacomola que sepresentaen la figura4.15.
-t
l-
copillq:
.taons:
"-"/
cdrF.vhd
el0
!i100
vlo
c: \_@rp\bn\vd1fe. se r t r95:
F r i J ul :1 0 :1 8 :4 7 :2 11 9 9 9
Ll.l-:i
r. rclr2r
b.Jc .orp..t
!1lDL*r"..LI
Libary
Lrntiirq
L1brl/
i,rnliinq
tovi f .*e
V4
x!5:
Hiqh level
slnrhe
C: \ar!\bin\ti
f,exe:
No eos.
324
pr oFrljze
softwe:
m{JoPr.E
11/NOV/9?
[v4 02 ] 4 rR x95
PeseL/Reset
equrfents
OPIIONS
CPTTMIZATION
Ble.l
optiizinq
Infmatron:
!ro:
Cout
= 0
Naring
Count = 0
Complered SuccessfuLly
/ a- 1
+ / a0+ / b - : L +/ b - 1 r
a: L
+ / a- 0+ b 1
/ a: L
+ a- 0
+ / b : l +b 0
a- 1
+ a0
+ b-i
+/ b 0
+ b-0
conpleted successfully
de optimi.acin
del diseo
Fi$e A,r? Proceso
]GIC
,tr,.r,r',
f. .";1
)-
BI,OCK A IIACN,IB]I
BI,OCK
I I I 7I 1 ) I I I 222 ) . 222222a . 3 1 1 1
| 111 4 4 4 4 4 4 4 4 4 5 5 5 r , 5 5 5 5 5 5 6 6 6 6 5 6 6 6 6|6i 7r r r _ r r r _l
f1 21 45 6I i901234r , 6739012345a, 1a90 1 7 1 1 \ 1 8 9 A 1 2 3 4 ! 6 ? 3 9 0 1 2 1 4 5 5 7 3 U 1 , - : 1 4 5 6 . a e 9 0 ) 2 1 4
Y r X + + + + + + + + r + + + .,,.....
,"\rlrsE
siqrals
Logr.
Block
:Ll
:5
FiguaA.r9 Esradri.as
prcsenrads
por bloquctsco.
1
4
4/
80
3?
Package: cY7c3?21-66Jc
:
aiD
23
GND
32
aa
;
3
4
5
6
7
8
9
10
33
a_1
GIiD
34
6D
\cc
44
vCC
11
t2
13
L4
15
I6
71
18
19
2A
2t
22
@
Fisn A.20 Asienaci de reminalespm el CPt C3?2i.
En el apndiceD se muestra la hoja tcnica de este dispositivo. Recordemos que el programa asrgnaautomtrcamentelas teminales (pines) con
baseen la distribucin de ptoductosde trminos dentro de cadamacocelda'
Por ltirno, se presentala informacin correspondienteal mapa de fusi'
bles $EDEC), el cual se genera pimero paa cada bloque lgico y luego
pata el archivo de salidaJEDEC (comp.jed), el cual 6nalmente se instala en
el dispositivo elegido (Fig. .A.21).
.J!]IIEC
327
(18:47i 5r)
ASSETIBLI
Pro.essing
Pocessinq
.IEDEC output
JEDEC fo
Loqi.
Block
1,
tor
Logic Block 2.
for
Loqic
Blocl
JEDFC f o r
Loqic
B1o.k 4.
file
'c(rf9. jed,
Eror CounL = 0
creared,
waninq
CouL
= 0
c o frp l e te d S u c c e s s fu l L y a r 18:7:51
Figua A.2 I Generacidel archivoJEDEC.
328
Figur AJ
? Pda lo cul * utilnan losom,dos bi.G d istm opntivo, S! s) en'Vido*
tu e eJpe.iica m s
A#d@ A Her6i.nd6
d...Dorte pf .
,:W
tal
.I
331)
Bibograffa
1993.
David G. Maxinez.Amplifuacinde Seales,ITSM-CEM,
Hald Book.Clpress,SemSemiconductor
Corportion.Appddons
Cypress
conductor
Corp.,1994.
CypressSemiconductorCoporation. Programnablel.rtgic Daw Book.
Cypress,
Semiconductor
C,orp.,199.
Refeenci
CypressSemiconductor
Corp.SoftrareWarpR4.3901FistStreet,San
Fax408-943-68-48.
JoseCalifomia,CA 95134.Tel. (800)858-1810.
Pgina\y'eb
w*'l'.cypess.com,
SemiCorporation.ThUser'sGid.Cypress,
[2] ClpressSemiconductot
conductoCop., 1996.
[3] CypessSemiconductoC,orporaton.An lntrot tm 1b In System
Corp., 1996.
Reytogrannigwi FLASH37O.CypressSemiconducto
{ll
Apndice
B
Instalacindel
SoftwareWarp
'llarp
Requerimientos
Windows PC
Procesador
8048nlnimo
CPU SPARC
RAM
16Mb mni,o
16Mb
Espacben discoduro
60 Mb mlnimo
60Mb
Sistemopertiyo
Instalacinen PC
Una vez que se han revisadolos equerimientos
anteriores,se siguenlos siguientespasos:
l)
Cerrartodosias aplicacioncs
antesde correrel ptrgramade instalacin.
2) Insertarel CD y ejecutarel archivopc\serup.exe
(en el casode una
computadorapersonal).
Si serequiereteneraccesoa la documentacin
en lnea,esnecesaioinstalar el programaAcrobat Reader,el cual se encrentraen eseCD-ROM.
Parainstalaloexistendosformas:
332
Apenclice
C
Identificadores,tipos
y atributos
Seles
Son objetosutilizadoscomo alambrados
que permitensimularla interconexin de componentes
dentrode la arquitecturade diseo.Estassealespermiten epesentarentradaso salidasde entidadesque no rienenuna remi
nal extena(patilla)al dispositivo.
Como ejemploobservemos
el diagramade la liguraC1.
Terminal
Figura C.l
33s
L Lr pane.os indicados ft
corchetes I 1, sn vtdes o!f,1oaks.
336
I s." .0""1*n,"
E*"1*"
Tipos
de
tomr un solo
Pucden
rior , momsto oe
I
,^
que
I son aquerlos
tomr
Jcrsos
Pueden
Cofnpu""ro"f
I
simulatel diseao
Tipos ffsicos
Se clasiffcan en dos:
Tipos areslos
Tipos egistros
a) Tipos escalares
que existenen
En estaseccinsedescrbea dctalleios cuatroliposcscalares
VHDL; tambinsc muestranalgunosejemplosque permitencomprender
TiPos etumeradas
Estetipo se usaparalisrarlos diversosvaloresque puedecontenerun objeto. Se llamanenumeradosdebidoa que listantodosy cadauno de los valoresqe formanel !ipo.
La sintaxisparadeclararloses:
tlpe identificadoris deffnicin tipo;
Como sepuedeapreciar,la declaracindel tipo contieneun nombre,el
cual permitehacerrefeenciaa l en el programa;tambincuentacon el pametrollamadodeffnicindel tipo, el cual coespondea losvaloresque se
le asgnan.
Ejempios
tlpe nornbresis (Ana, Maio,Julio,Cecila);
edo futuro, estado);
type mquinais (edo,presente,
tlpe letasis ('a','b', 'x', 'y', 'z');
debido
Lostiposbit y bcnleanoseclasificanentre los tiposenumerados,
a que puedentomar msde un valor:
type booleanois (vedadero,falso);
type bit is ('0', 1');
AendLe C ldrnhlcJd.rc,
pu\ \ rhburo\
338
sisrcms
disitLes
VHDL, El drtede posramar
'Ipo areglo
El tipo arregloestformadopor mltipleselementosde un ripo en comn.
Estosarreglossepuedencoruiderartambincomovectores,ya que agupan
vaioselementosdel mismotipo.
La sintaxsurilizadaparadeclarartn arregloes'
tt?e identificadoris array (ango)of tipo_objetos;
esnecesarioutili?arun
en ambasdeclaraci()nes
Como sepuecleobservar,
valor (rango)que determineel conjntode valoresque va a tomar el tipo.
peodebetomarseen cuentaque
En estecasoel rangono seha especificado,
al momentode asignarlose omacomoun nmeroenteopositivo(nmcro
,
L'r e.rardrre.lFtE 107 ) ll0 4 J e f rn c nd o . . rre g l" .rmt u f la r, rc 'll
y
parre
los
los cualesforman
de
tiposbir
madosbit_vector std_logic_vector,
y std,loglc,respectivamente.
A continuacinse puedeobsevarIa fomaen
que se declaranesk)sarreglos.
type bit_vecto is array ( rango) of blt;
is array (ango)of std_logic;
type std_logic_vector
El tipo std logic es masverstilque el ripo bit, debidoa que incluye1os
('Z') y no impota(-\.
valoresde alta impedancid
las siguientes
declaracioncs
de arreglos
Como ejernploobservemos
typeJrgir,*is array{o downto0) of inlegell
rype hyreis aay t7 dormto 0) of h
type direccinis array (10 to 62) of bit;
Otrc aspectoal utilizaarregloses ia faciliddrlque presentanparacrear
tablasde vedad:
type tabiais array (0 to 3, 0 to 2) ofbir;
constantejemplortabla :: (
"00_0",
"01_0,,
"10 0",
"l I 1");
ya que tiene
El arreglodeclaradoen esteejemploesde dosdimensiones,
un valor parael nmerobinarioque t()manlasentradas(de 0 a 3) y otro para el nmerode bits de entraday salida(dosbits de entraday uno dc salida).
Losguionescolocadosente los bits separanlas entadas(ladoizquierdo)dc
las salidas.
339
sl -i".lltL,E?
s,o 1r1irl,9i
340
read(variable-tipoline, variable)
Una funcin muy til xl tabajacon archivoses: endfile(nombe)La
cual regresauna variablebooleanaTRUE si seencuenrrael fin de archivoy
una FALSE en caxr contaio.
El procesode escrituraes opuestoal prxeso de lectura.Primeosedebe
n,andarla informacindeseadaa una variabletipo LINE mediantela si'
guienretuncin:
variable)
write( variable_tipo_line,
Luegose escribela lnea al archivo de salida
Writeline (nombe archivo-salida, variable-tipo-line)
Lasfuncionesparatrabajaarchivosse encuentranen el paquetetextio,
qrrese localizaen la librerlastd. Recuerdeque la librerastd se cargasiempre que se compilaun programaen VHDL.
Ejemplo: diseat un programapara leer datos de un archivo y escribillos
en un archivode salidaen lorma inversa.
El archivo de entrada puede tener
5.5
454345
6.7
53246
84?189 5.6
basket
hockey
En e1archivode salidasegenera
5.500000+00
454345soccer
512466basket
6.700000e+00
847389hockey
5.600000e+00
I t s E s t d, t ex t io. aI I ;
2
3 EITfTY
IEXI
5 RCIIITECTTRE
6
?
Frr,E
FiI
sinple
archivo
9 BEGIN
PROCESS
entada:
drchivo-saLida:
8
10
IS END;
rext
fc
BT
IS
oPBN READ lDE
OPEI llRIlE.DE
IS
datos
lS
dalos.out
ln
;
;
ul
11
!aItl!
brf_in,
buf_out:
&tt,
12
vUra
nc'llbe: ga!t (X ro 2O);
'\jAt! mnr lttMR;
13
14
vur8!
aLato: R!.;
goor
L5
16
rGIL! tol endfi e rdr chivo_er Lrdat )
11
oqP
18
fFodl irr { rchj vo_enrrada, bu_in);
19
rpo buf_in, nollbre) ;
20
read (irfjD.
ru);
21
read (buf_ln, alato),
22
l i re (b u f_ o u r,d ato);
23
m i re (b u f_ u r,,
" );
24
Mile (buf_our, n!In) ;
25
Mi b e (b u f_ o u r,
);
26
write (buf_our, nore ) ;
,
27
rfi ret ine ( archiwo__rsatida, buf_our ) ;
28
EID 'OP;
29
l/.|FI i
30
EtD P'OC!g8;
31 EID sirplet
Apndice
D
Hojas tcnicasdel
CPLD Cy7C372i
344
a tcs implemeniada
La funcinISR de Cypess,
costossignificalivamente.
y
vs de 4 terminalesde una interfacescrial.Los datos son desplazados
(entraday salida)a travsde las tcrminalesSDI y SDO tespectimaneja,:los
(Vpp).
usanJola rcrrninalclelvoltajede prograraci)D
valDcrte,
dentro del circuito CY7Cl72i estndivididasen
Las 64 macroceldas
a 72 x 86 arrecuatrobloqucslgicos.Cadabloquencluye16 macroceldas,
productos
glosde
de trminos.
Los bloquesLigicosden!rc de la aquitecturaFLASHIT0i, son conecta'
rpidollamadoPIM (Matrizde
closa tavsde un iecusoextremedamcnte
InterconexinProgramable).
Como todos los miembosde la familia FLASHITOi,el CY7Cl72i es
cuentancon terminaen el dispositivo
Cadadosnacoceldas
rico en recursos.
d
de
E/S
del
circuito.Aclems
12
terminales
lesde E/S,resultandoun rotalde
y ,.1os
cntradasde relol
cuatroentradasdedicadas
del CY?Cl72i seencuenrraun senFinalmente,entrc lascaractesticas
de CPLD de alta funcillo modelode tempos.Conroen otrasarquitecturas
gandes
la
velocidad
del circuito, as
presenta
etardos
en
cionalidad,no
cono efectosfanout, retardosde inteconexitno etardosde expansin.
Dependendodelnmero de ecursosutilj?adoso del tipo de aplicacirn,los
parmctrosde tiempoen el CY7Cl72i suelenserlos mismos
ApndiccD. Hojastcnicsdel...
345
7C372i, 100
?c3?21-a3
ic
12
15
20
l0
5 .5
.0
li
lc
l0
.5
10
t0
2E0
l5ir
25!.
250
115
7C]72i-66
Conguracin de terminales
:'s*9 " 'l a q a q Q
E/Ss/ SCLK
E/S6
76
E/S27/SD1
38
E 526
10
36
Els24
1l
35
cLKl/15
34
GND
33
I4
US8
32
T3
E/S9
31
9
EO
E1r'pp
GND
CLKO/E2
'12
f3
Els22
17 18 19 20 2.1 2? 23 24 25
26 27 2A2g
9P
=DD
u-
$3 s
$
E/S21
u6
Descripcin funcianal
Bloques lgcos
El nmerode bloqueslgicosdistinguea caclaniembro de la familaFLASH l70i. El circuitoCY7C372iincluyecuatrobloqueslgicos.Cadabloquees
construidode un areglode productosde trminosy 16 macroceldas.
Arteglo de Prodrctos de t&ninos
El arreglode productosde trminosen los bloqueslgicosde la familia
FLASH37Oiincluyen36 entadasdesdeel PIM y 86 srlidas
de los poductos
Las 16 entradasdel PIM esde trminosal productode trninos localizador.
tn disponibles
en polaridades
negativasy positivas,haciendoun arcglode
72 x 86. Eseareglotan lgoen cadabloqueltlgicopermiteque una funcin complejaseaimplemenrada
en un sencillopavr dentrodel dispositivo.
Producto de trminos localizado
El productode trminoslocalizador,
es un recursodinmicoy configrable
quelosrequieren.Cualquedesplaza
poducrosde trminosa lasmacroccldas
quiernmerode productosde trminosentreel0 y 16 puedenserasignados
a cualquierade lasmacroceldas
contenidasen los bloqueslgicos(estoesllaen
mado ...). De aqu que los productosde trminospuedansemezclados
m(rltiplesmacroceldas.
Note que la implcmcntacinde los productosde trpor el softwrrey son trarxparcnres
minosen las macoceldas
son rcalizadas
parael usuario.
Herramientas de desarrollo
Ei softwarede desarrolloparael CY7C3?2iestdisponibleen las vesiones
de CypressVarp2MR,
VarpZiMR,y \larp3MR.Todosestosproducossebasan
en el lenguajeesrndxrVHDL. Cypressrambincuenracon el soportepara
CUPLVR,y LOGIC MR.
otrasherramientas
talescomoABELNIR,
Rangos Mximos de opencin
Temperaturaalmacenada
Gmperatura ambienlecon porenciaaplicada
dc funcionamiento o
Voltaje DC de entrada
ie DC .le
Apnclice
E
PalabrasreserYadas
ENVHDL
A continuacinse muestrauna lista de las palabrasresewadasen
VHDL. Como semencionen el apndiceC, ningunapalabraresewadase
puedeusarcomo identificarlorde seales.
Alias
A
And
Atibute
Begin
Block
Body
Buffer
Bus
Cse
Compoennt
Configutation
Constant
Disconnect
Downro
Else
Elsif
EnLl
Entit)
Exit
File
For
Function
Geneare
Genedc
Group
Guarded
If
lmpure
In
Inertial
Inout
Is
Label
Library
Lindage
Liteal
I-oop
M"p
Mod
Nand
Next
No
Not
Null
of
On
Open
O
Others
Out
Package
Pot
Rrstponed
Procedure
Process
Pue
Range
Recod
Registe
Reject
Rem
Shared
Sla
sll
Sra
Srl
Subrype
Then
Ti)
Tiansport
Tl.pe
Unaffected
Units
Until
Use
Vaiable
Wait
Vhen
Vhiie
Wirh
Retum
Rol
Ro
Seiect
Seve ty
Xnor
Xor
ApencliceF
Operadoresdefinidosen
VHDL segnsu orden de
precedencia
Operador
Desiplion
Tipos de operandos
Rcsultado
Entcro operadorcnrcro
Realoperadorentcrcr
Entcro
Real
Bir, bocLeano,
vecroresile brts
dem opcrando
Entero
Real
Fsico
Fisico
Fsico
FGico
Real op fsico
Dirisiarn
Enrero
Real
Fsico
Fsico
Fsico
Mod
Entero
Numrico op nunrico
Nu'nco op numrico
dem operandos
&
Elementoop clemento
Contina
350
digitalcs
VHDL, El arede prcermrsistemas
Tipos de opemdos
Resukado
Opemdot
Descripcin
sll
Vector de bits
srl
Vector de bits
Vcctor de bits
Vector de bits
ol
Booleano
No archivo op no achivo
Booleano
No archivo op no erchivo
Booieano
No archivo op no archivo
Booleano
No archivo op no archivo
Booleano
No rchivo op no archivo
Booleano
y Lgica
Bir,booleano,bit vector op
bit, booleano,bit vector
d.* op..andos
o lgica
Bit,booleano,bit vector op
bit, booleano,bit vector
d.m opera.'do"
y lCicanegada
Bit,booleano,bit vector op
bit, booleno, bit vector
d.* operandos
Bit,booleano,bir vector op
bit, booleano,bit-vector
d.-
Bit,'booleano,bit_vecror op
brt, booleano,bit vecto
d.m ope.a.rdn"
Bit,booleano,bit vector op
bit, booLeno,bir vector
d.m ope.atrdot
lgual que
or exclusivanesada
opetatrdo,
Referencc
Manual.IEEEStd
VHDL Language
Fuentede infornacin:The IEEEEsrnda
1076-1987,
1988.
Indice analtico
Achivosxxir', l 19-14I
Arquitcctura(r.nc."r),
46-55
esruchtral5l
funcioDal,47,49
o. fljo de Llanr,49,52
es t u. r r I , 5l
(dr), 298.299
de cobueraspn)sranables,l-4,15.18,21
l8icogenrico(cAL), 4,9,19
Asienciones
dobtcs,8?
Bfiert.!erado, 71
Cita ASM
oe\ . p c r ' n j
Lj/
diseorediatrteVHDL, 166-171
en.omparacLncon mqiade esrdo,159
Uircuito AMD 2909
descripcn,199-200
disoy p.ogranciande conponenres,
201.208
codiffcado.cs,s?-88
Compardor de rnagnuud,70,?1
Conpilacinde u diseo,ll-l19
Compiidoreslsicos,20
Compoente(.doer, 5),20r,2a6,162.264
Configura.n (cdl8!'.Dn, J?
Coitadore$,101-104
.o esery.fga e'r praleto,101
Conoldores, 15'l-151
lgoritros.lc,15
liseo,162,166
CPLD !asedisposLrivos
lercosprogtamables
secuenciales,
4, 50, 69-75
Decodificadores,
8 l-8 7
BCD a decimal,8J,85
BCU a disF]yde siercsesmetus,85-8?
Dseo jc.rquico,51,197-208,261-2?0
Merodologa.le lisciio,198
Disposirivos
lgicosprosramables,
2,8,11
Dispositivos lgicos pros.amables
cohpl ej os.
2.4,1l -15,21
Eclaconesboolenas,5 1
Etidad (erb),.17.46
declaacinde,40
discrourilizndovectoes,42
diseourilirahdolibrerlrsy paqetes,
44
integracinde, 121-12?
Evetos (onr,96, 100
flip-flop, 94,98
FPGA uasearreglosde conpuetrus progranables
CAL !dsearegLo l)gicoeenrico
Gfua,312,315
ldetificadores,42, ll3
ISRproeramador,
127-J29
LenguajeJe descripcnn
en hardware
VDHL,25,28,37
desventajs,
27.28
en la ctualidad,28
l entaj as,2-27
HDL,25
ce,cin de, 208-210
declaracinde,45
anbienrede desaolb,18-19
canposde aplica.in,2l-24
coh'aasde soporte,28-11,12
hodo dicional de diseo,20,22
Mcrccelds,12,14
Mquinade cstadoASM, 154-159
bloquede estddo,154
nrrqueoe oe.rrun,l ))
diseocon VHDL, 166
j52
indre lrco
MicopGesadorcs,
210-11
prcgramacin
de,211-224,23-2l
Modos,l9
bulet,39
ir,39
rcut,39
tu'39
MuliiplNrB, 75
oros(osrt, 75
tipostsicosestnda7
Nelr,
53
No inpota (dorrcar)oase
valoresno impona,
Novasimulado,120
Objerosde datos,l3l'.135
archivc, 135
constantes,333
'
variables,335
Operadores
atmricos,82
lsicos,3
relacionales,
73
Optimizacin,
323
PALASM,2I
Redes
6ociarivas,294-29?
tusirn(}s,98-100
Repore,
archivode,J22-327
Sem-custom,
3
SeaIGisnl),
54
Snresis,
l2l
Sisrenasecuencial,
9l-94
slrcrono,105
Sisrema
mbebdo,
229.23?
clasiffcacin,
235-236
diseo,2ll-235
Sumadores
?8
tcoloslas de fabrcacin
de circuirosintesradG,3
Tipo de daros,36, 39,40
archivo.Gecod),
arcglo,.l38
br,4A
bit-\)etot,40,42, 43
b@hr,4A
compuesros,336
tOA,:
"""-".*f,
. ..r!::;
escala 13
Paquet(..l8e),
37, 44, l2Z
cuerpodel,3?
declaracin,44
nnen_s446
.rern bit,46
r_dnn,
46,83
PLD@a! dispsitivs i,isico! prosanabls
Prdeso (p@6t, 48, 69
Proerama
de alto nivel (topl&eL), 197, Z, 207
dileodel 198,223,264.26
P'oiecr,3l3
Puenos,
J9
Redesneuronales
arriciales,27.1-279
aprendiajeen las,
'
lsicos,331
ht cer,4A
reales,33?
Unidadsd dieo,32
p.imaias,
l?
ecundarias,l7
Valoresno inpona (n cie),97
Variables,335
VHDL vae lenguajede desripcinen hade
VarpR4, 3ll-312
Instalacin,
li 1-332