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

Para33t!

blecr comuntcactn
con nololro3 pued hacrlo Fof:
L--:I

)-,

@
E]

R.n&ll.nro 180cot. s.. Ju.n

(0155)5561/O!.55l 5231

lto@plrhc!|l!l,com.d

,w,prti.cullul.cm.mr

-,

Gerentedivisional: JavierEique Clljas


C@rdinarlo.le edicinrElisa PecinaRosas
Diseode interiorcs:JosLuis cuenro Hemtudez
Diseode porrda:PerlaAljmdra Lf'ez Rono

Dr. Luis Nio deRiveraOy@bd


PrcfesorInvesgadord ESIME,UniddCulhue
Istirulo Pof tcnicoNacionat
NMSM. Filibrtocorzlez Hemndz
Prcfe$r del Deplo.de InSenie.Induslriaty de Sislemas
ITESM CEM
VHDL: el a depgrhMt sisa n6 dicitales
D@bos rsrados:
O 2002,David Maxiezy Jsica Acal
@2002,GRTJPOPATRIA CIJTTTIRAL,S,A. DE C.V.
bajo el sellode CompadlaEdilorial Conrinenral
Remcimiento 180,ColoniaSanJum Tlihuaca,
DelegrcinAzclolalco, Cdigo postal 02400.Mxico. D.F.
Miembrc de l Cma Nacioal (le la Idusr.ia Editorial
ISBN 970-24-0259-X
Quedapmhibida la reproduccino trrnisin total o pNial del conGnido de la preseteobra en cualesquiera
forDas,seqnelectrnics
o
mecnicas.sin el consertiDientoprevio y por escrirodl ediror.

P.inero edcl: 2002


Tercerareimpresin:2005
Cuara rEinpresinr2006

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

3. Diso lsico combinacional medioteVHDL .. . . . . . . . . . . . . . . . . . . . . . 6l


3.1 Ptoganacinde estructurasbicasmediantedeclracionesconcuentes . l
3.2 Programacinde estructurasb.ica! medianted.claa.ions secuenciales. 9
Ejeccioc
............
. . . . . . . . . . . . . . . . . . . . 89

vi

l23
l23

5. lteeracin de entidadesen VHDL


5.1 Esquemabsicode inresracinde eniidades

. Diseo de controladoresdigitalesmediante cart6 ASM y VHDL


de la miqun.Je e.'.do IASM) ...................
.lEl dlcorirmo
de
6.2 Esnucrura unacartaASM
.3 CartasASM en conparacin con las m,ruinasde estado
.4 Diseo de controladoresnediante cartasASM
o 5 D b e n o d e c " fl a ' { c M m e di anreV H D L .......
Ej e c i c i o s............

. r54

156

... ..

162
t66
180

?, Diseo jerrquico en VllDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197


jerrquicas
..... 198
...........
de dlseflo
deestructuras
T.l Metodologla
la
probtem
y
en
bloques
individuales
de
descomposicin
?.2Anilisisdel
....200
global.
................
estructura
. . . 201
y
programacin
unidades
del
cncuito
de componentes
o
7.3 Diseo
..206
paquete
.......
.....
de un
decomponentes
?.4 Creacin
(Top
programa
.....
.....
20?
dealtonivel
Level)
del
7.5Diseo
..........
.....
.
......
208
unaLibreraenWarp
?.6Creacinde
.225
...
.....
.............
Ejercicios

.......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

E. Palaka: rcrrvada cn VHDL . . . . . . . . . . . . , . . . . . . . . . . . . , . . . . . . . . . . 34?


E Oradorc deffnidocen \,HDL ccgnru otdcn de precedencia . . . . . . . . . . j49
ftdi.

"nltico

. ......,.. .......,
:
:

. . . . . , , , ,351

Acerca de los autores

David GonzlezMaxinezealzsusestudiosde licencianraen la Universdad NacionalAutncmade Mxico, en la carrerade IngenieroMccnico


y electrtinica.Posen el reade comunicaciones
Electricistacon especiaLidad
en
reriormcnteobtuvo el gradodc maestroen ingenieracon "especialidad
la Faculcadde
electnica"dentro de la divisindc estudiosde posgrado,.lc
lngenierade la UNAM. Dento del Insrituto Tcnolgicoy,.le Estudios
Superioresde Monterrey (ITESM), CampusEstadode Mxico, curs el
realiz)
el Diplomado
Diplomadoen HabilidadesDocentesy posteiomcnte
en Microclecrrnicaen el ITESM, CampusQuetaro.Realizsusestudios
dento de la UniversidadAude Doctoradoen el reade micoelectrnica
de TE){ASA&M en
con
la
Unjvcrsidad
Metropoliiana
en
convenio
t)noma
IosEstadosUnidos,desarollandc
comotemade tcsisdoctoral:"El diseode
un microcontroladoNEUROFUZZY",el cual fue considcradode vanguarnacional.Actualmenteesprofesor/investidia en el mbicode investigacin
gador del Insriruto Gcnolgico y de EstudiosSuperioresde Monrerrel',
CampusEstadode Mxico,ascomode la UniversidadNacionalAutnoma
digitales.Combinaestaactividadcon el dede Mxicoen el reaclesistemas
a diversasreas,mcdiantela insarrollode prorotiposelectrnicosaplicables
lgicosprogramables.
tegracinen dispositivos
AlcalJaracsrudiIngenierlaen Compuracinen la Universidarl
Jessica
cle
NacionalAutnomade Mxico y es expertaen e1readc programacin
ha
nivel.
Dentro
del
ITESM,
lenguajes
de
ako
sistemasdigitalesutilizando
puhlicadoel libro "Programacin
en VHDL". Acnralmentees profesora/irNacional
Autnomadc Mxico,CampusArade
la
Universidad
vestigadoa
y microgn, dondeimpartelas credrasde organizacinde computadoras
computadoras,
naci()nales
e intemacioLosautoreshan participadojuntosen congresos
sistemas
difusosy microelectlincr.
nalesen el reade lgicaprogramabie,

Prlogo

Hoy en da, en nuestroambientefamiliaro de trabajonos encontramosrodeadosde sistemaselectrnicosmuy soffsticados.Telfonoscelulares,compu'


porttiles,equiposde sonido,dispositivosde
televisoes
tadoraspersonales,
deiuegointeractivo,enteotros;nosonmsque
estaciones
comunicacionesy
que ha cmbdr''
nueotoestilo
Jel desanollure(nolgiLo
ejempl.,s
alg.rnos
tienenaldevida hacindolocadavezmsconfortable.Todosestossistemas
que
increble
pequeas
esulta
tan
go en comnisu tamao,de dimensiones
pensarque seanigual o mspotentesque los sistemasmucho msgtandes
que existieonhacealgunosaos.
la
Estosavancessonposiblesgraciasal desarrollode la microelectrnica,
para
as
obtener
cual ha permitido la miniaturizacinde los componentes
mayoresbeneficiosde los chips (circuitosintegrados)y paraampliarlas posibilidadesde aplicacin.
La evolucinen ei desarollode los cicuitos integradosse ha venido perfeccionandoa tavsde los aios. Primero,sedesanollaronlos cicuitos de baja escala de integracin. (SSI o Small Scale Integration), despuslos de
mediaraescalade integracin (MSI o Medium Scalelntegration), y posteriomente los de largaescalade integracin (LSI o LargueScaleIntegration), para
continuarcon los de muy alta cscalade integracin(VLSI o Very l-argeSca'
le Integration) hasta llegar a los circuitos integmdosde propsito espec6co
(ASIC).
Actualmente,la gente encargadadel desarollode nueva tecnologla
perfeccionael diseo de los circuitos integados orientados a una aplica'
muy potentesy
los ASIC, lograndodispositivos
cin y/o solucinespecfffca:
qle ocupanun mnimo de espacio.La optimizacinen el diseode estos
chips tienedos tendenciasen su conceptualizacin

xll

La pimeratendenciaes la tcnicade flrlcrsil'rrdesrrl


(Dise()totalmenrca la mcdida),la cual consisrccn clesarrollar
un circuitooaauna aoli|,Lrdn r.pc.rficrnredirn t e
l I n t c A rr, r, rn
d e rr: l). r. 1 .nrn rrln . i" ro rt n , u
lbri. r. rn.c.ig,renlu. pa- rraJi.rorralt,Jr Jr.c.,r.p"rrcr,rnde L,,blea
^
o base,el crecimientoepitaxial,la difusi(indc imFfe:as,la implanracinde
iones,la oxidacin,la focolitograla,
la meralizacin
r 1alimoiezaqumica.
Lr .cgunJarcnJrncia(j, el .lr,,nu.le l,^ A.lr. nr.,r.rene
de una inn \ aJ,,r.rpropue,ra.
quc -ueicrrla rrilr-acrrjn
Jc .ciJo, rorrm rl-le.pree"rablecidase insctadasdentrode un circlLir()irtegrado.Con baseen estaidea
surgila familia de disposirivos
lgcosprogramables
(ltx pLD), cuvo nivel
dc J.n.dadde inregrLr. in
I r, r. n id , , c v o lu c r^ n . rn Jr, rr
, rri. d c l rie mp o .
lnici ,r^nc.,nlo, PAL rArrcalo.L,rrtn,pr.,gramal-1e.1
hu.rr llegral u"ode
1,. CPLD t Dr.po,irivo.
L,tgrco.
lrogramrhle,r '.,m1.ro.rI l,^ FpCA tarreglosde CompuerasProgramables
en Campo),ios cuales dadasu conectivi.
dad internasobrecadauna de susceldashan hechoposibleei desarrolhrde
circuirosintegradosde aplicacinespeclicd
de una f()rmamucbomsfcil v
.conomicr.pral-enefi.
i,' Je 1,,.Ingenirrr5
cnc.rt.lJo.Jr rnrect
ar \l5remaj.
tl conrenid,,
Je..re lrb . \ c e n rJ e n rrH, t ie irr. 1lr
, . ir e . re n p d e
diseo.Nuestroobjetivoes brindaal lcctor la oportunidadde comprender,
manei.ur apli.ar.l lenuajede pr,,grdma.
irn m", Idcro.. fara ;,le lipo
de aplicacurnes:
VHDL.
El lenguajede descripcinen hadwareVHDL es corxideadocomo la
mximahcrramientade diseopo las industiasy universidades
de todo el
mundo,pues proporcionaa los usuariosmuchasventajasen la planeaciny
diseode los sistemas
electrnicosdigitales.
Estaobraha sidopreparada
espccialmentc
paraaquell()s
estudiauces
e in_
genieros
quc deseanintroducirseen el manejode esrelenguajede programa,
cin. El libro se encuentraredactadode una maneamuy claay accesible
para guiaal lcctorpasopor pasoen losprimeroscuatrocapftulos.
paraaque_
xaspersonas
queya tetrganconocinientos
sobreel tema,hemosincomorado
una.eneJe lbru,rcc,,mcnddo,
.un mavorpr,,funJidad
v comple,dr,J.
Uno de hrsobjetivosdel libro esproporcionaral estudiantev al insenieo
, ' dc cmfrrra,
clectrcinrcn
i,rr rrn, furmaficil 1 pr.ti\ a Je inLegr.lDiracton.. drgrral<.
urh-ndoel lenguaj<
de descrip.rn.nhrdware
VHDL. lam.
bin esperamos
motivaral lectorparaquecomienceel desarrollo
e incepracin
Je 'ttemar electrcjnr..r.
i I rav-estelenguaie.
.,,n I vi,icjnv up,rrunrtlJ
de
cecercomomicroemprcsario
en el desarrollodc sistemas
miniarurizados.
los
cualespuedenserfcilmentecomerciali:ados,
y generarasfuenresde empleo
en bcneciode la sociedad.
Estelibro esrecomendable
paraun cursoint(rducroriode VHDL. rantoa
nivel tcnicocomoa nivel universitario
dadoque parainterprerary entender
lo' clercici,
.e
que
|'
rcahzrnucirrarxphcrcrn
.e requiere
como
" "obre "
"cilo
antecedente
un cursobsicode diseolgicoque involucre
el conocimientos

xlll

cide los temasde compuertaslgicas,minimi:acn de funcionesbcxrleanas,


y
cicuitos
secuenciales.
cuitoscombinacionales
que se adquieranen
Paranosotroses importanteque los conocimientos
puedan
ser
trasladatlos
de
manera
inmediatahaciala
la lecturade estelibo
prcticao aplcacin.Poello, hemosincluido alguDosdatosde orientacin
paraque el leclor sepacmoconseguirlas herramienras
d diseoy dnde
conseguftde maneraoportunalos circuitosPLD paraintegrarsusaplicacio,
del prones (vaseel ApndiceA). Tmbinhemosincluidodemostraciones
gramaVARPen el CD que acompaaal libro.

Organizacin del libro


En resumen,estaobraestestructuradaen nuevecaptulosy cinco apnd;
ces.En el captulouno se describede formacualitativael estadoactualde
y perspectivas,
la lgicaprogramable:
susantecedentes,
venlajas,desventajas
que brindanel
ademsproporcionala int'bmacin
efeenea lascompalas
soportetanto en softwaecomo hardware.Estecaptulocs completamente
informativoy su finalidadconsisteen familiaizay adentraral lector en es,
ta eade desarollo.
se presentala
En el capltulo dos (VHDL: sa organidcin
J arquitecturd)
estucturabsicadel lenguajede descripcinen hardwareVHDL y se anailos tipos de
zan los mdulosbsicosde diseo:sus palabasesevadas,
o estilosde diseo
datos,ascomo el manejode las diferentesarquitecturas
empleados
en el desanollode un programa.
En el capltulo tres (Diseolgicocombiut':ionalmedianteVHDL) se ctesy secuenciales
deno
cribe la formade emplcardeclaraciones
concurrentes
individe un prognma mediantcla solucinde cicuircscombinacionales
y
Lrscorlificadores
dualestalescomo los multiplexores,los decodificadoes,
y
sumadores,
entre otros.Es mportanteresaltarqe en estecaptulo en los
no se presentala solucii;nrptimapaaun poblemadado.R)r
subsecuentes
el contrario,cadapoblemase abodadc diferentmaneracon el nico fin
de presentaral lector el uso cadavez mayorde noevaspalabrasreservadas
por VHDL en el entendidoruela mejor vrlucin de un problemase da por
s soloy llegacuandoel lector conocemsy ms formasde programar.
En el captulo cuatro (DiseialgicosecuncalcnnttlDl) se realizauna
llip,flop,egistros
de
cicuitossecuencialcs:
sntesis
clediseodelosprincipales
manejode diagtamas
de estadoetctea.Jbdosellos
corimiento,contadores,
encargadas
de
se analizanpor sepaado
haciendonfasiscn las instrucciones
sincronizar
los eventosque sedesanollanen estasentidadesde diseo.
El captulo cinco (Integracir5n
de entidwJes
en VHDL) dcralla la foma en
que seunen diferentesbkqueslgicos,esdeci! sedescribecmoseintegran
y/o sedentro de una soia cntidad varioscircuitos,seancombinacionalcs

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

VHDL: El artc de p.o$ama sistemd .lLgitalcs

"mono" y "lithos" que significanuno y piedta,respectivamente;


por tanto,
dentro de la tecnologade los cicuitos integradosun circuito monolltico est construidosobreuna piedranica o cistalde silicio que contienetanto
elementosactivos(transistores,
diodos),como elementospasivos(resisteny lasconexionesentre ellos [1].
cias,capacitores),
La fabicacin de los circuitos rnonolticos se basaen los principios de
y diseoque constituyenla tecnologaaltamentedesamateriales,procesos
rrollada de los tansistoresy diodosindividuales. Dicha fabricacinincluye la
prepatacinde la obleao base,el ctecimientoepitaxial,la difusinde impurezas,la implantacinde iones,la oxidacin,la fotolitogaffa,la meralizacin
y la limpiezaqulmica[1].
La inte$acinde sistemas
seha ido superandoa medidaquesurgennuevas tecnologlas de fabricacin. Esco ha permirido obtener componentes
estndares
de mayorcomplejidady que brindanmayoresbenelicios.Sin embargo,el desanollode nuevosproductosrequierebastantetiempo, por lo
cual slose empleacuandose necesitaun alto volumende produccin.
Una forma msrpiday directade integraraplicacions
es medianrela
lgicaprogramable,
la cual permiteindependizarel procesode fabricacin
del procesode diseofuerade la fbicade semiconductores.
Estaideafue
por Hon y Sequin[2] y Conwayy Mead [3] a finalesde los aos
desanollada

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

Los FPGA (areglos de compuertasprogramables


en campo)y CPLD
(dispositivos
programables
lgicos
complejos)ofrecenlasmismasventajasde
un ASIC, slo que a un menor costo;es decir,el costopo desarrollaun
ASIC esmuchomsalto que el que precisara
un FPGA o un CPLD,con la
ventajade que ambosson circuitosepogramables,
en los cualeses posible
modilicar o borrar una funcin programadasin alterar el funcionamiento del
circuito [4].

Categora

Caac teristicas

Diseo totalmenrea la

. Iotal libertad de diseo, pc.o el desaollo requiere tods ls


eapasdel proce$ de fbricacin: preliaracinde la obleo bse, ecimiento epitaxial, dilusin de impureras,implntaci{in
de iones, oxidacin, forolios.afa,metaliaciny linpieza qui'
m ic a t 1l.
los riessosy costos son muy elevados;slo se ju$incan ante
$andes volhenes o p.orecros co resdcciones (rea, velidad, cosun de poten.ia, ctcreG) t41.

Existe ana estuctraresular de disposirivosbsicos(ftturores) prefabricdquc se puedepesoalizar mediante u cone,


queslonecesira
xiomdoespecfico
laslrimasetapddel pde-

El diseoestlimitdoa ls p$ibilidadesde la est.crura


peiabdcaday se ealizcon bascen una bibiiorecade celdasprecaracredd pae cadafamilia de diposirivos[4] .
p.e.
Celdasesrndares

No setbaja con alcunaesFucr!a fija lrefabicaden parricu,


lar,perosl.on biblnfccasde celdasy mdulosprecaactertdos
y eslecicos pata cadarecnoloea.
Liertad de dceo (en tunciDde Ia lacilidadesde la bibliote.
ca); rielo el desdllo xieeun p.ocesode fablicacincompleio

14I.
{CPLD, TPGA).

Se rara de dispcitivos fabncados y revisados qle se pueden pe


snalizar desde el exteno. mediane diveNas rcnicas de proer-

El diseo se basa e bibliorecas y mccanismos esecncos de ma.


leado de fLncimes, miet6 qu su implenenacin ran slo re.
quiere una fase de poghaci:n del disposiivo, que por lo sene.
al realEa el disdot e unos pocos segudosl4l.

Tabla 1.r Gcnoloeasde tbicacin de ciicuitos inreeradG

VHDL: El arrcde pn)srmsistems


dlgirlcs

En la actualidadexisteuna gran variedadde disposirivos


ligicos programables,los cualesse usanpaareemplazar
circuitosSSI (pequeiraescalade
integracin),MSI (medianaescaiade inregracin)e inclusocicuittx VI_SI
(muyalta escalade integracin),ya quc ahorranespacioy redlrcendc mane,
a signilicativaeLnmeroy el costode los diseos.Estosdispositivos.
llamaJu. P LD ttbla 1.2),.cl. q rnO o r, ua rq u l. c ru ra l l, rm f u n c ro n
l
cn
que se encentanordenadoslos elementosintenos.tuc proDorcionanal
dispositivosuscaractersricas.

Dispositivo

Descpcin

Programnrable
Read-OnlyMemLrry:memoriaprograable
de stllolcctura
Programmablc
LogicArray: rreglolgicoprogmable
PAL

PmgramnableAnay Lrgic: lgicade aneglcxprogramables

GAL

Cenerc L'gr. Ajrar: rreAl,,l.Jgrco


lrneriro

CPLD

ComplexPLD: dispositivolgicoprogramable
comple)

FPGA

Field ProgramGate Array: arreglosde lompuerrasprogramblesen campo

Tabla 1.2 Disposirivos


ls,cosrograma[les.

1 l.l Estructuraintema de un PLD


Losdispositivos
PROM, PLA, PAL y GAL estnformadospor arregloso maque
pueden
trices
serfijos o programablcs,
mienrrasque los CPLD y FPGA
seencuentanestructurados
mediantebloqueslgicosconfigurables
y ceidas
lgicasde alta densidad,respectivamente.
La arquirecrumbsicade un PLD estformadapor un arreglode compuerrasAND y OR conectadas
a las entadasy salidasdel dispositivo.La 6,
nalidadde cadauna de ellassedescribea continuaci)n.
a) Arreglo AND. Estformadopor vaiascompuertas
AND inteconectadasa travsde alambs,
Ioscualescuenrncon un fusibleen cadapunto de inteseccin[Fig. l.1a)]. En esencia,la programacindel arreglo

Btado acroalde la lcicaprogramable

consisteen fundir o apagarlos fusiblesparaeliminarlas variablesque no


sernutilizadas[Fig.1.1b)].Obswesecmo en cadaentradaa lascom,
puertasAND quedaintactoel fusibleque conectala variableseleccionada con Ia entada la compuerta.En estecaso,una ve?que los fusibles
fundenn,' tuedenr.,lu.r a programar.e.
'e

x2 =B

X3=AB

re
Figu 1.1 Aeslos AND: a) nopocmmadoyb)proeamdo.

VHDL El d progrmd sireM disirstes

) 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

1.2 EstruuE bsicade PLD.

De acuerdocon Io anterio observemosen la tabla 1.3 la estructura de


los dispositivoslgicosprogramablesbsicos.

Bdo actualde la lcicaproeramable

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.

El reelo leio prorrable


(PAi-) seencuen fomado
por lG rceLc AND ptugrmble
v OR lijo on lsr de slida.

Salida2

Entd2

Salidar
Salida2

Tbl 1.3 Dposiivos lgicosprosamables.

La PROM no seutilizacomoun dispositivolgico,sinocomouna memoria direccionable,


debidoa laslimitacionesquepresentacon lascompuertasAND ffjas.
En esencia,el PLA se desarrollparasuperarlas limitacionesde la memoria PROM. Este dispositivose llama tambinFPLA (arreglolgico
programable
en campo),ya que es el usuarioy no el fabricantequien lo
pfograma.
El PAL se desarollpaa superaralgunaslimitacionesdel PLA, como
ietardosprovocadospor la implementacinde fusiblesadicionales,
que
y de la complejiresultande la utilizacinde dos arreglosprogramables
dad del cicuito. Un ejemplo tfpico de estosdispositivoses la familia
por la compaaAMD (AdvancedMiPAL16R8,la cualfue desarrollada
Devices)
incluye
los
cro
e
dispositivosPAL16R4,PAL16R6,PAL16L8,
PAL16R8, dispositivosprogramablespor el usuario para reemplazar
y secuenciales
cicuitoscombinacionales
SSIy MSI en un circuito.
En la figura 1.3 semuestrala arquitecturainterna del PAL16L8.Cono
por circuitos
se puedeobsevar,
estaarquitecturaestformadabsicamente
(compuertas
combinacionales
AND, OR, bufferstri-estadoe inversores),
los
cualespermitenla realizacin
de funcioneslgicasbooleanas
de la formasuma de productos(SOP).Cada trminoproductoespeclicose pogramaen
el arregloAND, mientrasque en el arregloOR se realizala sumalgicade
los trminosque seenviana las salidasdel dispositivo.

VHDL: Elre de progrM srcmas


digirales

@ u""

Figa 1.3 ArqitcctuartemdcLPALILE.

Btado actuaLde LalgicaprosraDable

1.1.2 Ameglo Lgico Genrico (GAL)


El arreglolgico genrico (GAL) es similar al PAL, ya que seforma con aneglosAND progamable y OR ffjo, con una salidalgica programable.Las dos
principales diGrencias entre los dispnsitivosGAL y PAL radican en que el
p meto es epogramabley contiene conffguracionesde salidaprogramables.
Los dispositivosGAL se pueden progama una y otra vez, ya que usan la
tecnolocla E2CMOS (Ellectrically ErasableCMOS: CMOS bonable elctricamehte), en lugar de tecnologla bipolar y fusibles (Fig. 1.4).

Entrada
1 .---\

\ Salida1
--

Edrada2 c+

E=t

Saljda 2

Enlrada
n r__3

Salida
n

Fisn l.a

Dicnna de bl.oquesdel aeclo GAL.

Programacin de un areglo GAL


A difeencia de un PAL, el GAL est formado por celdasprogramables,las
cualesse puedenreprogramarlas vecesque seanecesario.
Como se observa
en Ia gura 1.5,cadaffla se conectaa una entradade la compuertaAND y
cada columna a una variable de entrada y sus complementos.Cuando se
programauna celda, stase activa mediante la aplicacin de cualquier combinacin de las vaiables de entada o sus complementos a la compuerta
AND. Esto permite la lmplementacin de cualquier funci (producto de
trminos) reouerida.

10

VHDL: Elrre de prcgrama


sbtem,sdigules

figun 1.5 Prosahacin


del disposirilocAL.

Arquitectura de un dispositivo GAL


Con el lin de esquematizar
una arquitecturaGAL, se toma comoejempioel
dispositivoGAL22Vl0 [Fig.1.6a)].Estecircuitocuentacon 22 lnesde entraday suscomplementos,
lo que da un otal ,:le44 lneasde entadaa cada
compuertaAND (estasentradasse encuenrranepresentadas
por las lneas
verricalesn eldiagrama).La interseccinque formanlas lneasde entrada
con los rrminosproducto (lneashorizontales),represenracada una de
las celdasque se puedenprogramarpara conecraruna variablede entada
(r su complemento)a una lneade tminoproductolFig. 1.6b)1,dondees
posibleapreciarla formade obteneia sumade productos.

Estadoacrualdela kgicaprosrmble

1C
11

Fiea 1,6a Arquitecturadcl GAL2IVl0.

ll

t2

VHDL: El are de prosamar sistehs dicitles

rspfessnian las linas

esd laspuertas
AND

l= ec*ac+ ac*e

Fisun l.6b Realikcin de una suna de producto dento de un GAL.

Mactoceldas lfuicas de salida. Una macroceldalgica de salida (u OLMC,


de output logic macrocell) est fotmada por cicuitos lgicos que se pueden
pogramar corrolfuica combinacional o secuencial [5]. Las configuracio,
nes combinacionalesse implementan por medio de programacin,mientras
que en lassecuenciales
la salidaesultade un flip-flop.En la figura1.?seobservala arquitecturade una macroceldadel dispositivoGAL22V10,la cual
de maneta gengralestfomada po un flip.flop y dos multiplexores.

nera 1.7 A.quirecrurde unanadocetdaOLMC 22VtO.

Puedehaberde ocho a diecisisentradasde las compuertasAND en la


compuerta OR. Esto indica las operacionesproducto que puedenefectuarse
en cada macrocelda.El reasombreadaest formadapor dos multiplexoresy

Esbdo actual.le la lsicapiosamable

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

1.2 Dispositivos lgicos programables de alto nivel de integracin

'

Ls PLD de alto nivel de integracinsecrearoncon el objetode integrarma,


yor cantidadde dispositivosen n circuito Gistemaen un chip SOC). Se
por la reduccinde espacioy costo,ademsde ofreceruna mecaracterizan
que incrementanla
jora sustancialen el diseode sistemas
complejos,,.1ado
de operacin.Adems,brndana los diseadores
velocidady lasfrecuencias
la oportunidadde enviarproductosal mecadocon msrapidezy les permiperilricos
ten realizarcambiosen el diseosin afectarla lgica,agregando
sin consumiruna gran cantidadde ricmpo,dado que los
de entacla/salida
en el campode trabajo.
circuitossonreprogramables

1.2.1 Dispositivos lgicos programables complejos (CPLD)


corncr
Un circuiroCPLD consisteen un arreglode mltiplesPLD agrupados
tambinseconoesrosdispositivos
bloquesen un chip. En algunasocasiones
cen como EPLD (EnhancedPLD: PLD mejoado),SuperPAL, MegaPAL,
[6] etc. Se calificancomo de alto nivel rle integracin,ya que tienen una
grancapacidadequivalentea unos50 PLD sencillos.
En su estrucruabsica,cadaCPLD contienemltiplesbloqueslgicos
(similaresal GAL22VI0) conectadospor mediode sealescanalizadas
desde la inteconerin programable(PI). EstaunidadPI se encargade interdel dispositivcr
conectalos bloqueslgicosy los bloquesde entada/salida
sobrelas redesapropiadas(Flg.1.8).

t4

VHDL: Elre dc msranrd sircrnN Jigitrlcs

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\.,.

Figua t.9 BloqueleL.oprcgnmble

Estadoactual de la ieicaprocanable

l5

a) Arreglos de productos de trminos. Es la parte del CPLD que identifica


yel nmepor cadamacrocelda
el porcentajede trminosimplementados
o mximo de productosde trminos por bloque lgico. Esto es similar al
aeglode compuertas
AND programable
de un dispositivoGAL22V10.
b) Esquema de distibucin de trminos. Es el mecanismoutilizado para
distribuirlosproductosde trminosa las macoceldas;
estoserealizamediante el arregloprogramablede compuertasOR de un PLD. Los diferentes fabricantesde CPLD implementanla distribucinde productosde
trminoscon diferentesesquemas,
Mientrasalgunoscomola CAL22VI0
usanun esquemade distribucinvariable(los cualespuedenvariar en
8,10,12,14o 1 productospor macrocelda),los CPLD como la familia
MAX de Altera Corpoationy CypressSemiconductor,
distribuyencua,
to productosde trminospor macrocelda,
ademsde utilizar"productos
que se asignana una o variasmacroceldas.
de trminosexpandidos",
c) Mactoceldas.Una macroceldade un CPLD est configuradaintrna,
mentepor flip-flopsy un control de polaridadque habiliracadaafirma,
cin o negacinde una expresin.Los CPLD suelentene macoceldas
de entrada/salida,
de entraday ocultas,mientasque los PLD slotienen
macroceldasde entrada/salida.
que contieneun CPLD esimportante,debiLa cantidadde macoceldas
do a que cada uno de los bloqueslgicosque conformanel dispositivose
que contiene.Potlo gene,
expresanen trminosdel nmeode macroceldas
ral, cadabloquelgicopuedetenr de cuatroa sesentamacroceldas;
ahoa
bien, mientrasmayorseala cantidad,mayoserIa complejidadde las funcionesque se puedenimplementar
1.2.2 Arreglos de compuertas programables en campo (FPGA)
ls dispositivosFPCA sebasanen lo que se conoce como arreglos de com,
puertas,los cualesconsistenen la partede la arquitectuque contienetres
(CLB), bloques de
elementosconffgurables:
bloqueslgicosconfrgurables
y
(lOB)
y
entada de salida
canales de comunicacin [7]. A difeencia
equivalende los CPLD,la densidadde los FPGA seestablece
en cantidades
tes a cieo nmerode compueas.
Poradentro,un FPGAestformadopor arreglosde bloqueslgicosconffgurables(CLB), que se comunican entre ellos y con las terminales de entrada/salida(E/S) por medio de alambadosllamadoscaales de comunicacin. Cada FPGA contiene una matriz de bloques lgicos idnticos, po lo
generalde foma cuadrada,conectadospor mediode lneasmetlicasque
corenverticaly horontalmenteente cadabloque(Fig.1.10).

16

VHDL: El artedc poetumar


sbtems dreutes

Bloques

I
D

Bloquesde
E/S
------'!

tr" tr" !" !"tr'!


Fig. l.lo Arquitecturabsicade un FpcA.

En la figura1.11sepuedeobservaruna arquitecturaFpGA de la familia


XC4000de la compaaXilinx. Estecircuitomuestraa detallela configuracin inlerna de cadauno de los componentes
principalesque conformanes,
re dispositivo.

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.

En un dispositivoFPGA, los CLB esrnordenadosen arreglosde marri(Programmable


cesprogramables
SwitchManlr o PSM), la marizseencarga de dirigir las salidasde un bloquea otro. Lasterminalesde entraday salida del FPGA puedenestarconectadasdirectamenteal PSM o CLB, o se
puedenconectarpor mediode vaso canalesde comunicacin.
En algunasocasionesse puedenconl ndir los dispositivosde FPGA y
CPLD,ya que ambosutilizanbloqueslgicosen su fabricacin.La diGrencia
entreellosradicaen el nmeode flip,flopsutilizados,
mientrasla arquitecrura del FPGAesrica en registros.
La CPLD mantieneuna bajadensidad.En ia
tabla 1.4sepresentanalgunasotrasdiferencias
entreuna y otra aquitectuta.

l8

VHDL; El arre de proErmar !i6tm6 disirales

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)

Tbh r.4 fferencid entre dispo6itiv6 lgicospto$mbles complejos(CPLD) I tos aneglos


dc compuertasprosaubles en cpo (FPGA).

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).

Fisun 1.13 Henamimrd necesiasen la prcsEmcin de PLD.

ErrLlac(ulde la le(a p,sBmable

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)

Geado rD la compaJAdvhced Mic.o Devi.


cc (AMD)
Desarcllado rinicmente parr plicacionescon
dispcirieos PAL
Acepta el fotuaro de ecuacn,nesbooleanas
Urilia cualquie cdito que grabc en formaro
ASCII

OPAL (Optinil PAL lhcge, lenguajc


de optimacin para reglos proghhables)

Desarolladopor Ntnal Setuiconducros


Se aplicaen disposirivosPAL y GAL
Fomaro pan sarlensu,je de mquinasde es.
do. ececiones booleaMsdc distinosniveles,ta.
blas de verdd, cualquier conbinacin ene
eIar
Disponible e lesin estudiantil y p.ofesional
(OP A LhTOP A LP To)
GeneE ecuacionesd diseno patiendo de una
rablade verdad

PLPL (Pro$amable lgic Prerhhing


Lnsxace: lecale de pro$mcin de
lcrcaprocanable)

C.eadopor AMD
Inoduceel conceptodejedrqud en susdileos
FoDar6 mltiples (ecuaciones
knleanq tablas
dc verdad,deeramasde estady lascombinacio.
nesenees(osl
Aplicacioes en dispositivosPAL y GAL

ABEL (Advanced Boolean Expresio


LaDsuee:lensuajeavanzado
de expresio.
nesbooleanat

Creadopor Dara I/O Corporatio


ProcEnacualquierripode PLD (Versin
5.0)
Prcpo.cionatres difeenresfotuarrf de enr.ada:
ecuacionesbooleanas,tablsde ve.dady diacranb de esrados_
Escatalocadocomo un lecuaje vatuadoHDL
(rengurjede descripcinen hardware)

CUPL (Conpiler Univenal ProeEmmable


Losic: conilador univesal de lcica
prosramable)

Creado po. AMD lam desarollo de dsec


cohplejos
Presenauna rotal independenciadel dispositivo
PtueFma cualquierripo de PLD
Faciliala seneracinde desipcioneslgicd de
alto nivcl
Ai igtralque ABEL, mbin escralogadocoho
HDI-

Tabla 1.5 Descnpcind. compiladoreslsicosparaPLD.

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.

Mtodo tradicional de diseo con lgica programable


La maner[tradicional
de discarconlgicaprogmable,
Fartede la representaci(in esquemticadel circuiro quc se requiere realizar y luego clefinela
solucin del sistemapor el mtodo adecuado (ccuacioncsbooleanas,ablas
de verdad, diagramasde estado,etc.). Por ejemplo, en la figura 1.14 sc observa un diagrRrnaque representa a un circui&) construido con compuertas
lgicas AND y OR. En este caso se eligi cl mtodo de ecuacionesbooleanas para repesentarsu funcionamiento, Runqre sc pudo usar tambin una
tabl de verdad.

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.

[tado acrualde la lgicapogmable

2l

En la 6gura 1.15seobservala pantalla principal del programaPALASM,


en el cual se compilr el diseo de la ffgura 1.14 con el ffn de ejempllffcar
la memdologlaque se debe seguit

I@t PDSfi.
E
(tsie
Pnt1i6f3

<"> - Fdi6

I f1

positi

Fisu. l.r5 Pntaaprincipl


dePALASM.
La forma de intoducir el dileo se muestm en el listado 1. Ntese que
las palabrasresirvadaspor el codrpilador se representancon letas negitas.

D.cacin de pim d fuda/slida

;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.

V HDL:E l r r teJ r F r,!rJ m rr.n rm J c (rl c \

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).

Figura l.16 Implementacinlinal del diseoen u PLD.

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

v la sihbologi uiLalla paa descn una caesoia de frncioncs,


para rodos los cohpihdei
lgicos exisFnFs

Estadoactuldela lercaprogamble

23

1.4 Campos de apcacin de la lgica programable


La lgicaprogramable
es una herramientade diseomuy poderosa,que se
aplicaen el mundo industrialy en proyectosuniversitaios
en todo el mundo. En la actualidadse usandesdelos PLD ms sencillos(comoel GAL,
PAL, PLA) como reemplazosde cicuitosLSI y MSI, hasta los potentes
CPLD y FPGA,que tienenaplicaciones
en reascomo telecomunicaciones,
multiprocecomputacin,redes,medicina,procesamiento
digitalde seales,
samientode datos,microondas,sistemasdigitales,telefonacelular,filtros
digitalesprogramables,
entre otros.
En general,los CPLD son recomendables
en aplicacionesdondese requie.
ren muchosciclosde sumasde productos,ya que puedenintroducirseen el dis,
positivoparaejecutarseal mismoempo,lo que conducea pocosretrasos.En la
actualidad,los CPLD son muy utilizadosa nivel industrial,ya que resultafcil
converlr diseios compuestospor mltiplesPLD sencillosen un circuito CPLD.
Por otro lado, los FPGA son ecomendablesen aplicacionessecuencia,
les que no suponengrandescantidadesde trminosprcducto. Po ejemplo,los
FPGA desarolladospor la compaa ATMEL oliecen alta velocidad en
digitalesde seales(DSP) y
cmputo intensivo, aplicacionesen procesadores
en otras fasesdel diseolgico, debido a la gran cantidad de registroscon los
que cuentansusdispositivos(de 1024a 6400). Estolos haceidealesparasu uso
en dichasreas.
Desarrollos recientes
Existen desarollosrealizadospor diversascompalascuyo funcionamientose
basaen un PLD; por ejemplo,la fgura 1.17ilustrauna tarjetabasadaen un
FPGA de la familia XC4000 de Xilinx C-orporarion,Esredesarrollopermite el
procesamientode datosen paraleloa alta velocidad,lo que reducelos problemasde orocesarnientode datosintensivd.

Fisurar.r? Ssrenabasado
en unFPGA.
r Fuenred ilotucin, htp://ww{.ampmico.con

24

VHDL: El ait Je prosnnr sncmas


Jlqrles

En la figura 1.18se muesrraota aplicaci(inrcalizadaen un dispostivo


CPLD de la familiaFIexlOKde Altera Corporarion(nivelde intcgracinde
7000compuertas).La funcinrle estatarjcraes permitirdivcrsasaplicacionesen tienpo real,comoel filcradodigiraly muchasotraspropiasdel canpo del procesamiento
digitaldc sealest.

fig

l.l8

EjeNplo Je un dcir lsico poernbr (u,Inq,).

Comoya semencionl,el campode la lgicaprogramable


seha extendido
en la industriaen losltimosaos,ya quecompaas
dc nivelintemacionalintegrano dcsarrollan
lgicaprogramable
en susdiseos(veala tabla 1.6).
Product. desnollado,.on lgicaprcgramable
Andrh C.huhins (to!!
htrp/trse.ids.net-rrndr.k.

hdcsd.rer diqiialc\ Je sexlcs(DSf)


C.muncciono dilnler
r,c.rxdor6 dc uJn, r rdeo

lrt4r/lhone.inteL,n.o!cod.Lsr.l
ItlLlcm d. t \1,{ J
Aud,., vL.o, adquni.in de dtriosvpro.lsrienn,

Je

ArLi.rcNncs nnlitar.s: Cirn)grilii, s.euidd n..nunu.n,nesi f, orc. o .spr.lrr$.


Red.t .fh.iorer
en |nro..l$
tcP,'lt
lvluliniedn, Qrli.sn
J Audr^lJco
AFlicffnD$.n
ncnl!)o eJ
Digit,lnil.'cs,

Cn$ dc \iJe. {llMblrsle.)

httri/,]nsrnctconl.o.uk/-newhor/rdcr
tuercs Fmlel(r de.omuni..nres Fri
I)ercn Se0i.e Sesmens

Ibl 1.6 Conpaiasqueincoaor lsicap)srnrblee susliseos.


a Fuenredeinlorncln:hrpr/r{^was. conr

PC

Di\e. de ni Lcrolr(r.sdc\ .onrlejos


DFosr f tcl..oruni.i.i.ne\, DSIr
e dbciros !r..nol
Ddrral
^Fli.acn)nes

E r J , , r c r u l J e h 1 , , r Kpr ! L r r J m b l e

t{

1.5 La lgica programabley los lenguajesde descripcin


en hardware (HDL)
de la cecicntenecesidad
de iDtgrarun mayonmero
Como consecuencia
nuevasheade dispositivos
en un solocircuito inregrado,se desarrollaron
qu
integrar
sisiemas
de mayor
auxilian al ingenieroa
mientasdc diseo
los
complejidad.Estopermitique en la dcadade los cincuencaaparecieran
(HDL)
pahardware
como
una
opcin
dc
diseo
lenguajes
de descripcincn
Estoslenguajesalcan:aelectnicoselaborados.
a el dcsarrollode sistemas
ron mayordesarrollodurantelos atssetenta,lapsocn que se desarrollaron
vaiosde elloscomo IDL de IBM, TI,HDL de Tlxas Instrumcnts,ZEUSde
GcneralElectric,etc., todosoicntadosal reaindustial,ascomo los lcnguajesen cl mbito univesitaio(AHPL, DDL, CDL, ISPS,etc.) [8]. Los
mienprimerosno estabandisponibles
fuerade la empresaque los rnanejaba,
cre
tras que los segundoscarccande soportey mantenimientoadecuados
y
permitieransu ulilizacinindustrial.El dcsarrollocontinuti en la dcadade
los ochentasurgicronlenguajescomo VHDL, Verilog,ABEL 5.0, AHDL,
etc.,considerados
lcnguajesde descripcitinen hardwareporquepermitieron
abordarun problemalgicoa nivel funcional (descripcindc un problerna
sloconociendolasentradasv salidas).lo cual facilitala evaluacinde solucionesalternativasantesde inicia un diseoderallado.
de estoslenguajcsradicaen su caUna de las principalescaracterGtics
pacidadparadescribiren distinosnivelesde abstaccin (funcional,trans,
fcrenciade registrosRIL y lgicoo nivcl de computas)cierto diseiio.Los
nivelcsde abstraccinseempleanparaclasificarmodelosHDL segnel grado de detalley precisinde susdescripciones
[4].
ls nivelesde abstraccindescritosdesdeel punto de vista de simuladcl circuiroueJcnd . f n rr' e c . ' rn r. ig u r.
.r ciny
"rnre.i.
Algortmico: se refierea la relacirnfuncionalentre lasentradasy salidasdel circuiroo sistema,sin hacerreferenciaa l ealizacinfinal.
Transferenciade registros(RI) Consisteen la pticindel sistcma
en bloquesfuncionalessin consideara detallela realizacitinlinal de
cadabloque.
I-gicoo de compuertas:el circuito seexpresaen trminosde ecuacioDeslgicaso de compuertas.

1.5.1\HDL, lenguajede descripcinen hardware


En la actualidad,el lenguajede descripcinen hardwaremsutilizadoa nique aprecien
vcl industrialesVHDL5 (HardwareDescriptionLanguage),
5 Fuentede inf..nrn, hta,,'/Nv.fsa c.n

26

VHDL. Elnc de prosmm


rsrem Ll,s dtes

la dcadade los ochentacomo un lenguajeestndar,capazde soDorta


el
proce:ode di.eode sisrema.
elecrnlLos
co.pl.o...rn prop,"d"J.,p"rn
reducirel tiempode diseoy los recursostecrrohgi.o...q.,e.ijor. El D"or.
ramenrode Defen'de t"Lado.Unrdo..reel l"ngrr" VHDL.o.o p)rt"
del programa"Very High SpeedIntegraredCircuits,,(VHSIC), a parr; del
cual sedetectla necesidadde contacon un medioestndarde comunica_
cin y la documentacinpara analizarla gran cantidadde darosasociatios
parael diseode dispositivos
de escalay complejidaddeseados
[9]; es tlecir,
VHSIC debeentendese
comola rapidezen el diseRode circuirosiltegrados.
Despusde vaiasversionesrevisadas
por el gobiernode los EstalJsUni
dos,industiasy universidades,
el IEEE

;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).

1.5.2 Ventajas del desarollo

de circuitos integrados con \ufIDL

A continuacinseexponenalgunasde lasventajasque representan


los circuirosintegradoscon VHDL:
Noacn formal. La programacinen VHDL cuentan con una nota_
cin que pemitesu usoen cualquierdiseoelectrnico.
Dsponibilidadpblica. VHDL es un esrndarno sometidoa parente o marcaregi,rrada
alguna.por Io que cualquier
empre"a
o instrru.in pueJeurili:arlasin resrriccione..
AJem.,ddoque el IEEEl,
mantiencv documentd.
extte la garanra
de errbilrJj
v.ooorre.
Independenciatecnolgicade diseo.VHDL
Ji".,i prrr,ooo."e
tdr di\ercdstecnologra.
de di,erto(pLD, FPGA,ASIC,eLc.)c.,ndrstinta funcionaldad(circuitoscombinacionales,
secuenciales,
sncro_
nos y asncronos),a fin de satisfacelas distintasnecesidades
de
diseo.
Independenciade la tecnologfa y procesode fabricacin. VHDL se
creparaquefueraindependiente
de la tecnologay del procesode fa_
bricacindel circuito o del sistemaelectnico.EI lenguajefunciona
de igualmaneraen circuitosdiseados
con tecnologaMOS, bipolares,BICMOS, erc.,sin necesidadde incluir en el diseoinfomacin

ktado actual de l lcica p.oermable

(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.

En Europala situacines simllar,ya que en nuestrosdlasla mayorlade


del ramo lo ha definidocomo el lenguajede referencia
las grandesempresas
y mantenimientode
en todaslastareasde diseo,modelado,documentacin
de
usuarios
de VHDL en Euel
nmeto
De hecho,
electrnicos.
los sistemas
ropa es mayorque en EstadosUnidos,debidoen granparte a que resukael
lenguajemscomnen la mayorade los consorcios

1.5.3 Desventajas del desarollo de cicuitos integrados con VHDL


Como se puedeobservaVHDL presentagrandesventajas;sin embargo'es
que muchosdiseadoes
necesariomencionartambinalgunasdesventajas
consideranimportantes:

28

VHDLj El arte de prograur istehas drguates

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.

1.5,4 VHDL en la actualidad


La actividadque se ha generadoen torno a VHDL es muy inrensa.En
mu_
chospasescomoEspaasehan crdadogruposde trabajoairededor
de clicho
lenguajey serealizanperidicamente
conferencias,
reuniones,etc.,dondese
presenranrrabajostanro en EstadosUnidos(en el VIUII
VHDL lnternartt>
nal User's Forum)comoen Europa(VHDL Forun for CAD in Europe),
as
como en el congresoEur,VHDLcelebradodesde1992110l.
Lr tali.in.rci,,neurope d
e n rl e , t u rrroJ c . . , " rd " , , _ r, e l le n g u rle. e
canalizaa trar,sdelproycctoESpRIll encabezado
por SIEMENS_NIiDRF
En et pr(ryectoparticipanprcticamentetodaslas grandescompaas
eu('
peasdelscctorclectrnico,cornoANACAD,ICL, pHILLlpS,Tl y
THOM_
SON-CSf;adems
de diversasuniversidades
y centosde investisacin.
Orras
empresas
dedicadas
a la microelectrnica
se han ido adaptandJpocoa poco
al lenguaje.Inclusoen JapnestteniendouDagranaceptacin,
no ()bstante
que cuenrancon un lenjuaje
esrnddrpropiollamadoUDL,rI.
El procesode escandarizacirn
del VHDL no ser.letuvocon la primeraversindel lenguaje(VHDL'S?), sino que ha conrinudocon h n;eva versin
(VHDL'93) y constantes
acrualbaciones,
mejorasy rnetodologas
de uso,En,
tre estasa,:liciones
o actualiraciones
secncuetrtrauna muy impotanterla ex.
tensinanalgica(10?6.1),que permirela utilizacinde un lenguajenico
ertodaslas raeasde especilicaciD,
simulaciny sntesis
de sistemas
electrnicosdigitales,anaigicoso mi\tos.

1.6 Compaasde soporG en hardwarey software


Existendiversascompaas
internacionales
que fabricano distribuyendispositivoslgicospogramables.
Algunasoliecenproductoscon ."r".t".rti.^.
generales
y orrasintroduceninnovaciones
a susdispositivos.
A continuacin
se mcncionanalgunasde las msimporcanres,

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

VHDL: El arede ptugamar


sisrehas
digiales

Potentesherramientasde softwarecomo MAX+PLUS II, que sonrta


todas las familiasde dispositivosde Altera, ascomo el soltwareestndar compatiblecon VHDL.

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.

Futuro de la lgica programable


Debido al augeactual de la lgica programable,no es diflcil suponerque
se pretendemejoraa futuro las heramientasexistentescon el ffn de extender su campo de aplicacina ms reas.Algunas compaasbuscan
mejorar la funcionalidade integracinde suscircuitos a fin de competir
con el mecadode losASIC. Estomejorarfael costopor volumen,el ciclo
de diseov se disminuifael voltaie de consumo.
que sepretendemejoraresla reprogramacin
Otra caracterGtica
de los
circuitos,debidoa que su implementacinrequieemuchosrecusosfsicos
y tecnolgicos.Por esta azn se busca cambiar las metodologasde diseo
para incluir sistemasreprogramablespor completo.
Algunosdesanolloscuentancon memoiaRAM o microprocesadores
integtados en la tarjeta de programacin.La tendencia de algunosfabricanteses integraestosrecusosen un circito.

1t

VHDL: El afte dc prcsahar sbrehas dreitalcs

Compaia

Productos de hadware
FPGA:FamiliasAPEX 20K, FLEX
IOK,LE\ 6000,MAX 9OM,MAX
?000,MAX 50m y CLASSIC

Chip Exp.e$

LPGA (La*r Pros'amcare


Ary) : CI3000, CX2000y
QYH500
LPLD (Lse.prce$ed lgic
Device):CL?000,CL?000E,
CL?OOOS
PLD:GAL22VIO
CPLD:Ulnal?0cr0,FLASHJToi

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

WARP, SopotaVHDL. Ve.ilos y

FPAA (ield Pos.ammble Analog


Aray),MPAA020
EasyAnaloe,heramientade diseo
ntetacliva
exclusiva
paradieocon
FPCA: FamiliasMACH4 y
MACH5A

Qick Logrc

xilin

ftbh

PAsic (Asic Pocrmable)y la


fmilia QL de FPCA.

MACILXL:VHDL,- Veilog

Quick Works:heranient de
soportepan VHDL, Veilogy cap.

CPLD:FamiliaXC9500y

xc9500xl

FpcAsFamiriaxc40oyxclzc.
X'iti.Hl1$ilil:";j];i:ffi:.

r.? Conpaasde Sopo.rede ti')sicapogamabre.

Figura 1.20 DposLrivosl)sicosprosramables.

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

VHDL: El ane de progmmarsisreMs disitales

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]

DelgadoC., LechaE., Mo M., TesLl., SnchezL.: Introduccin


a
losbnguajes
YHDL, Verilogl UDL{. NovtcaNo. l12, Espaa,199J.

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.

2.1 Unidadesbsicasde diseo


,''

La estnrcturageneralde un programaen VHDL estfomatlapor mdulos


o unidadesde diseo,cadauno de elitx compuertopo. un c,r,runtu,Je.l.claracionese instruccionesque definen,.l.r..ib.n,
u,ralio,, y
evaL(ran
el comportamientode un sisremadieiral. "rt.u.t.,.o,,
tri.ren . in.u ripo.Je rniJrde.dc dlertocn \ HDL: declaracin
dc entidad (entirydeclaration),arquitectura(archirecture),
conffguracin(con_
tigxration), declaacindel paquete (packagedcclarationfy cuerpo
del
paquete(packagebody). En el desarollrde progmasen vHlf_
i".a".,
utilizarseo no tresde los cinco mtidulos,pertosd. cllo, (".rridudy
u.q.,i.
tectura) son in.lispensables
en la estructuracin
de un ooerama.
..L ..Jr.lr,,ionc.dcenridaJ,a q r, e rc r. " n lg u r c i. , n . e , , , n " lJ . rrn u n i.
dxd ci.fedi,erlnprimarias.
nr.nrra.q rel rq u ile c f |rr,
r e l c u e rp ,d c l . , queteson unidadesde diseosecundariasporquedependen
de una entijaLl
primariaque sedebeanalizarantesque ellas.

38

VHDL: El a(ede prcemnsisenFs


dieitales

Entidad

Una entidad(mtity)es el bloqueclementalde diseoen VHDL, Lasentida.


(sumadores,
dessontodosloselementos
eiectrnicos
contadores,
compuertas
flip-flops,memorias,multiplexores,
etc.) que formande maneraindividualo
en conjuntoun sistemadigital.La entidadpuederepresentarse
de muy dipor ejemplo,Ia ligua2.1a)muestrala arquirectura
versasmaneras;
de un sumadorcompletoa nivel de conpuertas;ak)ra bien, estaentidadse puede
epesenta
a nivel de sistemaindicandotan slolas entradas(Cin, A y B) y
saiida:(SUMA y Cout) del circuito:6gura2.1b).L)eigualforma,la inregra(mediosumador)puederepresentase
ciD de variossubsistemas
mediante
puedenconectarse
una entidad[Fig.2.1c)1.Lossubsistemas
internamente
entre s; perc la entidadsigueidenrilicandocon claridadsusenrradasy salidas

c)

Ficu 2.1 a) l)escipcir a dvel de cohpudts.


reresenrativod la entdd.

b ) Smbolo tuncionl ,le l entirlarl; c ) Diagama a blqus

VHDL: su ognircin y rquitecura

39

2,2.1 Puertos de entrada.salida


Cada una de las seales
de entraday salidaen una entidad son refeidas
puerto,
como
el cual es similar a uria teminal (pin) de un slmbolo esquemtico. Todoslos puetosque son declaadosdebentene un nombre, un mo.
do y un tipo de dato. El nombte se utiliza como una forma de llamar al puerto; el modo pemite denir la direccin que tomar la informacin y el tpo
deffne qu clase de infomacin se transmiti por el puerto. Por ejemplo,
respectoa los puertosde la entidad que repesentana un comparadorde
igualdad(Fig.2.2),lasvariablesa y b denotanlospuertosde entraday la variable c se efiere al Dueto de salida.

Fisur 2.2 Conparadorde icaldad.

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

VHDL: Ei ane de prosrana rsiehas dieihles

2.2.3 Tipos de datos


Los tipossonlos valores(datos)que el diseadorestableceparalos puetos
dc entraday salidadentrode una entidad;seasignande acuerdocon lasca,
racterGticas
de un diseoen particular.Aigunosde los tiposms utilizados
en VHDL son:
Bit, el cual tienevaloresde 0 y I lgico.
Boolean(booleano)que definevaloresde verdaderoo falsoen una expresin
Bit_vector (vectoresde birs) que reptesentaun conjunrode bits paa
cadavariablede entradao salida.
Integet (entero)que representa
un nmeoentero,
Losanterioessonsloalgunosde los tiposque manejaVHDL, perono
son los nicos.r

2.3 Declaracinde entidades


Como semencionen ia seccirln2.1(Unidades
bsicas
de diseo).los mdulos elementalesen el desanollode un programadentro del lenguajede descrip,
cin en hardware(VHDL) sonla entidady la aquitectura.
La declaracinde una entidadconsisteen la descripcinde lasenrradas
y salidasde un ctcuito de diseoidenti6cadocomo entiry (enridad);es
deci la declaracnselalalasterminaleso pinesde entraday salidacon que
cuentala entidadde diseo.
Por ejemplo,la formade declarala entidadcoespondiente
al circuito
sumadorde la figura2.1b)se muestraa continuacin:

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

Ltdo 2.1 Declaa.inde la entidadsunadorde l fisn 2.lb).


I En el apn'lceA solistan los riposde dar,s exnrentescn VHDL.

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

VHDLi El dre de pogramarsisrems d8tles

La declaracin de la entidad serade la siguienteforma:

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

El primer caacter siemprees una lea

Correcto
suma4
SUMA4

matlculs o minscula.
El segundocaocter no puede ser un suin

S_4bits

54 bi$

Clear#8

Clear 8

Dos suioes juntos no son permiridos


Un idenricadorno puedeutilizar

pae La4cnruh de ideniticadores.


Ibbl 2.1 Especiffcaciones

VHDL cuenta con una lista de palabrasresewadasque no pueden fun(veael AondiceB).


cionacomoidenti6cadores

| 2.4 Diseo de entidades mediante vectores


La entidadsumadorealizadaen el cicuito del listado2.1, usabits individuales,los cualesslopuedenrepresentar
dosvaloreslgicos(0 o l). De manerageneral,en la prctcaseutilizanconjuntos(palabras)
de variosbits;en
VHDL laspalabrasbinariasse conocencomovectoresde bits, los cualesse
consideran
un grupoyno como bits individuales.
Comoejemploconsidrense los vectoresde 4 bits que semuestrana continuacin:
=
=
=

lA3, A2, A1, A0l


[B3, 82, 81, B0l
[s3, s2, s1, s0]

y arquirecrura
VHDL: suo.sanizacin

43

En la figura2.4 se observala entidaddel sumadoranalizadoantes,slo


que ahoralas entradasA, B y la salidaSUMA incorporanvectoresde 4 bits
en suspueros.Obsrvese
cmola entradaCiny la salidaCout sonde un bit.

^,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

Una vezque seha establecido


el ordenen que aparecern
los bits enunciadosen cadavector,no se puedemodificar,a menosque se utilice el comandoto:
0 to 3 (0 hasta3)
que indicael ordende aparicinen sentidoascendente.
Describaen VHDL la entidaddel cicuitosumadorrepresentado
en la figura 2.4. Observecmo la entradaCin (Carryin) y la salidaCour (Carryout)
seexpresande formaindividual.

44

VHDL. El'ir dc procmrjreDs J,g,ntes

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));

DeclaeIa enridaddel cicuitolgicomostadoen la liguradel ejemplo2.1,


medianevectores,
Solucin
1 D e c l a ra c i n
d e e nci dades medi anr_e vctores
2 e n ti ty
c i rc u i to i s
(a ,b . tn b i L vector(3
3 p o rt
dow to 0);
4
F r o u t. b a r));
5

2.4.1 Declaracin de entidades mediante libreras y paquetes


Una pateimpotanteen la programacin
con VHDL radicaen el usode li.
brerasy paquetesque permitentleclarary almacenarestructuraslgicas,
seccionadas
o completasque faciliranel diseo.
Una librerao bibliotecaes un lugaral que se tiene accesoparautilizar
la. unidale.de d,ro predeLermrnaJa.
por el iabricanre
de l h.rrrmienru
(paquete)y su funcinesagilizarel diseo.En VHDL seencuentrandefini
dasdosliberasllamadasieeey work (Fig.2.5). Comopuedeobservane,en
la libreraieeeseencuentrael paquetestd_logic_l164,mientrasque en la librerawok sehallan numeic-sd,std-arirhy gatespkg.

E-& ie.
i 6@ 'roJoI*-trec
E-& worlr
@ nriec sd

'61 * *m'

'@ srtespks
6'@ ar
:'----Ftu 2.5 L.nenLdo.le
lsliber'sieeey work.

VHDL: s! oryani:acntny aquitectua

45

En una libreratambinse permitealmacenarel resultadode la compi_


La li_
lacin de un diseo,con el fin de utilizaren uno o variosprogrames.
progranas
que
brerlawork es el lugar establecidodondese almacenanlos
ei usuariova geneando.Estalibreda se encuentrasiempepesentcen l
cornpilacinde un diseoy los diseosse guardanen clla mientrasno sc
especifQueotra. La carpetaora mostradaen la figura 2.5 rcpresentaesta
situacin.
Un paquetees una unidad de diseoque permitedesarrollarun programa en VHDL de una maneragil, debcloa qu contiene lgorinos
(sumadores,restadores,conladores,etc.) que ya ienen
peestablecidos
optimizadosu comportamiento.Por esta azn, el diseadorno necesit
pasoa pasouna nuevaunidadde diseosi ya se encuentraalcaacteizar
macenadaen algn paquete en cuyo casobastacon llamarlay especificarlaen el programa-. Porlo tanto, un paqueteno esmsque una unidad
y subprograprogramas,
componentes
de diseoformadapor declaraciones,
sttl-ltgc),cmmas,que incluyenlos diversosriposde datrx (bit, booleanc,
pleadosen la pogramacinen VHDL y que suelenformar parte de las
en software,
heramientas
Porltimo,cuandoen el diseoseutlizaalgnpaqueteesnecesariollamar a la librerlaque lo contiene.Paraestoseutilizala siguientedeclaracin:
libary ieee;
Lo anteriorpermiteel uso de todoslos componcntesincluidosen la li
breraieee.En el casode la librerade trabajo(work), su trsono tequerela
library, dadoque la carpetawork siempreestprcsenteal desadeclaracit5n
rollar un diseo.

2.4.2 Paqu.etel
.

(estndalgico 1164)que se encuentra


El paquetestd_logic_116,1
en la libreaieeecontienetodoslos tipos de dato que suelenem'
plearseen VHDL (std_logicvector,std_logc,ene ofros).

El accesoa la infomacincontenideen un paqueteespor mcdio de la


sentenciause, seguidadel nombrede la liblera y del pqueteirespectiva-

usenombre librea.nombepaquete.all;
por ejemplo:
l64.all;
usereee.stJ_l,,gic_l

46

VHDL: El atede prccranasisrems


digiales

En estecasoieeees Ia librerla,std logic 1164esel paquetey la palabra


reservada
all indicaque sepuedenusartodoslos componentes
almacenados
paquete.
en el
El paquetenumeric_std define funcionespara reali"aroperaciones
entre diferentestiposde datos(sobrecargado);adems,
los tipospue,
den representarse
con signoo sin ste(veael ApndiceA).
El paquetenumeric_bit deffne tipos de datos binarios con signoo sin
ste.
El paquetestd_arithdefinefuncionesy operadores
aritmticos,como
igual (=), mayorque (>), menorque (<), entre orros (veael Apndice A).
En lo sucesivo,
seusarna menudolaslibrerasy paquetesde los programasdesarrollados
en el texto.
En la ffguraE2.4semuestrael bloquerepresentativo
de un circuitomultipli
cadorde 2 bits. La rnultiplicacinde (X1, X0) y (Y1,Y0)producenla salida

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,.

VHDL: su oganacin y arquitectua

47

La granventajaque presentaVHDL paradefiniuna aquitecturaradi,


ca en la maneraen que puedendescribise
los diseos;esdeci,medianteel
algotmo de pogramacin empleadose puede descdbir desdeel nivei de
compuertas
hastasistemas
complejos.
general,
De manera
Iosestilosde programacinutilizadosen el diseo
de arquitecturas
seclasiffcancomo:
Estilofuncional
Estilopor flujo de daros
Estilo estuctural
El nombreasignadoa estosestilosno es importante,ya que es tareadel
diseadorescribirel comportamiento
de un cicuitoutilizandouno u otro estilo que a su juicio le seael msacertado.

2.5.I Descripcin fu ncional


En la figura 2.6 sedescribefuncionalmenteel circuito comparadorSe tata de
una descripcinfuncionalporqueexponela fomaen que trabajael sistema;
es decir, las descripcionesconsideranla elacin que hay entre las entradasy
las salidasdel circuito, sin importa cmo estogani"adoen su inteior Paa

sl
sl

a:bentoncesc=l
a+bentoncesc=0

rc
Figra 2.6 Descipci fucionL de u cohpdador de Lgualdadde dos bits.

El cdigoque repesentael cicuito de la figura 2.6 se muestraen el


listado2.2:

48

VHDL: El alte de proermarscicns drstles

E j e n L p l o d e una descri pcrn

2
3
4
5
1l
'1

funci onal

use

i e e e . s L d l oqi c_l 164.atL;


e n tl y
comp is

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 ;

Listdo 2.2 AtuLtcctura fucionJ.le n conlaado de ieual.Ide 2 bis.

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.

VHDLj s oganizaciny rquirecra

49

Como sepuedeobservar,la descipcin funcional sebasaprincpalrnenlascualespermiten


te en el usode piocesosy de declancionessecuencialcs,
modelarla funcincon rapidez.

gmplo 2,5

del tipo if.then.elseel funcionamientode


Descibamediantedeclaraciones
E2.5con baseen la tablade verdad.
mostrada
en
la
figura
la compuertaOR
AD

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 ;

2.5.2Descripcinpor flujo de datos


La descripcinpor flujo datosindica la foma en que los datosse pueden
secuenciales
transfeide Llnaseala otra sin necesidadde declaraciones

50

VHDL: El ate d procranar sisremd d8Lrales

(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).

1 --Ejmpto ate decLaracin de la enradad de


u conparador
2 libary
ieee;
3 uae ieee. srd,Logic_1164. atI,
4 entlty
comp is
5 port (a,b:
t bi!_vecror
(1 Clownto 0);
6
c,
our bir);
1
8 architctur
f_alaros of conp 1s
9 bestn
10 c <. ,1, wba (a = b)
etse ,0,;
11 de 1 cuando a=b si no vate 0)
12 ed f-da!os;

(asisna a C et vator

Littado 2.3 Aquitecr!apor nujode daros.

En VHDL se manejan dos dpos de declaraciones: secuenci4les


y concuttenes.
Una declaracinsecuencial
de la form" if.th..r,el"" .e h"llu .r.1li..
2,2 d:.,Ir: d:l.or3ceso.donJe.u ejecucindebeseguiru"
.rd;";;;
li9: ta prdid
evrtr
de la lgrcadescrira.
En cambio.en unJeclaracrn
concufrente estono es necesario,
ya que no importael ordenen que se ejecutan.
Tl es el casodel listado2.3.

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

VHDL: so organiacin y arquirectra

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

b) Descripcin por flujo de datos mediante ecuaciones booleanas


Otra foma de describirel circuito comparadorde dosbits esmediante la obtencinde susecuaciones
booleanasgura2.?. En el listado2.4 se observa
estedesarollo.

aO
b0

a1
bl

Fi8ta 2.7 ) Enridad del @mpamdode dos bits. b) Compamdorde dos


bit! reatado con
ompueras,

El interior del circuito comparadorde la ffgura2,?a)puederepresentar_


sepo mediode compuertas
bsicas[Fig.2.?b)]y estecircuitoDuededescribirsemedianrela obtencinde susecuacione"Lnoleanas.

52

VHDL: EI rre dc l]oetunDrsircnas digales


1 -- Ete mp L o d e d c ctaraci .
2
libraly
ie,-e;

.te ta enti dad

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;

stdo 2.4 A.quircctuadet,rm deftuj. dedt6 cosrn,idopormenj


dc
ecucnmes
booteeu:.

La formade flujo de datosen cualquierade susrepescnaciones


descri_
be el caminoque los datossiguenal settransferidos
de lasoperaciones
efectuadasentelas entradasa y b a la sealde salidac.
Ejemplo2.7

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;

VHDL: organizcin varqtriktur

53

2.5.3 Descripcin estructural


Comosunomheindica,una descripcinestructuralbasasu cornportamiento cn modelcxlgicosestablecidos
(compuertas,
sumadores,
conteclores,
etc.).
Segnvercmosms adclante,el usuariopuededisearcsrasestructurasy
guardarlas
parasu usoposreioro tomalasde iospaquetcscontenidosen ias
libreasde diseodcl softwareque seesturilizrndo.
En la figura2.8seencuentraun esquema
delcircuitocomparadorde
igualdad cle2 bits,el cual estfomadopor compuertas
nor-exciusivas
y una compuertaAND.

Fisua 2.8 Represenr.ciqucmri.a de u cohparador de I bis.

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

VHDI-: Elaite de proeramrsistemas


dirihlej

En el listado2.5 semuestrae1crdigodel programaque representa


al esquemade la figura2.8.

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.

En el cdigosepuedever que en la entidadnadamssedescibenlasentradasy salidasdel circuito (a, b y c), segnseha venidohaciendo(lneas3


a la 6). I-oscomponentes
xnor y and no sedeclarandebidoa que seencuen'
tran en el paquetede compuerras(gatespkg),el cual a su vezestdentode
la librerade rrabajo (work),lnea 7.
En la lnea B se inicia la declaracinde la arquitecturaestructural.El
algoitmopropuesto(lneasl1 a 13) describela estructurade la siguiente
forma: cada compuertasc maneja como un bioque lgico independienre
(conrponcnre)del diseooriginal,al cual se le asignauna variabletemporal (U0, Ul y U2); la salidade cadauno de estosbloquesse manejacomo
una seallnea 9, signal x (x0 y xl), las cualesse declarandentro de la
arquitecruray no en la entdad,debidoa que no represenrana una teminal (pin) y slo se utilizan paa conectai bloquesde manerainterna a la
entidad.
Por ltimo, podemosobservarque la compuerraand recibelas dos sealesprovenientes
de x (x0 y xl), ejecurala opeaciny asignael resultado
a la salidac del ccuito.

VHDL: n, orsntacinr tuireciura

ticoplo 2.8

55

Realiceel programacorespondienteen VHDL parael circuiromostradoen


la ligura E2.8.Utilice descripcinestructural.

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

Comparacin entre los estilos de diseo


El estilo de diseourilizado en la prograrnacindel circuito dependedel diseadory de la complejidaddel proyecto.Porejemplo,un diseopuededescribirsepor mediodeecuaciones
booleanas,
perosi esmuy extensoquizseams
apropiadoemplearestucuas
jerrquicas
paradividirlo;ahorabien,si serequieredisearun sistemacuyofuncionamientodependaslode susentradas
y salidas,es convenienteutilizala descripcinfuncional,la cual presentala
ventaja de requeri menosinstruccionesy el diseadorno necesitaun conocimientopreviode cadacomponentedel crcurto.

56

VHDI. ElJdc de reJmr \bems d,c,tdtes

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

2.6 Sealeculesde los siguientesidentificadoresson corectoso inco_


rrectos,colocando
en lasllneasde respuesta
la letra,C'o,l', respec_
tivamente.
llgico
con trol
Pgina
Registro
2Suma_

Desp_laza
N_lvel
S uma#
Res _ta

2.7 Declarela entidadparala siguientecompuertaAND

+c

VHDL su orcaacin y arquitecrra

2.8 Declae la entidad para el siguientecicu1to.

B+

2.9 Declae la entidad para el circuito que semuestraen la 6gura Utilice vectoes.

2.10 Declae la entidad pa el siguientecitcuito que utiliza vectores

:)ct0:31

2.11 Descdbaqu esuna libreraen VHDL.


2.12 tndique el signicadode la siguienteexpesin:
use ieee.std-logic-l 164.all;
2.13 Declate la entidad del circuito multiplexor de 4:1 mostradoen Ia figura utilizando la librea: ieee.std-logic-l 164 all;
EO
E2

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

VHDL, El a.rede p.ogramar


sisrenstisiales

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.

3.1 Programacinde estructurasbsicasmediante declaraciones


concurrentes
concurentessccncuentranlueComo semencionantes,lasdeclaraciones
proceso
de flusuelenusarsccn las,:lescripcioncs
ra de la declaacinde un
-v
jo de darosy estructural.Esrosc debea que en ura dcclaracirinconcurcrfe
ya quc cl resultadoptra
no importael ordenen que se escribanlas seales,
determinadafuncinscrael mismo.

62

VHDL: El arrede poclamr


sisrems
diLlales

En VHDL existentrestiposde declaraciurcsconcurrenres:


Declaraciones
condicionales
asignadas
a una seal(when,else)
Declaraciones
concurrentesasignadas
a seales
Seleccinde una seal(rh.select.when)

3.1.1 Declaracionescondicionalesasignadasa una seal (when.ele)


La declaracinwhen.elseseutilizaparaasignarvaloresa una seal,deeminandoasla ejecucinde una condicinpropiadel diseo.paraejemplifica
consideremos
la entidad mostradaen la figura3.1, cuyo funcionamientose
delineen la rablade vedad.

tf-F?mol*,r"o"r
00
001
010
011
10
101
110
r11

0
0
1
0
0
1
1

Figu6 l.r Declaaciones


when.else.

La entidad se puede programar mediante declraionscatdiciotules


(when,else),debidoa que estemdelo permitedenirpasoa pasoel comportamientodel sistema,segnsemuestraen el listadoj.1.
1Ej e n p to c o mb i n a ci onat bsi co
2 ltba:"y
ieee;
3 u s i e e e . s td l o q i c _1164.aII;
4 e ti ty
ra b ta i s D orr(
5
a ,b ,c :
l s td Loqi c;
6
f. o u r srd_toqi c);
8 arcbttctur
ejempto
9 begin
10
f < = ,1 , l rh en
11
' \' n h a
12
' 1 ' l rh e n
13
' l ' rh e r

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.

Diso lsi@ combinacionlmedianre


VHDL

63

,,.#ffi:Ii::T::l,ll;:i*"i[::Ji]
jjl]5*il,"il:::1

ejecucininicial de una u otra condic

.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,.*,

La ventajade la programacinen VHDL

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"'

l" .t'.,* i."-

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

xnor son tri


,.,.p,".o
"d,,nt"
r,"u,":.;;;;:i'.T',::;".1'fl
.':Tli::L:1,.'t-omo ejemplodel usode operadore:

.. gulente
comparacin:

lgicosen VHDL. ob.ervemosla

"i

&

VHDL: El a.t de prormar i5te5dicitales

En VHDL

Ecuacitr

r:a+b.c+

y= Mt(^d6al @ t.td)

Una funcin F dependede catro vairabbsq C, B, A, que representanun


nmero binario, donde A es la variable menos signifrcativa. La frlncin F
adopta el valor de uno si el nqero formado por las cuato vaiableses inferior o igual a 7 y supeio a 3. En casocona.io la funcin F es cero.
. Obtenga la tabla de vedad de la funcin F y ealice el pogramacorre!.
pondente en V,HDL (utilice estructura del tipo when.elee y opeadoes
lgicos).
Solucin
Pimero analizamosel erunciadoy estnrc+urarnosla siguiente tabla de vedad segunlas especifiqagionesindicadas.

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:

Diso lsico @mbiacioal medianteVHDL

65

2 1E ieee, std_Loqic_1164 . aU;


3 atlty
fucion
i Dort (
4
D,C, B, A: i! s t d logic ;
5

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

' A' '

1.1.2 Declaraciones concurentes asignadasa seales


En estetipo de declaracinencontaremos
las funcionesde salidamediante
la ecuacinbooleanaque describeel comportamientode cadauna de las
que ahorael circuitode la ffgun 3.2 cuentacon tres
compuetas.
Obsrvese
salidas(x1, x2 y x3) en lugarde una.

e
d

x3

I
Ftn

3.2 Cicuito lgrcorealdo con compuerra".

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) ,

Listido 3.2 Declaacioesconcurenres*imdd a seales.

VHDL; El ne de progrM sisremsdisirales

Dada la tabla de verdad mosrradaa conrinuacin, halle las ecuacionesX. y.


Z, de la forma sumade productosy pogrmelasen VHDL, utilando declaracionesconcurentesasignadasa seales.

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

Obsrveseahoa la forma de implementar estasecuacionespo medio de


operadoreslgicos.

2
3
4
5
6
7
8

r. ieee. srd_loqic_1164 . aU;


tIW
c@rerEe
1. Dot (
A,B.c t srosic;
X .' t,z , .rt s t
oqi c);
d
@trenre;
tcblt
cb. a_conc of concursre
t
D.gt
(E l a dE t
B dd
c) a ( adr
B dc)
10
(Dr
cr
a d
Bd
c ) c (A d
Bd
c):
(D t Add
B d c) a (A d c
B t c)
12
c (a rd B d ot c):
( l Add
B a4
C ) cr {d A d
B dd
C)
!4
o ! (Dot A .d B !d c);

Diseolsio combinciml nediante VHDL

TI

1.1.3 Seleccin de una eal (with,selecw{ren)


La declaracinth.select when se utiliza para asignarun valor a una seal
con baseen el valo de otra sealpeviamenteseleccionada.Por ejemplo,en
el listado correspondientea la ffgura 3.3 se muestrael cdigo que repesenta
a estetipo de declaracin.Como puedeobservase,el valor de la salidaC de.
pendede las seales
de entadaseleccionadas
a(0) y a(l), de acuerdocon la
tabla de verdad correspondiente.

F'sD J.l Tabl.de verdad.

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;

C diso VHDL coEespondientea l iabla de verddde h nca 3.1.

Serequieredisearun cfucuitocombinacionalque detectenmerosprimos


de 4 bits. Reallcela tabla de verdady elaboreun programaque describasu
funcin. Utilice instruccionesdel tipo rvith - select- when.
I tl u"" de l pdlab
r*lH
'.senr.l

* rpli. debern la rdn

ulripl.rore d..re (prrulo.

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

,_F '<: '1_' !-

.0001.,

,, 't. ?t" :p010., .


,f
i ba

' 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 ,.

"

Di*o Lsicocmbicional mediani. VHDL

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.

El cdigo correspondientea sta entidod de dfueoe muestaen l


llstado3.4.

70

VHDL: Ll ane de prograrurs*em^ dLguale.

I -Ejenplo de declaracin de 1a enrialad compaiado


2
@ttw
cdp 1E
I
Dort (a,b: h bir-vecr(
1 ddtro
O);
4
c : d t bi r);
5
al cop;
6
alcblt.ctle
fucio@l
of cdip ts
7
bgl
I
(a,b)
compaa: Dle.ss
9
b6gln
10
i fa = b tb n
Ll
c < =' !' ;
12
.1sc
13
c < = ,0,;
14
oat lf,
15
@d Drocs corFaa;
16
@al fFcional;

ktdo

3,4 Declancin *cueocial de un omparador de taldad de d6 hits.

Notemos cmo en este tipo de ejemplosslo son necesariasdos condi.


ciones por evaluar,peo no en todos los diseoses asl. Por tanto, cuando se
requierenmscondicionesde control, se utiliza una nuevaestuctura llamada elsif (si no,si), la cual permiteexpandiry especiffcar
prioridadesdentro
deJproceso.La sinraxisparaestaoperacinei
if ]a cndXion I secrrmplethen
realizoopera.inl;
elstf Ia cutdicim 2 secwtbl the
realiZdoperorilm2;
else
reaLzaoperacin3;
end i4
la cual se interpreta como sigue:Si (if) la cryndiiht I es vedadera,entonces
(then) seejecutala operacin
I, si no-si (elsifl seevalala condrcrn
2 y si es
verdaderaentonces(then) seejecutala oprdci.n
2, si no (else)seejecutala
operacin3.

3.2.1 Comparador de magnitud de 4 bit$


La formade utilizalas declaraciones
secuenciales
se ilustraen el diseode
un comparadorde dosnmerosde 4 bits, ffgua3.5a),En estecasoel sistema tiene tres salidasque indican cuando uno de los nrimeroses mayo igual

D!.rlo hsicocombancional
m.diantcVHDL

7l

o menorqueel oto. I ffgua3.5b)reprcs.ntael mismocomparador


dema.
nerasimoliffcadautilizndo[a notacinvectoial.

e3
2
e1
aO
b3
@.
DI

bo

Erur 3J .) Cdnpdo dc I hrs b) CoDpaador.prc!do con vectoni de { bit.

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),

d.1 bir urilirndo el ..tilo tutumI.

','

VFTDL:El are de prcsntur si6temsdisirals

Dsee tm comparadorde dos nmerosA y B, cadanmero formado por dos


bits ( A1 A0 ) y ( Bl BO) la salidadel comparadortambin es de dos bits y
estepresentada
po la variableZ ( Zl Z0 ) de tal formaque si:
A =B e n t o n c e s Z = 1 1
A <Be n t o n c e s Z = 0 1
A >B e n t o n c e s Z : 1 0
La tabla de verdad corespondientea este comparadores la siguiente.
AI AO BI BO

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

Las ecuacioneslgicasteducidas mediate un mapa de Karnaugh para


21 y Z0 sonlas siguientes:
zl = A oA I +B O + A l B O + A O B O + A O B l
zo= A - A t+Bo B l + A O B I + Og o + , q l g O

El circuito epesentativode estecomparadores el siguiente,ffgura E3.4.

81
Fisu! E3J D6cripcin tuncinal d u coftpaEdor de igualdaddc do, bits.

Dielo lgk @mbimcioml medite VHDL

13

La programacinde estecornpador se muestraleld$ftnc'Bstado.

,..

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

.Irl fA < Btb e


z < ' " 0 I" '

.!rll

dal tf t
Doct!r!,

Operadoes relacionle. Los operadoresrelaciorialsse usan pan evaluar


la igualdad, desigualdado la magnitud en unieixpresin. I-os operadoresde
igualdady desigualdad( = y /: ) sedeffnen en todos los titlos de daros.I-os
y >=) lo estn slo dentro del tipo
operadoresde magnitud (<,<:,>
escala.En amboscasosdebe coruiderarseque el tamao de los vectoresen
que se aplicarn dichos operadoresdebe ser igual. En la tabla 3.1 se muestran estosoperadoresy su signiffcado.
Operator

Signtficdo
Igual
Diferenre

'.

M.noio lgal
Msyor
l'{a}bt o igual

Tbr 3.r OpradoGrelacionls.

74

VHDL: El arre de pogramrsiltems digitales

3.2.2 Buffe tri.estado

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.

El listado anterio se basaen un proceso,el cual se utiliza para describit


los valoesque tomar la salidadel registro (buffer). En esteprocesose ind!
ca que cuando se conrma el habilitado del cicuito (enbl),el valo que se

Di*o l8l@ conbiMctmal medinre VHDL

7S

encuentraa la entrada del circuito se asignaa la sahda;si por el contrario no


seconfima en,la salidadel buffe tomanun valot de alta impedancia(Z) .
El tipo std_logicsopotta estevalot ----aligual que 0 y l-. A estosedebeque
en el diseose prefferautilizar el esrndastd-logic-1164 y no el tipo bit, ya
que el prirnero esmsverstil al proveervalotesde d]!d imMtrci.ay condicio'
nes de no tnpoftG), los cualesno estnconsideradosen el tipo bit.

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)

Fisu 3.? ) Multiplem de 4 birs. b) Multiplexor con vectos.

En el listado 3.7 semuestala descipcinmediantewith-select rvhen del


multiplexor dual de 2 x 4. En estecasola seial s detemina cul de las cuatro
sealesse asignaa la salidaz. lrs valoesde s estndadoscomo "00", "01" y
"10"; el trmino othes (otros) especiffcacualquiercombinacinadicionalque
pudiera presentarse (que incluye el "11"), ya que esta variable
seencuentradefrnidadentro del tipo std-logic-vecto el cual contiene nueve

76

VHDL: El rte de p.ogramasistehasdquales

valoresposiblesque la heramientade slntesis


reconocecomotipos lgicos
estindaes.
tlbr6!r'
ieee;
u Ee i e e e .s rd to q i c 1 1 64.aI1;
sllty
nu is port{
a ,b ,c ,d : 1 s .:d to q i c w ecrorl l doMto 0t;
s : h s l d l o s i c vecror(l atotE to 0);
Z : c u ! s rd _ to g i c- vecLor(1dkw o !);

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;

V u l ,p l c ro rJ c -.,.,o .,noe.tj ,,.,.,..w i rh.refe.r.$hen.


I

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- .

D F e ol os(o.^mb,ra,h n" l mcJbnr'V H D L

77

estostiposde datosno tienenun signilicadoevi,


Comosepuedeapreciar,
denreparael drseal.'r,peros lo tienenen la compilacindel programa.Por
ejemplo,cl cstndarno especifica
algunaintepetacinde L y H, debidoa
que la mayoa de lasherramientas
no los soportan.bs valoresmetalgicosr
('U', 'V', 'X', '-') carecende sentidoen la sntesis,
peola heramientalos usa
en la simulacindel cdigo.Como semencionen la seccinanteio,el uso
de 'Z' entaaun valor de alta impedancia.
J.2.4 Descripcin de multiplexores mediante ecuaciones booleanas
parael
booleanas
En el listado1.8 se muestrauna solucincon ecuaciones
multiplexordual de la figura3.7.

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

a o t(s (1 )) and nol (s(0)))


n o t(s (1 )) ard s(0)) c' r
d
s (r) a d r ct(s(0)))
s (1 ) rd s(0));

or

z ( 0 ) < = (a (0 )
(b (0 )
(c (l )
(d (0 )

o t(s (.1 )) ad no!(s(01))


n o l (s (1 ))
d s(0)) or
c
s 1 1 ) l d r ct(s(0)))
s { 1 ) rd s(!));

nd
!d
a rd
a rd

Listado J.8 MLtiplexoescntocon ectracionesbooleas

I Un dr, meral,rcico comre en lG vale dei,l


pqueree$nlr IEEE I164

r 1 tLFo s.Llsi.

los nRhs e$n conFni{16 en d

7t

VHDL: El arte de progrMr sirma6 disiras

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)

Trl,l 1.3 Tablade vedadde un .icito suladoi

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.

3,8 ) D.gra a bloquesdc un ncdio sumdoqb)


Mcdio surqdo lsio.

Di*o lBicombiraciq'al

cdiste VHDL

79

El programaen VHDL querepresenta


estemediosumadosemuestra
en el listado3.9,
ieee;
l!r.ttr
ut
ieee. s !d-logic-1164 . .11 ;
dtlly
Lsu l. ,cEt (
A,a: l sl{1osic,
S:UMA,Cou!: dt sEd-loqic);
rchltactutr
an_s,Jn o n_sun La
b.q1
S U MA < = AN B
couE <= A to B;

Urtdo 3.9 CiBod n mdo 3mado

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

1.9 .) Sumadoicornpl.to; b) Tabld nrdd d.l mcdro!rdor.

t0

VHDL, El.dre de posramasireM disitales

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

le ealizacinflica del cicutoic basaen la utilizacinde compuertasI


or-exclusiva
comosemuesrra
en Ia frgura ).10a). C,omopuedeo*"o"
I
en la fuura 3.10b), doscicuito mediosumadores
puedenimplementarun I
sumadorcompleto.
I

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

Deno lsico ombisidl medianrc\aHDL

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

VHDL El ane de eoenmat stemasdieirales

{ su vez,stees un buen eiemDlooara realimarel


maeio de seales(sgnal). En la ffgura].1 |
ob,ervaclmo fosacaneosde salida
rC0. Ct y C2) se
"e
encuentran

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.

Operadoresaritmticos. Como su nombre


indica, los operadoresaritmticos permitm realaopeacionesdel tipo
ait,rrtiao,aoao aumr, aartu,arr,,,ltiplicacin, disin, cambiosde signo, valor
absolrto y conca#;;:';;

1T{rili*ilrxffij:{;
ffiffi{ffiI::i
srma
Resta
Divisin
Multiplicacin
Table 3.4 OpehdoresaritmticosutiladG
en VHDL

Diseo lcico conbinacio.al hedinte VHDL

83

Como ejemplo,analicemosel diseode un circuito sumadorde


4 birs
que no considerae acareode saiida(listado3.12).

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.

En el lisrado3.l Z seintrodujoel paqueresr dnrh,el cual_ cornoya


se
menclon_ seencoentaen la libreade trabajouork. Estepaquetepermi_
te el usode los operadores
aritmticoscon opeaciones
ealizadas
encrearreglosdel tipo vd logrcoecror;esdecir,dado
lue denrrodel paqueteestndar
(std_logic_1164)
no estndefinidoslos operadores
aritmticos,es necesaio
usarel paquetestd arith.
El usode los operadores
existentesen VHDL, ascomo los tiposle datos paralos cualesse encuentrandelinidos,se incluyeen el apndice
B.
1.2.6 Decodicadores
La programacin
de circuitosdecodificadoes
sebasaen el usode declaacionesquepermitenestablecer
la relacinentreun cdigobinarioaplicadoa las
entradasdel dispositivoy el nivel de salidaobtenido.
En esraseccinse pesenrandos tiposde decodificadores:
el tlecodlfi
cador BCD-decimaly el decodilicadorde BCD a siersegmentosjya que
consideramos
que son dos de los ms Lrtilizados
en el diseolOgicoio-bi
nacional.
Decodificado BCD a decimal
En la ligura3.12podemosobservarla entidadde diseocorrespondiente
a un
ciicuito decodiffcadoq
el cualconviertecdigoBCD (cdigoje binarioa de_
cimal) en uno de los diezdgirosdecimales.
por lo generalestosdispositivos

84

v HDL E l r ' r c J r p
' rtu m{ n d ' r\,l ,e rJ l *

se coDocen como decodilicadoesdc 4 a l0 llneas, ya que contenen cuatro


Lncasde enrraday 10 de salida.

x2+

BCDDECO
1
2
13
24
45
86
7
8
I

b
d
I

s
h
i
j

Figr 3.12 Decdlificadorde BCII a d.cimal.

El programa que describeel comporramicnro de la entidad de la figura


3.12 se encuentacn el listado1.11.
Cono se puede aprecia,el cdigo correspondientea esle circuilo sc basa en la ejecucirll de un procesoen quc se establecenlas condicionesquc sc
evalan para activar cada salida de acuedo con eLvalor binario conespon.
diente. Para lines prcticos se asign(ia cada salida un nombre a fin de facili
tar su identificcin.
A manera de ejernplo consideremosel valor de la entrada = 0010, l.r
cual correspondeal dgito decimal 2. Ntese cmo la condicin que deter.
mina la signacindel valor cvala prinero la condcin dc ir y sj Ia confir'
ma, asignaa la salidac el valor correspondienteal tlgito l1ecmal2.
Por otro lado, se puede ver que al inicio Llelprocesose ,:leclarirrontodas
las salidascon un valor inicial de'1', estoiue con elfin de aseguque permanecierandesactivatlascuando no estuvieran en evaluacin.

-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

Diirc lsi.o dbiscio

m.dint VHDL

t5

f < = ' L' . ;


g < = ' l' '

<= '\';

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!

) < = ' A' ;


cmat tf;

ndo

3.13 Descripctnde un de<.dcadqle BCD a decir,,I.

Dccodificador de BCD a display de siete segmentoe


En,la ffgura 3.13) se lfiuea un cicuiro decodifrcado{,el cual aceDtacdi.
go 8CD en su6enrradesy proporcionasalidcpaces
de excitarun display
de sietesegmentosque indica el d{girodecimal;eleccionado.En la eura
LI lb) seobservala disrribucinde los segmentos
denno del displav

a)

Fiu

b)

3.ll ) D(od(do| BCD a *k *cmenro(.b) Cnfsuern del


oprayoe rete sementos,

86

VHDL: Elte deprosramar


sistenas
digiales

cuentacon una en,


Comosepuedeapreciala entidaddel decodificadot
(A0,
A1, A2, A3), y sietesalidas
trada llamadaA, formadapor cuatrobits
(a,b, c, d, e, f, g) activasen nivel bajo,lascualescorresponden
a los segmentos del display.En la tabla3.5 se indicanlos valoreslgicosde salidacorresa cadasesmento.
Dondientes
"lf' CdieoBCD

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

Tabla 1,5 Valo.cslsi.6 corespodietes a cda secnento deldisFlay.

La funcindel prograrnacuyocdigoseexhibeen el listado3.14utiliza


declaraciones
secuenciales
del tipo case-whenque,como sepuedeaprecia
basadas
en el valoi que puedatomar
eiecutanun conjuntode instrucciones
una seal.En nuestoejemplo,se describede qu manerase manejael decodificador de acuerdocon el valoi que toma la sealA. Paralines ptcticos
se declaarontodaslas salidascomoun solovectode bits (identificadocoal valod0, la,
nro d); de estaformaseentiendeque la salidaa coresponde
othe$, comoya seindial valor dl, etc. Por otro lado,la palabrareservada
que puedetomar en la sntesisla salidad.
cr,deffnelos valoresmetalgicos

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!

g te o ' 0 0 0 0 " = > d


td re d " 0 0 0 1 " = > d
* tH
"0010" => d
{iaD "0011" => d
" 0100" => d
liben "0101" => d
{ d " 0 1 1 0 " = > d
itre

$ te o " 0 1 1 1 " = >


I'hed "1000" =>
{tH
" 100:L =>
stan others =>

d
d

"0000001";
"1001111";
"0010010,,;
"0000110";
"1001100";
" 0100100
";
"0r00000";
" 00rt1110";
,,0000000";

d
d

"0000100";
"L\1,1171"
;

Listado.l.r4 Usode declaracion.s


case.when.

En la instruccin case-when podemosobservarel uso de signaccns


do,
bies(=; < = ), lascualespermitenque una sealadopteun determinado
valor de acuedo con el cumplimiento de una condicin especificada.Po
ejemplo,en nlrestrocdigo(listado3.14)estasinstucciones
seinterpetande
la siguientemanera:cuandola sealA sea"0000",asignaa la seald el valor
"0000001";cuandoA = "0001",asignaa d el valor"1001t11",etc.Cabemencionarqueen la simulacindel programaestaasignacin
serealizasimultnea.
1.2.? Codiffcadores
En estaseccinse presentala forma de programarun circuito codicador el
cual como seobservaen la ffgura3.14, posee10entradas(cadauna correspondiente a un dgito decimal)y cuatro salidasparael cdigobinario de ,{ bits BCD.

a0
Enlrada

a2
a3
a5
ao
a8
a9

Ficura 3.r4 Codificador


de decihla BCD.

d0
dl slida
d2 BCD
d3

88

VHDL, EI arte de procraM ssiemasdquales

El programaque descibeal circuito de la figura3.14, se muestraen el


listado3.15.Como sepuedeve el puertode entrada"a" sedeclaracomoun
vectorparaindicarla numeacindecimaldel 0 al 9, mientrasque la salida
binaiase realizaa tavsdel vector "d". Asimismo, observeque la programacinse realizutlizandodeclaaciones
del tipo if.then-elsif.

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.

Diselsico conbin.ionl mediantcVHDL

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)

VHDL: El ane de procamr sisrea5disirales

Decodtiadotu

3.tz Se requiete un programaen VHDL

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

3.13 Con baseeo el programadel lisrado3.6 (Sec.3.2.2)que describeun


buffer triestado, elaboreun progamade un circuito tiestado octal
comoel de laoffguras3.13a)v 3.13b),
G

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

Dlco heiaocorbiEdtul mdiartc VIIDL

91

en VHDL queproduzcun decodiftadobir3.15 Diseeun progxam


rio de 2 x 4 comoun circuito demultiplexorde cuaro salidasy un
en el diseo:
bit, Coniderela6sigientetespecitcaciones
paaseleccionauna salida.
a) El cicuito dbercnedoe,ealcs
b) El circuito 5lotendunaleal de entrda.
perala habilitacindel circuito.
c) Impleitenteuna qalEN.a\BLE

92

VHDL: El artcde prosrharsistmas


diq,rales

Bibograffa

Fl.,vdL L.: Fr,nd.rmcn",


d. Sr.cnr,
Dglaics.
lrcnriceHll. 1998.
]
Tere,I 1.,lrro1)., Olcoq. v Villart.: \ HDL Lrngrt4rL,knda.r
Je t;ec, I
E/e,rrollrcu.
M.Crw.Hrll. tqqB
I
M:rrrrczC. D.rid. Alcl le*rca:Dire, di \rvem,. LmAeb,
a :qc, Jel I
Lng,aictl Des,,1p,inn
tn HardttrcVHDL. XIX C,,ng.. .rnr. ". I
rl AcJ.mrc,,
de lngcnitriatlecrronita.Mexr..,.i997.
I
Klo,* ( ., Cemvt.: H,J.rcDercrpronL,onsuasc
anJh alh..r,,on,
Sp, I
itftation.m,,Jcllng.
{.)r/r,drunanJr}nrhe".o/,u,,,"/".;,,^i. ,.rrk;,. I
Chdpmdn& H rlt, tooT
I

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""""'.
|

M:r,,r,\rLand.naarI-'.A er,Je. VHDL.Kluuer l.,J.mt

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-

4.1 Diseo lgico secuencial


Un sistemasecuencialestformadopor un circuirocombinacional
y un elementode memoriencargado
de almacenar,:1e
formatemporalLrhistoriade1
sstema.
Enesencia,la
salidadeunsistemaseclrencial
no slodependcdelvalorpresentede iasenrradas,
sinotnbin de la historiadcl sisterna,
segnseobserva
en la figura4.1.

94

VHDL: El arre de pogmar sirteasdigirates

Enlradas

Fi8uE 4.r Bflctura

de un sisrena secuencial.

Bsicamentehay dos tipos de sistemassecuenciales;


slncronosv asfn_
cronosiel comportamientode lo. primerosse encuenrasincronizaomediante el pulsode reloj del sistema,mientrasque el firncionamientode los
sistemasasncronosdependedel ordeny momentoen el cual se aDlicansus
sealesde entrada.por lo que no requierenun pulsode relo paia sincro.
mzaf susacciones.

El elemento de memoria utilizado indistintamente en el diseo de los sisre,


mas sncronoso ancronosse conoce como flip.flop o celda binaria.
La caracrerGdca
principalde un flip-flopes mantenero almacenarun bir
_
de maeraindeffnidahastaque a rravsde un pul.o o unasealcambie
de estado. Ios flip-llops msconocidosson los tipos SR,
JK, T y D. En la gura 4.2
se presentacada uno de estoselementosy la tabla de verdad que describesu
compotamrento.

;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

Fisn 4.2 Flip-flopsy tabls de vedadcnctelstiq!.

Diseoleicosecuencialcon VHDL

95

Esimportanterecordarel signilicadode la notacinQ y Q(t+l):


Q = estadopresenteo actual
Q,11 : estadofururo o siguiente
Por ejemplo,consideremos
la tablade verdadque describeel funciona,
miento del flip-flop tipo D, mostradoen la ffgura4.2c) y que se muestrade
nuevoen la figura{.3a).

onrr

D
0

1
l

0
1

isu6 4.3 ) Diaema y tablde verdddel nip-nopD, b) llujo de inlonacin e el dispositivo.

Cuandoel valor de la entradaD es iguala 1, figura4.3b),la salidaQrlr


adoptael valor de 1: Q,11 : I siemprey cuandose genereun pulsode reloj. Es importanteresakarque el valor actualen la entradaD es transfeddo
a la salidaQ,*t sin importarcul seael valor previoque hayatenidola salida Q en el estadopresente.
En el diseosecuencialcon VHDL las declaaciones
lf-then-else son
las ms utilizadas;por ejemplo,el pogramadel listado4.i usaestasdecla.
raciones.
La ejecucindel procesoes sensiblea los cambiosen cll (pulsode reloj);
estoes,cuandoclh cambiade valor de una rransicinde 0 a I (cl/<= 1), el
valor de D se asignaa Q y se conservahastaque se generaun nuevopulso,
A la inversa,si cl/<no presentadicha tansicin,el valot de Q se rnantiene
igual. Esto puede observarsecon claidad en Ia simulacindel circuiro,

t e.4.4.

96

VHDL: El te de procEm ssremasdigrtales

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.

Frgu 4.4 Sinulacin del ltip-flop D

Notemosque la salidaQ toma el valor de la entradaD slo cuandola


rransicindel pulsode reloj esde O I y semantienehastaque seejecutade
nuevoel cambiode valor de la entadacli.
Atributo 'event
En el lenguajeVHDL los atibutossivenparadefinir caractersticas
que se
puedena.ociarcon cualquier
ripo Je daro".obleroo enridade..
El atriburo
'eventt (evento)
se urilLa paradescribirun hechou ocurenciade una seal
en partlcular.
En el cdigo del listado 4.1 podemosobservarque la condicin if
cll<'event
e" cirrta.lo cuandoocurreun cambiode r alur;er deciun suceso (event) de la sealci&..Como se puede apeciar,la declaracin (if.then)
no maneja la condicinelse,debidoa que el compiladormantieneel valor
de Q hastaque no existaun cambiode valor en la sealclJr.

I El:F6trcfo'

inlica que ab de u jhibo.

Dco lsico secuencElcon VHDL

97

Paramayorinformacinde Lrsarributospredelinidosen VHDL consulte el apndiceC.

loplo,1.1

Escribaun programaque descibael funcionamientode un fip-flop SR con


baseen la siguienterablade verdad.

R
000
001
0t0
011
100
r0l
rl0
lll

Q,+r
0
I

x
X

Figu6 E4.l TabLde tuncionamient..

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

VHDL: El arte de prosEmar sistems digitales

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

Q < = ' ,0' ;


Q r < = ' 1' ;
(S = /1' rd
Gl rfl
Q r <= ' 0' ;
I3 1 f (S = ' 0'
Q< = 0;
Qr:r<= Qnt

R = /0/)

tr

d R = ' 0' )

th6

20

zi
22
23
24
25
26 d

Q <= ' -' ;


O r <= " ;
od 1f;
ral If;
-f f*;

Li..lo {.2 Cdiso VHDL de un resiso de 8 bir.

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

Fisi 45 Rsiltb pl.lo de 8 bits.

Iotn

Diseolgrcos<uencial con VHDL

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;

U.do 4. Cdigb VHDL de un

'.sLno

de S brrs.

Escribaun programade un regirtro de 4 bits, como el que se muestraen


la ffguraE4.2.Realiceel diseourilizndoinsrruccion..if-th".r..1"" y
POCeSOS.

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

VHDL: El et de pll8nar si6t nts diglrales

CI

QN

Dn

0
Dn

I
Dn

0
I

El cdigodel programaseobservaen e[ siguientlistado.

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

[s variablessnsitivasque determinanel componamientodel

seencuentrandcnto del proceso(CLRy CLK). PaatransGrlos datosde


entada hacia la salida es nece$do, 6egn se rlrro; generar un
de reloj a travs del attibuto event (ClK'revent and CLK = 'l')

DFeo lticosccuencllcon VHDL

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

Fieu 4.6 Contador lrimrio de cuato bits

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;

I is t ado4. 1 .. J rg , q " e d r.. n b ., r..1 .' ,J . . dr 4 b, ..

l ten

102

\ H l

| , , ,( d e ,..s r.h ,,...k m..


J .J , ,,F .

Cuandorequerimosla retroalimenracinde una setal(e < =


e+ 1),
ya seadentro o fuerade la entidad,utilizamosel modo
(Vea
inout
se_ccin
de Mo.los en Captulr 2). En nuesrrocasoei puerro conespo;dienr;;
e
se mancjacomo tal, debidoa quc la seiiai sc retroalimentaen
ca.1apulsJ
de reioj. Notemostambinel uso del paquetestd_arith que,
....r;;
menclon,permiteusarel operador+ con el tipo srd_iogic_vector ".
El funcionamientodel contadorse d"fir," b.i."..,ri" .r, un proceso,
en el cual se.llevana cabolos eventosque determinanel comport;miento
del circuito.Al igualqueen losotrosprogramas,
una transicinde 0 a I efec_
tuadapor el prlso de reloj provocaque se ejecureel proceso,lo
cual increncnta en I ei valor asignadoa la variable Cuandoesra
salida
e.
riene el
valorde 15 ("I 1I I ") y si el pulsode reloj sesigueaplicando, proerama
el
em,
piizaa LontarnucrmrnreJr 0.
Elaboreun programaque descibael firncionamientode un contador
de 4
bits. Realiceen el diseouna sealde conol (Up,iDown)que
determine
el sentidodel conteo:ascendenteo descendenre
(Fig.E4.l).-

UP/DOWN

ACCTON

o
1

Figub E4.l

Cuentadescendent6

Conador binario de cuafto birs.

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.

D6eo leio cuencial @n VHDL

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

Drocs (uP, ctk) begl-


lf (clk, evat .dt ctk
l t (rJ P = ,0 .) th d

( 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.

Contado con r6et y carga en paralelo (load)


La entidad de dsenoque apareceen la 6guta 4.?a) es un
ejemplo de un circuito contador slcrono de 4 bits. Este contado tiene varias
caracterlsticas
adicioales respectoal anterior Su funcionamiento seencuentra
predetermi_
nadopor losvaloresquesehallanen la tablad. l" 0gu.a
4.?b).C_o p,r.de observa.
esrecontadorposeelasentradas"
"p 1,L."J, "..JJ
el valor lgicoque tenganen susrerminalesreali2arn
-""a
."il*qr"."
."l
oprracionesreseadas
en la tabla.Note que la r."1d" R.."r rcriu^.., n,i.
vel alto de tormaasfncronaipor ltimo, el circuito
".
tiene cuatro
entadasen
paralelodeclaradas
como P3, p2, pl v p0.
P3 P2 P1PO

b)
Iisra a.7 a) Conradorbinanode cuarrobLr.bl Tabt
de tun(ionm,enro

104

\ dDL LI",e-e loc


em. o,s,r.
'r ".
'

El propsitode describiresteejemploradicaen suhrayarel usode varias


de tal maneaqueno scaposibleevaluaruna instruccinsi laG!
condiciones,
no se cumple(n).Poejemplo,observemo
condicin(es)predecerminada(s)
el listado4.4, dondela lnca 11 presentala listasensitivade lasvariablesque
inrervienenen el proceso(clk, ENP,LOAD, RESET).Ntcscque no imporra el ordenen que se declaran.En la lnea 12 se indica que si RESET= L
las salidasQ romanel valor de 0; si no esiguala 1, sepuedenevaluarlassi'
guientescondiciones(esimportanteresaltarque la primeracondic 5n dete
set RESET).En la lnea 15 se observacl procesode habiliraruna cargaen
paralelo,por lo que si LOAD = 0 y ENP es una con,.1icin
de no importa
('-') que puederomarel valor de 0 o 1 (segnla tabla 4.7b),las salidasQ
adoptarnel valor que sehallecn lasenlradasP (Pj, P2,Pl, P0).Esteejernplr muestrade formadidcticael uso,.lela dcclaracinelsif (si no-si).

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

clk, LO, ENF,LSE!:

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));

Drocess (clk, RESET,-OArr, !.\l) beqrin


i f (R E s E T= ',1' ,) E IE
Q < = " 0 0 0 0" ;
(clk'evdt
el8if
fld clk = '1') ttte$
if
ard [\P = ' ')
lrOA = 'l'

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;

Liotado 4.4 Cntador con reset,cnablc 1"cargaen parateto.

]H
lhen

then

Diseolclco secuenclcon VHDL

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,

Figtn 4.a Arquitectu.a secuencialde MeaLn

106

VHDL: El ene de pro8raur si.teM disitals

FiSun 4.9 Aquirecrura sececialde Moore.

Un sistemasecuencialsedesarrollaa tavsde tia sriede pasosgeneali.


zadosque comprendenel enunciadodel poblema,diagramade estados,tabla
de estados,asignacinde estados,ecuacionesde entradaa lcs elementosde memoria y diagramaelecunicodel ccuito.
C,omoejemplo consideremosel direo del siguente siterrasecuencial
(Ftg,4.10),en el cual se emite un pulsode salida7 (Z=11 cuandoen la l,
nea de entrada (X) se reciben cuatro unos en forna consecutiva: en caso
contrario, la salida Z es igual a cero.

j- ww
,,.'-]-ry-'
l" "'*--l
Fsr. {.10 Derccrorde secucncD.

lr\eno oPrcosecuencratcunv FtrJL

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.

Con un pocode lgicase puedeintui el comportamientodel diagrama


_
de estados.
Observecomoslola secuencia
de cuatrounosconsecutivos
provocaque la salidaZ : 1.

SalidZ
X=0 X=1
d2
d2
d3

--f
a*
Ernada

stid a,

Fku6 4.r2 a) Diacanade Estdos.


b) ]:lbla de esrados.

0
0

d2

0
0

108

VHDL: El te de prrsranarstemsdisitalcs

Estediagramasepuedecodificarcon facilidadmedianteuna descripcin


de ako nivel en VHDL. Esta dcscripcinsgponeel uso de declaracione
case.whenlascuales,:leterminan,
en un casoparticular,el valorque tomar
el siguienteestado.Por oo lado, la transicinentre estadosse reali:apor
mediodc declaracioncs
if.then-else,de tal frrrmaque stasse encargande
establecer
la lgicaque seguirei progamapararealizarla asignacin
del estado.
Como primer pasoen nuestrodiseo,considcremos
los esradosd0, dl.
d2 y d3. Parapoderrepresentarlos
en ctidigoVHDL, hay que definirlosdentro de un tipo de datosenumerado
(apndiceC) mediantela declaracin
type.Observemos
la lorna en que selistanlos identificadores
de losestados.
ascornolassealesutilizadasparael estadoactual(edo presente)y siguien.
te (edo futuo),
EI ' l) e es t ado s
slgnal

(d0,

iE

edo-sescnte,

d1,

d2,.jl)

e.lo furuo

;
: esrados;

El siguientepasoconsisteen la declaracindel procesoque definirel


comportamiento,:lelsistema.En stedebeconsiderarse
que el edo futuro
J.L r dcl val,r delcd_pr..(nlev de la rnrr,da X. D. e.rnman.r, l, L'de
ta scnsitivadel procesoquedarade la siguienteforma:
pfoccsol:

Drocss

(edojr-se:e,

Dentro del procesose describela tnnsicin del edo-presenteal edo_fu,


turo. Pimerose inciacon la declaaciirncaseque especilicael primerestado que se va a evaluar +n nuestrocasoconsideremos
que el anlisisco.
mienzaen el estadod0 (when d0), donde la salidaZ siemprees cero sin
imporrarel valor de X. Si la entradaX es iguala 1 el estadofutuo es dl; en
casocontrario,esd0.
De estemodo,la declaracin
del procesoquedarade la siguientemanera:
p o c e s o l :

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

Nteseque en cadacstadodebeindicarseel valor de la salida(Z < = 0)


Llcspus
de la condicinwhen, siemprcy cuandola variableZ no cambiede
valor,
En el listado4.5 semuestrala definici(rncompletar.1el
cdigoexplicado.
Como podemosobservar,
en el programasc utilizandos procesos.
En el pirnero,procesol (lneall) se describela transicinque sufrenlos estadosy
las condicionesnecesarias
que dererminan,:lichatranscin.En el segundo,
proceso2(lnea,f2) selleva a cabo,:1e
mancrasnconala asignacin
del estado futuro al estadopresente,de suerreque cuanrlose aplicaun pulsode
reloj,el procesose ejecuta.
En la lnea31 se descrihela formade progranrarla salidaZ en el esta,Jo
d3 cuandostaobtieneel valor de 0 o 1, segnel valor de la entradaX.

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

VHDL: El anede prcsanrstur.ma6


disirares

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

poceso2: proc.ss (ct.k) b.g1


lf (clk'.v!rt and ctk-,1,) rb.!
edoJresente
<= edo_futuro;
al lf;
.!tl ploc.is
proceso2;
.d arq_diaglana;

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

Porejemplo.en la 6gura 84.4 notamos que el circuito pasaal estadoo I con d I


primer I de enrada y al estadoq2 con el segundo.t-assalidasasociadas..rr, |
".asdosennadasson 0, segrinseseala.La terceraenrada consecutivade I ee-l
nera un I en la saliday haceque el circuiro pasal estadoql. Una uezque seI
encuentraen q3, el ccuiro ttrmanecren esteestado,emltiendosalidas0.
I

II

DiseolsrcosecueciaLcon VHDL

lll

En lo que respectaa la programacinen VHDL, esteejemplosiguela


mismametodologaque el ejercicioanterio (Fig.{.12), la cual consisteen
usaestructuascase- when y tipo de datosenumerado,que en estecaso
contienelos cinco estados(q0, ql, q2, q3 y q4) que componenel diagrama.
El listadocorrespondiente
al programase encuen!aa continuacinlistado 84.4.

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

edo_fuL <= q1;


ntt 1f;
l d e q 1 = > z < = ' 0' ;
l tx = ' 0 ' t d
edo fuL <= q4;
edo_frt <= q2;
end f;
i fx = ' 0 ' tb r
edo_fut

<= q4;

edo_fu!

<= q3;

ed lf;
l d l e n q 3 = > z < = ' 0 ' ;
tf x = '0' rr

Contina

ll.2

VHDL, El arte de progamar sisteMs digirtes


edo_fur

<= 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

ad clk=' 1' ) tred

edojres
<= edo_fut;
j
oat It
prceso2;
.Dil !bca.

lltdo f,14.

Dieilo lsico lduncial c \4tDL

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

bla qEcrqfric del Fllp'Flop JK

,f.2.Reaceun pmgramaen VHDL quedescribael funcionamientodel flip.


del
flop tipo T Auxliese parasudescripcincon la tablacaracterlstica
Flip.Flop.

Tablacancterctica del Flip-FlopT

Re8rrros

I
l

4,3. Diseeun egistrode 4 bits comoel mostradoen la siguienteffguray


cuyofurcionaientore encuena reguladopor'la sealesde control
SO y 51, tal y comosemuestaen la siguientetablal

u4

VHDL: El arte de progElu ,i5t6M digitls

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.

Enlreded6 dlo6sn parclelo

o----------x,--

Dk'm l6grc Ruencl.o

VHDL

l15

4.5 En la figura siguiente se muestra el esquemalgico de un registo de


desplazamientocon salida en paralelo. La tabla de funcionamiento co.
resfnndiente se muest a a continuacin. Realice un programa en
VHDL que realice la funcin del circurto.

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.

4.7 Diseey programeun contadorque realicela secuencia0,1,2,3,4,5,6,7


y repita el ciclo. El circuito debecontar con una sealde eset activo en
bajo,que colocalassalidasQ en esradobajo.

116

VHDL: El atede prosmnarsisrehas


disnales

4.8 Programeun cicuito contadorascendente


del 0 al 3
/ descendente
medianteuna sealde control X. Si X=0, el contadorcuentaascendente,si X= 1, el contadorcuentadescendente.

4.9 Prograrneun cicuito contadorascendente


/ descendente
del 0 al 15
:0.
medianteuna sealde contol X- Si X
el contadorcuentaascendente;si X= 1, el contadocuentadescendente.
Existendossealesde salidadenominadas
21 v 22 que se activande l
la siguienteforma:
Zl= 1 Cuandoel contadorse encuentraen los estadospares,en caso
contrarioZ1=0.
22= I Cuandoel contadoseencuentraen los estadosimpares,en caso contaioZ2=0
{.10 En la siguienteffgurasemuestrael cronmetrodigitalconfiguradopa,
ra contardel 0 al 99 mediantedoscontadoresSN 7493conectados
en
cascada.
Realiceun programaen VHDL que cuentedel 0 al 99.

4.11 Realiceun programaparaun cronmetroque debecontardel 0 al 245


y repitael ciclo.

Dis.o lsi@ sencial.n VHDL

l1g

Sismssecencioles
4,12 Realiceun programaque resuelvael siguientediagramade estados:

4.13 Realiceun programaque resuelvael siguientediagramade estados:

4.14 En la ligurase muestrael cuceode una averidacontoladaa tavs


de un semfoo.

___lI I
N

-l
E_

l-l

Lgl

118

VHDL, ELarte de procraM sistemd dicitales

[s automvilespuedencircula en la dieccin NS o EO mediante la siSulentesecuencia

f l-

lq,q l
*-_l--

@
l
;t

II

f fii

r-P]

l-ostiemposde duracinde laslucesdel semforo.on, 20 ,"grrndor,u.rd. I


-o
20 segundos.
mbar5
I
"egundos.
Propongael dragramade e.tadoscoespondrenre
y realiceel progamaI

: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
|

Se requiereagiluarla entradav .alida de vehrculo,por mediode


"enso-|
res (S) que detecranla entradao salidade ello". Ceneralmente
1l,;em;foroI
EO siemprese encuentrden verde\ en conrrapanee[ semforo
NS esrSeo
I

Diseolsicosececial
conVHDL

119

rojo; cuandoalgunode los sensores


detectala enradao salidadel vehculo
envauna sealal sistemaque gobiernael semforoparaque sterealicela
secuenciasiguiente:

Nuevamentela duracinde encendidode losfocosdel semforoson:roja 20


segundos,
verde20 segundos,
mbar5 segundos.
Propongael diagramade estadoscorrespondiente
y realiceel programa
del sistemasecuencial.

4.16 Programeun detectorde secuenciaque produceuna salidaZ= I slo


cuandoen la sealde entradaX seproducela siguientesecuencia
X=
I 10 01l.
4.1? Pogrameun detectode secuenciacuyasalidaZ= 11011111cuando
aplicamosa la entradala secuencia
X: 01101010.
4.18 Realiceel programacorrespondiente
al sistemasecuencialespeciffcado
en la siguientetabla.

B
C
D
E

BO
A
B/0
c/0
DA

E/O
C/1
ctl
E/0
A/O

Considerela siguienteasignacinde estados:


Aom
8001
c010 Doll
E100

120

VHDL: El are de prsramar


sifcmasdLettale

4.t9 Realiceel programade un contador


conradoras.enJentede.cendenre
Je rru.
merosseudoaleatoiosde: I bits. IEl circuito tiene una entrada de
conol X .CuandoX=0 , el contad
contadorcuentaascendente, si X:1 el
contadogeneanmeosseudoale
aleatorios,tal y como se muestrae
la tabla.
X=0
01

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

D i .el .etr.r, Fn(' .,1r{ \H l ,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

5.1 Esquemabsicode integracin de entidades


L^aintegacinde enridadespuederealizarse
medianteel diseoindividual
de cada bL4ue lgicoa travsde variosprocesos
rnrernosquepostenormente puedeDunise medianteun ptogramacomn.Otra posibilidadesobservar
y analizarde maneraglobalcodoel sistemaevaluandosu comporramienro
s_
lo a tavs clesusentrar{as
y salidas.En amboscasosel resultaclo
essatisfactorio; msbien,nuesrratareaconsisteen analizarlasventajasy desvenrajas
que
exisrenen ambasaltenaivas
de solucin.En el primercaso,el inconvenien_
te principales el nmeoexcesivode terminalesutilizajasen el dispositivo,
debidoa que al diseiiarenridadesindividuales,se terulranque declaalas
terminalesde entrada salidade cadaentidad(Fig5.la).

124

\/HDI-: !l ae de Frosn sstms


Jrgitatcs

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.

5.1.1 Progmmacinde entidadesindividuales


Paraejemplificarlas posibiesdiferencias,
considcremos
la programacindcl
cotadory decodificador
de lRfigura5.1 a), medianrela progamacin
de cn_
tidadesindividuales,listado5.1.
lroeraicin

oe elricrd.s

inci,,dra1..

ie.e. s id_ I ogi.- L_,6:1


. a1l ;
u e o k , s ti _ a r i r:\. a t1;

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

s:d 1._i._ v..:or

t@Eo r l ;
(] lcMro 0 l l ;

sa,:dns del de.odifi.drl


sali.ias dcl .mdc

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

InkijrJc,n de end{l Ln \'HDL


15

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;

Lidtado 5.1 IntesEcindc un conraJor un decodilicad.tren el misnu rr.srafrj.

Como podemosobsewar,en la declaracinde la enridad (entiry) se han


asignado
lasterminales
de entraday salidacorrespondientes
a cadabloquelgicode maneraindividual;aspor ejemplo,el contadorrienelassalidasq[q3,
q2, ql, qOly el decodificarlor
lassalidasd(da,db, dc, dd, de,d{ dg).Note que
la programacin
requieredosprocesos:
ei pimero(lneas11 a 19) describeel
funcionamiento
del coorador;el segundo(lneas2l a 35), el funcionamiento
del decodilicado

5.1.2 Programacin hediante relacin entradas/salidas


Porocrolar{o,en el listado5.2 seprogramael sistemade la 1igura5.Ib.
Observemos
cmonuevamenteel programasuponedospocesos:
el pri(llneas
mero
11a 19)pogramael conradory el segundo(lneas20 a 34) describeel decodilicador

t7

WIDL El art d! progtulM srcrns dgtalca

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

1 t (teser = 1 cq= .1001.)


q < = ' 0000" ;

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

' 0 0 0 0 . = > d < = .1111110' ;


.0001 => d <= ,0110000" ;
' o o 1 o . = > d < = 1101101" ;
.0 0 1 1 , = > d < = ' r111001,;
' O1 OO.= > d < = ' 0110011.
' 0 1 0 1 . = > d < = ' 10110U ' ;
.0 1 1 0 " = > d < = ' 1011111.;
' 0 1 1 1 , = > d < = ' 1110000 ;
'1000' => d <=
' 1 0 0 1 ' = > d < = ' 1110011" ;
of.!
d <: ' 0000000,,
->

34
35 od

ldo

a-disp1,

5 It shcin de la6cnridadsuriliaro s..,are5.

Inesacinde etidadcs en VHDL

127

Sin embargo,a diferenciadel programaanterior en steslo se asignanlas


teminalesde salidaconespondientesal decodi6cador(lnea6), el enlaceinterno entre el contadory esteltimo seealizamedianteseales(sgnal)lnea 9.
De nuevo,esimportantemencionarque los dosprogamas
soncorrectos
y que la disponlbllidadde terminalesy capacidadde inregracindel dispositivo empleadodeteminanla utilizacinde uno u otro. Por ejemplo,con el
circuito CPLD CY372i de Clpress (apndiceD), el primer programa
(Llstado5.1) uriliael9% de los recursosdel dispositivo,mientrasque el segundo(Listado5.2) sloutiliza8 por ciento.Note la importanciadel ahorro
de recursos,que si bien en estecasono es significacivo,
al momentode rea,
lizargrandesdiseosesimportante,ya que perrniteahoraal mximoel espaciodisponibledentrode los circuitos.
A continuacinsepesenrala informacinque repotael porcentajeutilizadopor los lisrados5.1 y 5.2 compiladosen el circuito CPLD CY372ide
ClpressSemiconductor.

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

5.2 Inteeracin de entidadesbsicas


Con baseen la descripci-inclelapartadoanrcriory siguiendocon la filosofa
cleestelibro,cn elacincon la intcgracinde entidadesno utilizaremos
tcnica algunade programacin
por el contrario,propondremos
cspecffc.r;
va,
rias opci()nesde solrrcin"ncrnecesaiamentc
la mejor" con objetode quc
ustedconozcarsestrategias
y mspalabrasrcservadas
de programacin
por
que
VHL)L. Espermos la cxpcienciaadquiridale permitaen el futuro desarrollar soluciones
novedosas
e ingeniosas.

5.2.1 Programacin de tres entidades individuales


En la figura5.2 sc muestaun circuitolgicoformadopor los siguientes
sub.
sistemas:
tcclado,codiflca,:lor,
rcgistro,decodficador
de sietcsegmentos
ac.
y
rivo cn bajo un Jiqrlal de sieresegrnentos.
La linalidadde estesstemaelecrrtinicoesobservarcn el displalel nmerodecimalequivalenteal de la tecla

Ftu6 5.2 Sntemavsulnadodc un nDrerc


e u displar

Paracomenzael usuaiopresi()nala recladecmalcorrespondiente


al
nnero que se deseaque aparezca
cn el displd. El codilicadorconvieteen
cdigoBCD el e,quivalenrc
al nmeodecimalpresionado;
por ejemplo,si se
pesionala teclacorrespondiente
al nmero8, el codificadorenrregarcl va.
lor BCD 1000,valor que luegose transfierevl el registrohaciael dccodificador de sicte segmentospara obsevaren el displayel valor del nmero
decimalseleccionatlo.

Intes.acindeentidades
n VHDL

129

La programacinde estosmdulosse muestaen el listado5.J. Como


podemosobservar,
se ha hechode maneaindividualparacatlabloque,por
lo cua l.. hna.ignado
rerminalc"
parac rd au n , ,d ec llo , t lin e , "o , 7 , 8 , b v
l0l. EI bloquiJel coJiricad,,r.e
en(uenrrap,gramado
Je la. Iure.l4 a la
22, mienrrasquc la programacindel egisrrose muestraen las lneas24 a
la 28; por himo, la partedel decodificadova de la lnea29 a la 40.
1 liblary
ieee;
,l u se r eec . s . d
loqic 1164. all;
i e ntlty
dis play l
i6 Dor Ef
4
. 1i:
in s r d, loqi. ,
puls d e e t o l
5
: c 1a: in s t d- loqi.
(C !o 8);
v ec r or
b o L n . t e t r e . L a {l o
rj
c: il@E sr:d-toqi. 'c.or
1l bto O), sdlida .diiaicadof
7
A; i4r
sr.l-t.gic
(l dl,.to 0) ; - oLraala reqisrro
vecto
g
.Eror
ilnr
srd-1.Aic
(l
Q:
l]);
ddrto
sal id eqj sLro
9
D: i4t
sr{lqli.
vecror (l atorEto Ol;, srrada
decolifica.tor
10
seq: dt
std loqic r@ror
{o ro 6));
salidas deccdiiicador
II en l di: play l,
12
rcttitecture
a dispi
of disptayl
1s
1
15
16
1?
18
19
:ll
,rL
22

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

VHDL: El arle de proeraa! sisrms disirales

El pocentajetoral de recursosurilizadosen eI CPLD Cyj72i cuandose


compila el progma e5de 21%, segse observaen la informacin de la
fizura5.3.
rn to ri a c i o n :

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.

Las terminales utili:adas dento del circuito se muestan en el sipuienre


repote de asignacinde reminalesproporcronadas
po,
p.gr"..
"l
Varp R4 de Clpress Semiconducroencargadode la compilacin
del dis,
positivo(Fig.5.4).
Pactage:CY?C372L6JC
1
2
3
4
5
6
'7
8
9
10
11
1,2
1l
I4
15
16
17
18
19
2A
2L
22
23

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.

Inte8ncin de dtidades m VHDL

Programacin de entidades indiduales

131

mediante acignacin de seales

Desde otro ngulo, imaginemosque los bloques de la 6gura


5.2. se pueden
ver como un solomdulo (Fig.5.5). En estaltirnaftgu se
apreciaque las
salidasde una enridad funcionan como las entmd", Joou.rr,id"i.
i" tor_
ma de progtamacines posiblesiempe y cuando los bloquesindividuales
se
relacionen mediante sealesinremas.

ft.

5.5 Sirtem visutiradft de un nmm utfizado sealesinreh6.

Otroaspctoimportanteradicaen que el circutonadamsreciLre


como
enedasla-slmeas provenientes
del recladoy comosalidaslassietererminales del decodiffcador.Estaasignacines necesaiadebido a que
el dispositivo
debe coecta$e a elementosperifiicos extemos, tal es el caso
del teclado y
del dsl"v.
En eilstado_5.4 se muestra la pogramacincorespondiente
a la inte_
gracin de los submdulosdel cicuito de la ffsura
5.5.

r32

\aHDL: El arre d posranar sisreb dicirales

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;

Ustado 5.4 CodigoVHDL del sistmavisualadorurili?ado seiialesinternas.

Intcsra.i,ndr cDtdadcs
en VHDL

r33

Observecmo en el programa (Lstado 5.4) sc integraron


las entidarles,.1el
.
codilicador,registroy decoclifcadorde BCL) a sietescgmentos
en una entic
llrrnrda displa,rline:l i 'r I. ?). N,.re Jui unh.menl.,e
hn J.cl,,rJ,,l.r,
cflr1,l} del.re.lrJ.,{rr.L) v l,..aLJ.l. que .e,.n., r.,n
,ld/,1rJ .cre..g.
mcnl,\ {..g1. LJ dr.cnp.in uenrr,l .lcl pr,,granra.. h.r
en cl c,nrl ro J.
.itn.,cr'indc r ,n,'hlc.quc rlr,.rr,,lr lgrrrr 5.i.
JonJe .. ,..Je ,.r q.r. lo.
nrr.luc\!p tnterLUnccrrr,
nor -neJroJe.u..e"1.. Intcrn:l{C y e), lrnc...

9 y 10.Er la lnea14seasipa a e el valordela sealC (e i ='Ci."".I.

. 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(.

en el pl) el valor dcl nmero seleccionado.


Observeque estevalor binio es a su vez la entadaA (A0, A1, A2, A3) del circuito comparador
de cuatro bits.

@ql I
t@@.@tE>
b.@l '"

de Bandafransporadora

Ftun

E5.l ,{utomrracin delsisten enaquetador de muecas.

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'

E Srena de !.@do dc mii6s.

En la gutaE5.3seobsen"ael intercambiode sealesquesercalizaen_


tre el controladory cadauno de lo! bloqueslgicosdel sistema.

I"*"
vcc

Fl

853 Intckcin d. lasst.la d.l.6trdtui

Soluci
La programacin
correspondiente
a estaintegracirsernuestraen el llstado
).1

136

VHDL; El ate de proeumr sistehasdisrrales

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;

Litlo E!t.l ProciaMcin del sistemavisualadGoc un numero.

Obsewe que la integracin de las entidadesque forman el sistemaslo


precisdos pocesos:el pimero (lnea 14), para descibiel conteo de las
muecasmediantela variablede entradaensor;el segundo(lnea23), para
integar el codicador,registro y decodilicador de siete segmentos.Vea tambin que en la llnea 60 se asignaa la variable comparael valor de uno cuando el valor binaio de los vectoes Q y R son iguales. Esto con objeto de
detener la banda transportadora.
Consideemosahoa el caso en que el nmero mximo de muecasque se
puedeempaquetarpasde 9 a 99 (Fig.E5,4).

w
Fige

Es.4 Sistenasualador del 0 al 99-

138

VHDL: El .ede posanrshtemas


diSiates

igualque-en el ejemploanterior,el operador


selecciona
,Al
mediante
el
tacanridad
de mue..porempaquerar
Cumo\dbemo5,
e,.
::.]:.!_.-t.ir"

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

Como puedeobserva el vecrorde entadaes g


rte bits (01I I 0010).Este valo pasavla el registroa Ios decodiffcariores
" ,r"r.'."*"*"r'0i."
,ascifrascorrespondrenres
a
e"re
vator.Norequeet n::::,:I:i:l{^ph,
mero.DLU
{/lt es introJucido
en un nuevobl.,quedenominado
converti.
tiene como funcin converri cdigo BCD
l: 1e :9digo_ iye
en cdigo
binao (Fig.E5.5).

i-)

Cdgo
BCD

Cdigo
Binario

"- - .::::- - - - "_ :- - - - ._ i i =

Figu 85.5 Convdddor de cdiso.

CdigoBCD (?2) 0111,0010= 1001000(binario)


Estaconversines necesaria,
ya que el contadoincrementasu valo
.
en
lorma
binaiacadavezque sensauna mueca.Co"."o
," inruy. qu.ir-iui_
cin del comparadoresrelacionael valor ornanopoveniente
del tecladov
proporcion
el contaJol cuandoe.o. nmero.son iguale,
"j,31
:i(^ = o, :":
seenvaun.pulsuaJconrrolador
parader.nela band,rran"porriJora.
La con\er,n de c.hgoBCD en ccidigobinario
puederealizr"ea tra.
sumadures.
Bsrcamente.
para
obrener
un nmerobinarioa
]:s_:e:rrcurtos
partrrde un nmeoBCD hay que sumar
los nmerosbinariosqrlerepresenl
tan los pesosde los bits del nmeroBCD.

r39

lntegrrcronde enrdadesen vHDL

Porejemplo,considereque tenemosel nmeoBCD (72).

83 82 BI BO
0111

A3 A2 AI AO
0 0l
0
--.-

El grupode 4 bits msa la izquierdaepresenta70, y el grupode 4 bits


msa la deecha,el nmero2. Esroquieredecirqueel grupomsa la izquier,
da tieneun pesode l0 y el de la extremaderechaun pesode 1. En cadagrupo, el pesobinariode cadabit es el siguiente:
Dgitode lasdecenas

80
B3

Designacin
de bit:

40
82

20
Bt

l0
B0

Dgitode lasunidades

8421

A3 AZ Atfu

Porotro lado,el equivalentebinariode cadabit BCD es un nmerobinaio que representa


el pesode cadabit dentrodel nmeroBCD completo.
Por ejemplo,en la tabla E5.1 se muestraque el valo del bit BCD A0
tiene un pesode uno, po lo cual su valor binaioepresentado
por 7 bits es
0000001.De igr-ralmanera,el bit BCD 83 tiene un pesode 80, por lo que
el valor binariocorrespondiente
representado
en 7 bits es 1010000.Obser,
ve que estevalor se obtienemediantela sumade (4 * 16) en notacin
binaria.

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

Thbl E5.l Vdloresy pes de los cdigosBCD y binano.

0
0
I
0
0
I
0
0

0
0
0
0
0
0
0

0
0
I
0
0
0

r40

VHDL: Elarede prosranasisehas


digu.le

Pararealirmarel procedinientode convesinBCD en binaio


_
veamos
los siguientes
ejercici(xresucltos.
Convertie' binariolos nmeros

;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;
--

esracin de nidadesen \aHDL

^'-ffi

l4l

***= il+P_- sumDr

*--*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

eroF 3r voFc, suma bnaD


4

FiSum 85.? Snmdor conpleto en bloquc y .on co,lueres.

Con esa leicapodemosinrul elcompnamrenro


del circuirode l fica
Er,1,
-.
Ln recumen,
en la tolumr'g en fa represcntacin
binr.,n,prr"_a.n
tres unos, por lo que sumamoslos bits .A3, B0 y 82
del n..." BC. E; il
columna"16",sumamoslosbits Bl y 83. En l" .olu.r,u
:Z .Olo." po.ibl. ui
uno nico,por lo quesesumael bit 82 al acarreode la
columna,,16,iEn la co_
Iumna''64", slopuedeaparecerun uno nico, de
maneraque el bit Bl se
sumaal acaeode la columna',i2,'.

142

VHDL: El rtedeprcsrar sisremsdisirles

El sistemasumadorque reala esta conversinde BCD a binaio se


muestraen la guraE5.8.

ftigp

ACD

Figur 85.8 Circuito convenor de cligo BCD en birsno.

Despusde analizar el procesode conversin de BCD en binario, podemos desctibir el progama VHDL que intega las enridadesde la figua E5.{
(listadoE5.2).

2 !E iee. srd_logic 1164,at1;


3 ul rcrk. std-ari rh. aI;
4
5 otlty conro199 Is sr (
6
reser: ln st{loqic;
- senal povmire
del conrrotador
7
boron: t srd_togic_v<tor
(O ro 9); reclalo
I
sssor:
l srd_1oqic; --seat que sssa e1 paso de e mec:
9 diqE,dispb: dr srdjosic_!cror
(o to 6); __ display dcble (a y..
10
cdqEa: dt sr{1osic);
72
13 .rcbitrcrur

a-conrrol99

0f conrrc199 4

Continl

lntecracinde ntidadesen VHDL

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!

(bor@ = "0100000000) t!.


c < = 0 001' ;tec1a < = i ;
(boton = .0010000000') r!..

C < - ' 0 010 -re1a < - .


(boro = oootoooooo ) t
C < = ' 0 0 11.;recl a < = i ;
(bor
1sll
= '0000100000.) tba
C < = ,0 100 ;tecl a < = i ;
.1rL! (boton = 0000010000) tb!
C < = 0 101' -tec1a < - .
(boto
= '0000001000) tbdr
o151f
C < = " 0 110.;tecl a < - i ;
61.tf (bot = ,0000000100.) !o
c < = " 0 1 11' ;tec1a < - I'
(boton
= 0000000010) te
.1611
C < - 1 000,.rec1a < - .
elalf

C < = ' 1 001 ;t< 1a < - i ;


46
47
48
49
50
51
52
53
54
55
56
51
58
59

1 f (t< 1 a = ' 00' ) l tt r

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

=> dis! <=


=>
0:111
dispa <=
'1000 => disFa .ottreF => dispa <=
01tC

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 ';

O0ll] --> disFb <= "Lr!11r010 ;


O0:1 => dispb <= Lr000tto ,
den l]11]0 => dispb <= ,1Ulr11OO
;
!*reo 0ro1 => {tis!r <= .(1100100
;
et!
O11O => dlspb <= 010!OOC.;
*tE
o
o.po
td
1OC0 => dispb <= Lr0U00OO;
$tE orhers *> dispb <= !U01100,,
dd ce;

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:

rnrecm.i ' jde


n enti dade5
en V H D L

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;

Listdo 85.2 Proclmacindel sisrenavisuatradordet Oal 99.

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

significativosy RB los ms significativos.


Sealde salidadel contadory de ennada al conparador

C'ONV Sealde salidadel conv--rtidorde cdiso y de entadaal comparador


Seal intcu

del mdulo convertidor de cc.dieo.Funciona como acarreointemo.


Sealinterna auxilia en el desanollodel convenidor de cdigo
Tabla85.2 S,cnilicado
de ls seales
utiladase el diseo.

146

VHDL: El ate de prosam.6isremsdigirtes

En lo que respectaa la arquitectura del progama, observeque se estruc_


l
tu utilizando cuato pocesosen los cualesse detalla cadamdulo del siste_ ]
ma; por ejemplo para el codificadory el teclado tenemosr,n procesollamado I
teclado (lnea 22), que captura el dato provenientedel techo, b codifica r ]
detectasi la reclare prerionpor primerao segundavezluego,e5rosdatosse
I
transfieren
al regisrro.
En elproceo llamadodisplay(hneal) sedecodrffca
b I
enrradaprovenienLe
del regirtro1 sea,ignala salidacone:pondiente
aldetto I
seleccionado.
De acuerdocon estarecuencra,
el
pr,*".o .onu.rto, I
"igul"nt.
(lnea90) se realizacon la linalidadde desanollr
el mdulooue corrr.i"r," I
BCD en cdligo binario(Fie.t5.8).
I
Por limo.el procesoconrador(linea I lo) generala cuentadel 0 al 99 |
incremenndose
en una unidadcadaqueel sensordetecrrnobieo.ya fue- |
ra del proceso,en la llnea 129secomparael vecrorprovenientejel conveni. I
dor (CONV) con l ralida del cunrador(e). Si son iguale.,el controlad,r I
enrla un pulsoparaderenerla bandatrarsporralr-,ra.
I

II

Inte$cin de enridadesen VHDL

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

VHDL: El are de prosamarsirensdisuates

5.2 En Ia siguienteffguase muestael circuito electrnicode una unidal


aritmtica y lgica. Considerela tabla de funcionamiento mostradaen el
ejecicio y programe utilizando la integracin de eotidadesmediante la
relacrnde sealesde enrrada- ralida

t;
1".
fso
[;

cl

Selccionde turcin

s2

sr

Funcio arirmtica de satida Funcion lgica de


SO M=Cn=0

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

Iotegraci de entidadesen VHDL

149

5.3 En la siguientefiguase muestraur circuito contadory


un decodiffca,
dor de binario a decimal, cdigo BCD, cuya funcidn consiste
en activar
cada una de las salidas decimalesdel decodiffcador
_"dir.rt"
valor del binario corespondienteprocedente,lel contador
"l
Asl por
ejemplosi el contadorse encuentraen el estadocero (0000)
la salida
del decodificadorque seactivaes la SO.Obse*. .o-" .t ".oin."o.
tiene las salidasactivasen bajo,por lo que paaencender
los led de la
ligura se requiere el uso de un inversor.
Realiceun programaen VHDL que sustituyaal contado decodi6cador
e InveFores.
a) Programeutilizando un procesoque describacadaentidad
de diseo
b) Programemediante un algodmro general

t,

I
I
l

I'
I
I
l

5.4 Enla siguientegura se muestraun circuito contado y


un decodilicador
de 7 segmentos,la funcin del circuito consisteen desplegar
en el display
el valo decimalcorrespondienteaLvalor bina.io o.igin"J.n
.o.rir'doi.
"l
Realiceunprograma
en VHDL quesustrruya
al circuitocontadory de,

cootncador de / Sepmentos.

a) Programeutilizandoun procesoque describacadaentidad

b) Programemediante un algoritmo general

de diseo

l!0

\,HDL: El anedeposEmdsrteirsdkirlles

5.5 En la siguiente flgra 6emuestraun cicuito sumador-restadorde


ros sipados de 4 bi6. Interprete el fungjoniiento del sistemay:
a) Programeutindo un paoceso
quedercribacadaenrjdadde diseo
b) Rogramemedianteun afuoritrnogeneral

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

VHDL: EIartede p.ogamar


sistehs digrrales

la secxenciade accionesque ealizaun controladopuededescribirse


mcJinelo. diagrma,
d. e.ad.,que.e vieronen el capirulo4, o a travs
de un Jigramc
discado
especf6cdm(nte
paradefinrralgorrrmo"
dc hardwa.
re denominado
cana ASM (sigla.en rnglsde algoritmoJe la mquinade
esrooi.La venLaja
pdncipalde uncartaASM con rc\pe(roa lo\ Jidgra.
masde estadoes que permitecontrolary especificar
el tlujo de la inforacton at mlsmotlempo,
Hay que recordarque un algoritmodescribepasoa pasotlel cornpor_
tamientode un sistema,tomandoen consideracinlas siguientescaracre.
rlsticas:
.

El algoritmodebede se ffnito. Debe tener un nmerodeterminado


de

. Tieneque serdeffnido.En cada


estadodebenestablecerse
po complero
todaslas accionesque se llevana cabo.Esroincluyelasentradas,saiidas
y decisiones
que conducena eseestado.

6.1 Algoritrno de la mquina de estdo (ASM


El algoritmoo carta ASM utilizatressmbolosbsicosparadescibirel compotamientode un sistema:
Bloquede estado
Bloquede decisin
Bloque de salidacondicional

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&

nrnraaerc l6tl y VHDI

lts

Car*lo
drtada

(e)+mdo

rt 6.r D.rcripctdd. n bloquc& crtdo.

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"

Enaltctrirtbo sc,indiceclnombede la vaia.

Ett .2 D..rbc5n d.l bloqu.& dc.isir.

BtoSuede ralidr cdicioales


(Fig6.3)seutilizaparacrivaealcsde
El blciqucdesalidas
condicionales
salidaqucslorc cncucnnen
diponibkrparacim cordicioc
decntra.
ch.t inbfoiactiiriconenacn dichobloqccsla siguiente:

156

VHDL: EI arre de prosatu sistehd dicltales

. Una lista de salidascondicionales


que dependende cieta condicinde
entrada.

. . -..- _ -,:,_,.1Figura 6.3 Descipcin de un btoque de slidas condiciooales.

6.2 Estructura de una carta ASM


Uoa cataASM coruistede uno o msbloquesASM inteconectados
de una
maneraconsistente
comoseobsewaen la figura6.{. En dichafigun seaprecian cuatroestadosdenominados
A, B, C y D y dosentradas:X v y.
La rransicinde un bloquea oro e reli:aa rravesde llneasdenomina.
dascaminosde enlace,
En las cartasASM, a cadabloquele corespondeuna unidadde tiemoo
y en estelapsoseejecuran
todoslo" bloques
de decrsin
y de.alidasconicionalesque estnasociados
con el mismoestado.

@
Fiers 6.4 Estrucuh Bsicade ua ctaASM.

D*o de @nttolade dieitls hedit catasASM y VHDL

151

Deecripcinde una cara ASM


Paradescribide maneragenerallosatributosde unacartaASM, consideremoscomoejemploel circuito de la figura.5.

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

Entadas Istado Futuro


Salidas
(Qr,Q0)T+r
XY

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

VHDL. Elirede pogrmarsisremadis,tateJ

En la lnea 1 (de la tabla 6.1) nos encontramosen el estadoA repesenta_


.
do por el cdigo Ql, Q0 = 00, si la seal del senso X es izual a .,no
lX- ll sepasaalesrado
B cdligo(Ol)enelriempo
tel, e0), E* i-por.
tante emacarque mientas ftx eocontremosen el estadoA la salida activa
selrcb.En la lnea 2 de nuevo se encuentrael estadoAi sin embarsola se_
al de entradaX adoprael valorde ceroX = 0 por lo cualse trans6eieal es.
tado C. Debenotarseque la sealde salidaan es Inicio, dado que se trata del
estadoA; pot otro lado la condicin de no importa en el sensorde la sealy
(f : *), sedebea que para pasardel estadoA al B o del estado
A al C. el vaIor de entradaY no esrelevante,
EI mismo anlisislo puedehacer el lecto con relativa facilidad interpretando el comportamiento de la carta ASM de la lnea 3 a la .

Obsevela cartaASM de la ffguraE.l y elaboreuna rablaque describasu


compoftamiento.

Fi81E E.I Carra ASM.

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.

Deo de connotdor.' digiralesmednle cdttu ASM

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

E6.l DesqiFin de uM catt ASM.

| 6.3 Cartas ASM en comparacin con las mquinas de estado


Es relativamente fcil pasarde una cata ASM a un diagrama (mquina)de
estadosy viceversapor ejemplo, consideremosla carta de la ffgura 6.6a),

rl

o'

Fisur 6.6 ) Crts ASM. b) Disrmas de esrado.

Como puedeobsewarse,dicha carta estformada por cuatro estados(,{,


B, C y D), tiene dos sealesde entrada(X y Y) y dos salidas(sALl, sAL2).
Note cmo estassealesde salida permanecenactivasslo mientras el sistema seencuentaen el estadopresente(estructurade Moore).
En la gura 6.6b) se muestra la mquina de estadoscorrespondiente.

160

VHDL: El arre de pogramarssreMs drs,tales

Segnse aprecia,existentambincuatro estadosy la unin entre ellos se


presentaa travsde suslneasde entrada(X y Y). La negacinde la variable indica la condicincuandolas entradasson igual a cero o a uno (Fig.
6.7). Obsewetambinen la ffgura6.7bque las sealesde salidasedenotan
medianre
la noracin1f + ).

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

6.4 Diseo de controladoresmediante cartasASM


El diseode catasASM tienemuchoque ver con la formay sentidocomn
de nterpretarun problema,para luego visualizarun camino que Dermits
en(,'nrrarl 'olu(idn ptim .l, , r c le mp loc. , , n . d e r. moI a. . iq . e , , r,
,in: ,c rro.,,lictoJi.e ru n c o n rr^ la J , ,qr u r p e rmird
" u , r* r, , rn r. .
firncitmamienco
de un tren que debedespiazarse
de una estacina otra (Fig
6.9). En cada estacinse han colocadosensoresque det.ctan crrando.l
tren seaproximaal andny envanal vagnuna sealdenominadapARO.
Al recibidicha seal,el vagnactiva su sistemade frenadoy el rren co.
mtenza decner,e
en form l utomrrca
ha..rJeten.r.ey c,,locar.e
cn i,,.
lmitesde la estacin.

Desplazamiento
Esle

a-,

a.r"

Figu.a 6.9 Dias.ana.lelconrrolado


de un nen sububno.

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.

Deo dc contoladorcsdisirlesheli.te caftasASM y VHDL

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

VHDL: El ate d proermar sistnasdieirales

Figu 6.10 Seales


deentmday sali delconrroldor
-

Un posiblealgoritmode control "cartaASM" que permite detallarde


maneadidcticael compotamiento
del sistemaes el siguiente(Fig.6.ll):

@
si
\:-/

Fisuh 6.1r CarraASM de un conotadoi

@
@

Dco Je.'tuhdores

dig,rks me{timtc catasASM y VHDL

165

Descripcin de algoitmos de control


Estado0. En un inicio el conoladoseencuentraen la estacinBy la puer_
ra del vagnsc mantieneabiera.Si la ertmdatiempo (T = 15se]rndos)
no
ha alcanzadosu valofinal, la puertacontinaabierta(T = No); si ya alcan:ir el valor de T= 15 segLrndos,
la puerrase cierray el conrroladorse transfiereal esraclo1.
Estado l. Con la puerraccradase eligela direccina fravsdc la entada
DIR; esdcci
si DIR = Si el vagtinse ciirigchaciael esre(estacitinA)
si DIR : No el vagrnsedirigehacir el oeste(estacinB)
Estado2, En cl estado2 se da la ordenpaaque el tren contines movi_
nientoa travsde la sealAvance.Como puetleobsewarse,
si clsensorSA
no detectala prescnciadel vagn,la sealde avancepernuneceinalerablc;
por el contrario,si el scnsorSA rletectacl vagn,el controiador(SA =
Sii
j), que Lletiencde formaautomtica
envaunrl sealde Pao(estar.1o
al en
justo en los llires del andn,:1eIa estacinA.
Estado4. Ctn el vag(rndetenidoen la estaci(,)n
A, el controladorenvala
sealPuetaabierta,que perDirela entraday salidade pasajeos
y mienrras
cl tienpo T = 15 scgundLrs
no sc c.,nrpia,el rr.n pern,onece
en la estaci)n
A con las puertasabiertas;en casocontrario,las cieray continasu avance haciala estacinB.
Se puedededucircon rclarivafacilidd la descripcingeneralde la carta,en la cualseobservaron
14cstados,.lelcsado
0 alestarlo11.
En el diseode algoritmosclecontrol ASM tiene muchoque ver el sen_
tido comny Laexperienciadel diseadorRrr ejemplo,en la carta antcrior
se puedeconsiderarque los sensores
SA, SB y SC actande fomasimilar.
no r l o L r l c n lu:rr.lc rcr...nralrc! \ c r, : o r(\b . r. rru rli; rr. c jl.u r, , rc l,
dadoque elr'agnesincapa:de sabeen qu estacinseencuenrra;cn consecuencia,s(ilo podra teDerseun estado (X) qlre repescntala estacin
acual.Al efecruarcsosarregl()s,
la cartaanteriorpodrasimplilicarse
de la
siguicntemanera(Fig.6.12):

166

\ llDl. Ll

' , ,e

h o r ,e rd n,, J .,, r: . J .c, .F

figa 6.12 (larrdASM simrlificata.

Estado0, El trcn esten cualquierade lasestaciones


con laspuertasabiertas
Si el ticmpoT = 15no secumple,permanece
en la estacinactlLal;si ei tienrpo ha terminadoseda la ortlenparaque la puertasecierrcy luegola
order
de Avanceparacontinuarel recorrido(Estado1 y 2).
Si duranteestatrayectoriaelsensordetectala pesencia
del en, envnr
ia sealde Paro,que har que el vagns. derengacn lo estaciny abral:
puerra(transici(rndel estado] al esado0 en la cartade la Fig.6.12).
Comi
se adviertc,estacartasimpliffcada
slo utilizacuatroestadosa dieencrao
la anterio La linalidd de ejemplificarestastliferencias
es hacerver que l:r
catasASM se construyencon baseen lrexperiencia conocimientode lG
)subsistenas
que integranuna aplicacin.

6.5 Diseo de cartasASM mediante VHDL


Desarrollarun programaen VHDL a travsde una cata ASM cs relatila
mentefcil; sin embargo,no esposiblerecomendarun procedimientoo determinadaformade programaLa experienciaadquiridaen los capltulosar_
terioresahora adquiereimportanciapara comprenderde maneraclaa
precisacomose urilizanlas palabrasreservadas
en VHDL.
Paraejemplificarestasituacin,veamosel siguienteproblema:

D n p n .,d ,,,n n o l ' d ,e .,s," 1c.m.d,,ar' .d_a.A qM \ V H D I

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:

a) Mdulo de recoleccin de monedas.Recibelas monedasque el


clienteintroduceen la mquinaparaobtenerel refresco.
Caracterlsticas
.
.
.

Aceptamonedasde $5.00,$10.00y $20.00.


Cuentacon un mecanismoque echazamonedasdefectuosas
Poseeun mecanismode deteccinde valor de la moneda;esdeci! escapa-zde discriminarel valor de la monedaMenor que precio (MP) e lgual
a precio(Prccio).

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
.

Acaivauna sealde salidadenominadaCambio,cuyafuncin esende cincope\os.


regrcdmbioal (lienteen monedas
. Recibeuna sealdenominadaListo carbio (LC), que indicacundo
han dadocrn.opesorde (mbto.
"e

c) Mdulo de servicio. Su funcin es entregarel refiescoal cliente; sin


embargo,el poducto slo se libea cuandola cantad que proporcion
el cliente esigual al valo del efiesco.
Caractersticas
.

Cuentacon una sealde salidadenominadaSirve,que activael sen,


paraque el refrescosepuedasewir y entrega
sor correspondiente

168

vHJt

| | ,.'.

-.

p, . ! , , . f

r c m . . , ! , ,, e\

Poseeuna sealdc entradadenoninadaListo sevicio (LS), que indica cundose entregtiel refresco.

d) Controlador.Estaunidadsincronizalasaccionesde Lx difeentesmtdulosparaautomatizarel funcionamientode ia mquinadespachado


ra de efrescos.

En la 6gura6.1.1seobscrvacadamduloy la sealizacin
entm,:la/salrtl
que existeenrrecadasubsistema.

[isu6 6.r] )v1dulos


quefiman elcooldor

Un posiblealgorirmoASM semuestraen la 1igura.1,f.


EstadoA. Se tieneuna salidadenominadaIngresemonedas,que no essini
una sealque indica al clienrea cravsde un displayque la mquinase encuenta funcionando.Si la seal de enrrada Moneda es igual a "N,r
(M : No), la mquina permaneceen el estadoA; si la sealMoneda e:
igral a "Si",la carraconduccal estadoB.
EstadoB. La sealde enradaMoneda (M) seutilizaparaconfirmarque e.
sensorencagadode estadeteccinha realizadotoda su utina.
Es importante recodar que existen algunos sensoresque suelen
encontrarseen el estadode reposo,para luego pasara su estadode activacin y egresaral reposode nuevo. Este sensordetectorde monedas
reliza la funcin anterior.

D.o d. cont olatr. disttrkr 6disrr.:r ASMr VIDL

i,r '
,
..

169

, ,Brdo C. La ealde cnrada,Mcncquc.prtcl (MP) 6eutilizaparaindica al clicntehucdbduminislra


rnsmodedapor ejemplo,si (MP = Si),
, ,,so,rarclve
el erta&t A y .toicita l olienteqre Ingrccemoneda6,Si (MP =
No)'epaaaltstadoD dordce ircguntsi laqnridad ingesadaesigual
q rnayorqueel precio(PrEcb)
.

nsui 6.la Cara ASM dcl @ntoladord le mqiha"d.r.e5c.

170

V HLr i | | d, e J e p r .s r' ,n d{,rT d . J .d .,.rc .

EstadoD. En esreestadosepreguntasi la canridadingresada


esIgual al precio. Si lo es (Precio= Si), sepasaal estadoE domleseactivala salidaSirve,
que otogael servicio.En el estadoE la sealListo servicio (LS) se utiliza
paa indicaal contoladorque el sensorha detecadoque ya se entregel
refresco:(I^S: Sr, en casoconlrario(LS = No), serepitela pericinde servicio. Si steya se brind,la carrase transfiereal estadoF paracapturael
dinero (Cap)y luegoal estadoG paralimpiarel sistema(Limpia).
Al volveral estadoD seobservaque si Precio= No ',equivalea decique
el precioesmayoral valor del reliesco";en consecuencia,
el algoritmodebe
dcvolvercambioa rravsde la sealCambio en el esadoH.
EstadoH. La sealListo cambio (LC) seutilizaparaindicaal controlador
si el sensorha derectadoque el cambiose dio (LC = Si); en casocontrario
t/LC- NoJ,'e repreld pericrcjn
Je (ambio.
EstadoI. La funcinde la salidaDecremedta(Dec)es indicaral mdulode
recoleccinde monedasque seentregaroncincopesosde cambio,con el ot.
jeto de quecomparey determinesi con el decrementode cincopesosla cantidad abonadapor el productoya esigualal precioo siguesiendomayor(Jbsevecmoel caminode enlacede estadoI retoalimentaal estadoD en qui
sepeguntasi el pagopor el productoesigualo mayoal precio.
Como puedeobservarse,
para describirconrrolado.es
se requiereconL!
cer a la perfeccinel incionamiento
de cadauno de sussubsistemas
aslcomo Ia funcinque realizansussensotes.
Ahora, la inscruccinCaseen VHDL puedeayudara simplilicarlo qu.
sucedeen cdauno de los esrados;de igual manera,el uso de IF o ELSII
puedeauxiliaa manejarcon simplicidadlos rombosde decisin.
En el listado6.1 se observala programacin
del algoritmoanterio.
--

ProgEm

de 1a qui

uae ieee, s t d
tlty

@quina

loqic
i6

dDaihaifa

jte lefies@E

: 1164 . a U ;
(

rbrr

CLK, MO!'EDA,Mp, IRECIO, LC, LS:


CAP, LIMPIA,
dtlit4ture

aqtuq

t y pe - > ' odo


Ia
edojes,

ai9E1

SIR\,'E, cA],BIo,

of
A. B.

mqiina

std_logic;
std

1oqlc);

is

.D.-,-,

edo fur:

in

DEc: dt

, I

esrads;

Conlna

Dbeode (.n,,oldor.dlcl,le.med'dnre,r. AcM v VHDI


grocss

p-estados:
c aae

(ealojres,

MONEDA,MP, IRECIO, LC, LS) bgln

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;

D = > CAP < =

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

B => caP<= 0 ;LIMPIA

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 ;

wt @ G - > CAP< = 0; SI R\ , B <=


DEC < = 0;
etto-fut
qheE

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

VHDL: El are de prcehnar s$temasdicittes


lf

ib{ I

LC= 0

=> oqlr <=


<=

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

Lbtdo 6. I De.rnp.on de l cartj ASM deJ,^rFoddor


de t, mdquinoJ*pa.had{" Jr
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

Di*o de conolado.es digitale6medianr! ca!asASM y \TIDL

173

Figu6.15.) Estructura
en paralelode unacanaASM. b) Estructua
en seriede una
cartaASM.

Paa eafimar la programacin de controladores, consideremosel ejemplo


mostrado en la figura E6.4.

1 ,3 ,6 ,0,9,10,11,12,13,14,15

Contador0 al3

Dcodiricador

Fisua E,4 Dictma a bloquesdel sisrenade segundd

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

Figua E,5 Descnpcinde las sealcsde enrada^alidadel coniotadod t c,ia de sesurd.

disitalcsnediantecarasASM r VHDL
Diseode conroladocs

175

La relacinde los mtJdulosmostradosen la 6gura86.4 y el conrrolador


(Fig.E6.).
sedescribepor mediode la cartaASM coespondienre
Clave cotrecta
EstadoA. En un inicio el contoladorenvlala sealde salidaReset,con el
objerode colocaral contadoren el estadocero (Q1=0,Q0=0). Con esta
condicinde salidadel contador,el decodiffcador
colocaen estadoalto la sallda S0 (S0 : l), al mismotiempola salidaCont,/adoptael valor de cero
(Cont,l: Ql Q0).
EstadoB. En esreestadonuestrocontoladoresten esperade que se presionela teclacorrespondiente
al pimer nmerode la secuenciade la clave
correcta.

Fkura E. Carta ASM dcl sistcmade seguridad.

EsradoC. Supongamosque la clave correctaestformadapor los nmeros(4,


?, 5 y 2), de suereque al principioel primerdgitotecleadoserel 4. Cuando
quela entraestoocurre,la sealde botn romael valorde uno.Observemos
da a la compuertaOR estdefinidapor el nmerobinarioequivalenteal dgito decimal,l (0100):(Figura86.7).Note que estevalor binariopermitea su
vezseleccionar
la enrradaE4 deimultiplexola salidaFX tomael valorde uno
(FX = 1), haciendoque el contoladorsetranslieraal estadoD. Esimportante observala figuraE6.7,en la cual se puedeapreciarque inmediatamente

176

VHDL: tl

'fte

dc forDmar s(tn.s disles

Jc"pu.J. r e,r"narcl nrirn.rr4. ,c ,ileccr.,rr


tr cnrral | . uatru delmul irl(.
vor.enrrdc,,n.,ra.l, lr..L l S 0 d e lJ e ru J ilrt J o r
h a c i. n J o ; u el. rr' u n .
cit'rnFX seaiguala uno.

Figuatr6.? funcn,rr:icDroJc la seDat


FX del n,urF,cxoi

EstadoD. En estcestado el controlador preguntasi


el usuaioan tien.
presionadala teclacorrespondicnte
al nmero4 ( Born : Si ) o si la re_
cla ya fue soltacla(Born =N).
EstadoE. Se evahiael valor de Ia sealde entraclaConr4,
la cual,comosc
ecordar,en estemomentodeneei valor de ceoC.rnr4=
No. L anteit:
ocas(maquc el controladortransficrr
su secuencia
al cstadof; dondcse activa la seal.lesalidade increnento.Cuya fLrncin
es envia. un pri.,, o L
cntradade reloj del circuitocontado! incremeDtando
su cuentae; uno.
Ohseveen la carraASM que el conrrolaLJor
va clelesta,.lo
F al esraclo
F
en esperade que el usuariotccleeel siglrienteDmerode
la clavecorrecra\
ruegorepc la secuenciaanterior
E tadoE t unJo.lconLrdor
l le B ra l , , , rrrr, ,d e rrc , , e l_ / , e 0 _l/ , lr . .
nrl Je cnlr.rdn( on.1
aJunlI el r ior Je rrnurl-.,nr4_Jir. cun lo qucel . n.
ftoladorpast al esradoG y se gereala seiialclesalida
Activacin. Dich,
,en,l l-rclJ puer.".lel.r. cmr d c . e g u n d ; Jr
h r. c . 1 u c . l \ r! rn rds r rrb n . .
t r r rt,c.rJJoinrcillA ). en e. p e rJ e q u ee l , r. u , ro rrrrr, , d r_ . J e n r. c r.
L
Clave incorrecta
Ahora.consideemos
el casoen que seintroduceun nmeroncorrectocoma
clavede entada.Porejempio,iraginemosque nosencontramos
en cl estad,
A coIr las siguientescondiciones:el contadorse halla
en el conteotle cerL.

Disenodc ()nholadoresdisirales
hedianccams ASM ! VHDL

1jj

la sealConr4es igual a ccro y la salidaacivadel dccodificadorS0 iguala


uno (-\0 = 1). En esernomento(estadoB) presionamos
una teclaequivocada, supongamos
que esel nmeroseis"6".Cono puedeobservarse,
la entrada E6 delmultiplexoresrconecradaa rierra;cs deci E6 = 0 (Fig.E.4);en
consecuencia,
'X : 0. Segnsetdvierte,con estevalorde FX la caraASM
se dirigehaciael estadoH.
EstadoH. Al igualque en el casodel esradoC, el conrrolador)licira que se
le confirmesi cl botnya no estpresionado;
si esas,pasaal estadoI.
EstadoL Aqu se evalala sealdc entradaCont4, la cual como ya se
mencion- tiene un vakrrde cero,Cont4 : No. Estoocasionaque la carta ASM se dirija al esradoJ y activela seaide incrementa,la cual sirvepara aumcntaren una undadel conradorexreno.
EstadoK. En csemomentocicontroladoesten esperade que se ingese
otro nmero.Obseeque sin importarla ci6a que sepresione(Botn: Si),
la carta sc tansfiereal estadoH "retroalimentacin
necesariapara que el
controladorno se salgade eseciclo y srlloespereel coneode Conr4 = Si
paraactivarla alamladel sisrema".
Er cl listado 6.2 se obsevael cdigo VHDL corespondienrea este
ejemplo.

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

VHDL: El sne de poe2M sts|erss disirate!


If

fx =

1
D;

D => ieser

tib.
1l

r 6
Il

boton

<=

edo_fut

1'
<= Dt

edo_fuE

<= E;

0 ;inc
t.D

E = > l e s e t < = 0 ;i nc < = ' O ;acbl va < = ,0,;a1ar < =


cont4 = 1 tben
edo_fut <= c;

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.=

<= ,0,; a1alrna <=

o,;i nc < = ,o ;acri va < = ,0,;a1arl E < =


tb.

edo_fut <- r;
.l If;
the I => !6er <= 0 ;inc <- ,O ;aciiva
l f c o n r4 = ' 1 tb.D
edo_fut <= Ir;

<- ,0 ;atanla <=

edo_fur <= ,i;


c!al f!;
=> reser <= '0 ;ic <= I ;acti% <= ,O ;alare <=
ibeJ
edo_fut <- K;
rb r! K = > re s e t < = ,0,;i nc < = O' ;acri va < = O,;atal m < =
tl boton = 1 tb!
edo_fut <= H;
edo_fut

<- K;

r.l E L = > re s e t < edo_fut <= A;

0 ,i nc < = ' 0,;acti va < = O,;al atra < =

Di*o dcotbldtr
reloj:

'

l.r.do 5l

'

dicith 6dianr.ertas ASMy ViIDL

(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;

D6cripcin dl @ntrclador del !i!t m dc rcPuridad.

Como herris podldo notaq el diseo de cata ASM depende en gran


medida del cortocirntentoque el diseadortenga de cada uno de los subsistemasque inteetan rna aplicacin.

180

VHDL: El are dephsn stcmasdtstrs

Ejercicios
Esttu tn ua Coa ASM
.1 Realiceuna tablay describael compor'tamiento
de lassiguientescartas
ASM.

b)

CaftAs ASM corLba Cuit1sde esa4o


6.2 Obteqa los diagramasde estadopara cada una de las
siguientes
ASM-

D!.o dc connolsdoG,dlsiteL! nodiot cqt. AsM y VHDL

Uf

tE2

VHDL: El ate de prcsEmar sistemasdisitles

6.3 buje la conespondientecarta ASM del siguientediagramade estados.


Fieura.3

Dseod canttoladrnes

'''naiat

cartas ASM

6.4 Dibuje la conespondientecata ASM del siguientediagramade estados

Disctudc coDrolado,es
di8irales
ne.li.necartasASM r VHDL

183

6.5 Serequierellenarun fascocon 3 diferentestirs de pastillas.Caclauna


de estaspastillasestalmacenada
en tresrecipientesdifeentcsclenominadosA, B y C; el llenadodebeealizase
de fomasecuencial.
es decir
primerolas pastillasdel recipienteA, posteriormente
el B y finalmente
el C, tal y comoseobservaen la siguienrengura.

--F
-

.w

.w

.l

.w

tl
Controtde

',"":1,:lri:x""

En cadafrascodebenintroducisel0 pastillasde cadatipo por lo que el ali,


mentadorde pastillasde cadarecipientedebederenerse
cuando.l sensocorrespondiente
hayadetecradoqueel nmerode pastillasesiguala lO, en ese
momentoel.motoesencendidoy haceque la bandatransportadora
despla_
ce el fiascohastael siguientealimenradode pastillas,el cual repireel
;rocesoanterior y transfiereal frascohacia el rercer alimentadoel cual al
teminarsu conteode pastillascorrespondiente
activa la banday haceque
el fascose transfieahaciaotra partedel proceso.
a) Identiliquevariablesde entraday salidadel controlado
b) Diseela cartaASM que automaticeel proceso

6.6 Diseeel controladorde una contesradoratelelnicacuyo funcionamiento sedescribea continuacin.


Inicialmeneel telfonose encuenrraactivadopor el usuariopara que
seacontestadode formamanualo a travsde la conestadoa
(Esteestado
de activacinsemuestracon el encendidode un LED incorporadoal apara_
to) El usuariotiene la opcinde contestarel telfonoen el primer,r,segun_
do o tercerring , la contestadoa
debeacti.,arsesi el usuariono desc.r.lga
la bocinaal tercerring y activala grabacincuyomensajees:

184

v H, ' L LI
J r ,o . , .d . .,. e ,n . o ,i ,..,.
' '.

"Muy buenos das, integracinde sistemaselectnicosa sus rdenes, en estemohento no podemosatendele.Deje


su mensajedcspus
de la seal. bip,bip,bip,..Encsre monrenrol" p".",,^r. q""
liilr-;.;r:l
mensaje(duranre
el tienpo que dura el mensRje
seiluminaen la contestado,
ra un.tlispiayque dicegrabando)al temrinodef ,".,r."i.
." .t..".iir:" io .,,r_
testadoraen su nrodode grabaciny r.uelvea su estado
nicial.
rl lJenrilro,rc
v.ril-lr.J e rn , r, J , . . rlrd e i . . , n . , 1 . J . , .
hl Dl rnc lrcarrr A iM.lu e a u r. , mJ rLr,
i lr, , c c \ r
6.? Diseeun controladrrdigiralque permitacontrolarlas
lucestraseras
.le
un autonovil .Hay tres lucesen cadalatlo y operanen
secucnciap:rr.:
mosuala direccinen que seva a dar vuelta .La sccuencia
que se va .:
encenderdependedc 1intencindel conductorparod,rrvt,eka
,r lo r_,
quierdao a la,:leechaa conrinuacirinse ruescra
Ia secuenciacorr!,
pondiente.

R]

R2

RI

IJelr6qr. v.,rirhlc,Jc en,rJv.rliJa Jcl .,,nn, lal,,r


.,)
hl Di5ci la La r AjN.4qu..Ir,,rnari.crl pruce.,,

6.8 Se requieredisearel conrroladorde un ratn electrrinico


cqufej
paragrabardc las 12:00pnr a las 5:00am,siexistenpersonas
dentrojt
las oficinasde la compaaACSA CORPORATIO
S.. O CJ i
rafn en su modode enccndidosiemprese encuenagabanLlo,
la ir:
ma en la que el an sedesplaza
dentro clelas instalaciones
,:lean rn
portantecompaaes la siguiente:
El ratirn debemaniobragirandocuandocntre en contacto
con un ol_
cuio,la nariudel arn rieneun sensorcuyasalidesX=
I en casoconr.:
rro,sremprequc se cncuentreen contactocon un obstculo
e s x=0,
El ratn liene algunaslneasde control, enrre ellas Z1=l,que
gira
ratn haciala izquierda,22:1 que gira el ratr haci ia
derccha.

Diseode contrcldoresdkitles medtantecanasASM y VHDL

185

Cuando el ratn encuenta un obstculo deber gitar hacia la derecha


hasta no detecta obstculo alguno, la siguientevez que detecte algo similar
el ratn debergirar hacia la izquierdahasta que no haya obstculoy asl sucesivamente.
Cuando el tiempo de gtabacinha transcuido, el mtn enviar una seal inalmbrica al puesto de control y permaneceen estadode alto hasta
el momento en el cual el inslrector de seguridadlo apaguey lo recoja.
a) Identiffquevariablesde entraday salidadel confiolador
b) Dsee la carta ASM que automatice el proceso

6.9 Se requiere disear un sistemade contol para el circuito mostrado en


la siguientefrgura.

c
z

ZM

El sistemadebecalcular el valo de la sumao diferencia aitmtica de dos nrimerosbinariosde n bits. Especlficamente


queremoscalcularlas sumasy di.
ferenciasa * b, a-b,-a * by-a b. El mecanismopor el que estosnmeros se intoducen en los registrosa y b no se muestraen la figua.
Todos los registros y el sumado acomodan n bits. El registro de com.
plementacine incementacin(CI) se conectaal sumador,el sumadoral
acumuladory el acumuladorse vuelve a conectar al sumado.todas las

186

VHDL: tslrte de Fos.,nasistensdslrales

concxionesseealizancon n lnas.Ya que estasconexionesde n bits estn


dedicadas,
esdecir cadauna sirveparauna solafuncin de transmisin(no
Existeun busde n bits al y del cual podemostransferirlos contenidos
facriblede dos fomas,se indica
de los registrosA y B . Esratransferenca,
por una flechabidireccional.A todoslos registrosse aplicauna sealde reloj comn,qe no estindicada.CuandoWa = 1, en el flancode disparode
reloj se transfiereuna palabradel bus al registroA ; es deci,se cscribeuna
palabraen el registro.CirandoRa = 1, selee una palabradel registroal bus
del registroB mediantelas sealesWl
Algo sinrilarse aplicaa la respuesta
=
y Rb .CuandolVacc 1,la salidadel sumadorse registraren el acumulador y cuandoRacc = l, el contenidodel acumuladosecolocaren el bus
La descripcin de la secuenciaque debede seguirsese muestraen l
siguientetabla.

Zzlcc ,Bom el esisoacunuladode cualquie. Dmeroque pedahaberqueddoen una


operacinFieviay Z col6a lassaliddsdel reslen ce!o.
o de complementacin

tu,\

Leeel Jdto del resistoA en eLbus escribela


'
plbr del bus al rcgsroCl
Contenidode CI psadopor el sunador (la ottr
cntrda del sumadoesccro)y reg$rradoen

Rb,v
5

Contemdode B rlansfe.ido CI

R, \flcc

Conrenidodel Acc ansfeidodl resisrro

'[bla d tuftioMmiento

a) Identiliquevariablesde entraday salidadel controlador


b) Diseiiela cartaASM que arrtomaticeel proceso

Diserode cartas ASM mediate \4IDL


6.10En la fgurasiguientese muestrael diagramade un controladorde :
llo, diseadopara acrivaren or,:lensecuenciallas sealesde salid.rL

Di*o de conrrclador$ disitalesmcdianrecarasASM y VHDL

tEil

Rx, W & Wa, B,lrlx, Ra mediante el valor de I lgico. El valor de ini.


cio se obtiene mediante la sealde enadaX , estevalor debe ise desplazandoen cada pulso de reloj,
a) Obtenga el diagramade estadosdel conrolador

b) Realicela programacincorrespondienteen VHDL

6.11 En la ffgura siguientese muesta la carta ASM del controlado de una


emachadoaelectrnica. Obtenga el programa en VHDL para dicha
cata.

188

VHDL: El ne de prosm

si3t

'@

disiralg

.12 Realccun programapara la carta del ejercicio 6.5


6.13 Realiceun programapara la carta del ejercicio 6.
.14 Realiceun progama para la cana del ejercicio 6.7
6,15 Realiceun programapata la carta del ejercicio 6.8
.1 Realiceun programaparala cartadel ejercicio6.9
.17 Parael cicuito mostradoa continuacin.
a) Realice el pmgrama del circuito conuolador de tal manera que se
utilicen 5 displayspara visualar un mensajealfanumrico,cuyosc
digos de caracter se encuentran almacenadosen el bloque denominado como memoia.
b) Agreguea su progama las insuccionesnecesariaspara que el mensajepueda Ererecerde fom intermitente.
A continuacin se describenlos elementosy sealesde control:

LOCICA DE DIRECCIN

Proporcionala direccin del caracterque se va a


visualizaen el dsplaycorresrondiente..

MEMORIA

C,ontienelos caactcresvisualar en los dirplays

SELECIOR DEL DISPI"{Y

Habilita el displayen el que sevisualizael cancte.

CONTROL.{DOR

Cicuito que sincronizalas operacionesde la lgica de direccin

SINC

Sealque reinicia el barido de la memoria.

Diseode conroladoresdisiralesh.dianre cartasASM


)' VHDL

r89

Dirao de crtdr ASM nwtcWIDL


6.18 Implementeun circuito que utilice 5 displayspara visualizar
un mensaje
cuyos cdigos de caacte se encuenFan almacenadosen
memoia. El
controlador deberse tal que el mensajesedesplacea la quierda
oah
derecha.A contimracin sedescibenlos elem..,to. y.e^1".
d" corrtJ
LOGICA DE DIRECCIN Determina la direccin del primer caracte
a se
DE DESPLAZAMIENTO lefdodependiendos el de"ilazamiento
es hacia
la izquierdao haciala derecha.
LoGIcA DE proporcionala direccindel caacreque seva a
DIRECCIN mostraren el displaycorrespondienre.
MEMoRIA contiene los caacteres a mostrar en los
display.
sELEgfoR DE DlSpt"Ay Habilita el display en el cul se muesta el
caacter.
coNTRoLADoR

Circuito que sinconizala operacin de las


lgicasde direccinde desplazamiento
y de di_
ecclo.

190

VHDL: El .rede prccramar


sisremas
digitales

LD I SealquehabilitaIa cargade la direccindonde


seencuentrael ltimo caractera tlesplazar
hacia
Ia derechao izquiercla.

CLRI Sealque inicia la lgicacledireccinparaque

lea cl rimrr .racrerlma.enaloen memrrL


cuandoel meruajesedespla?a
haciala izqLrierda.

IZQ,DER Scrialque controlael dcsplazamiento


haciata i:,
quierdao derechaclelmensaje.

UP Serlque inrremrnrr l Jrre.cr,inquc (onn.r r


ia lgicade direccinde desplazamienro
cuandc
el mensajese desplaz
a la izquierda.

DWN Sealque decremenrala direccinque contiene


la lgicade direccinde desplazamiento
cuandi
el mensajesedesplaza
a la derecha.

LD2 Sealque habihraa la lgicade direccirrpar:


cagarla direccinque propocionala lgicaLlr
direccinde desplazamienro.

CLRz Sealque pemitese reinicieel barridode memria al leerel ullmu cdr.icter


del nren,aj..

c-

sealaLrivden bato.quehcbilir,la n,cm,ri, .

ra una opeacinde lecturao escitura,

la lecrurn exnruraJc mem.n!t/ SefuJqueconrroLa


= 0, escritua
V = l, lectura

SINCDZP Sealde reloj parael controlador


BUSDE DIRECCIONESA rravsde estebusviajala direcciirnde la loc;lidad de memoriaa leer

BUSDE DAIOS A tavsde estebusaja elcaracteledode m..


moriay a visuali"aren el displaycon-espondiente

BUSDE CARGA A lravsde csrebusviaja la direccindelpnmc:


(racr(r d leer cuando.e redh_run Je.la:.
mienrc de mensajea la i:quierdao deecha.

INTERMITENTEfUO

Sealque controlala visualizacin


inrermien.
o fija del mensajemostrado.

Diseode cotroladdes disiralesmedinrecrrasASM y VHDL

191

Bus de

Disea de cartos ASM rrcdate WIDL.


6.19 Se deseadiseaun sistematansmrso_recepto
de datosseriecomo
el mostadoen la ffgurasiguiente.La descripcinde
1..
sealesde conttol correspondientes
"1";;;-;
al trasmi.o. ," ,nu".,."r,
u ._oir,il
nuaclon:

192

VHDL: El c de lmeE,a s$tefrarJisirrcs

MEMORIA En cste dispositivose encuentranalmcenadoslos


datosque serntransrniridos.

LOGICADE Le rdica a la memoala loclidadespccficaen


DIRICCIONAMIENTO dndeseencuentalmacenadoel daroqueseha,:1e
transnltr.

CONTADORDE DAIOS Dispositivorlue indica el nneo de dattx quc sc


han transmitido.

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

CONTADORDE Le i n J r. . rl . . , r' t ru ,l d o r L u a n lo ,J r. f lJ r. , n , ie lr, , .


DESPLAZAMIENTOha realizadoel registrode datos.
CONTROLADOR Coordinalasfuncionesquedebernderealizarr por eada uno de l elementosquc fomanel sisrema.

CARDIR Indica a la lgicade direccionaniento


de nemon:
que debe cargarla dieccininicial a partir dc l;
cual se encuentanalmncenados
lcx datosque var
a sertansmitidos.

INCDIR Seiralde ircemenro de la dieccinde


paraleei el siguientedato a tansmitir

"."ut,.

i.in Jc la mernoria
p.rrala. ,'p.raLi.'ne.
CS Habrlr.
i.
lecturao escrirua.

\t

Se.rlque en e'raJ,,lt, rndic"n l mcm,,riru


operacinde iectura.

]NICTADA, Indicaal contadorde darosen qu momentodel.er"


comer"ara contarel nmetode datostransmiridc

INCNUMDAT lncrementael contadorde datoscadavez que u:


dato ha sidotransmitido.

INICTADZP Le indica al contadorde desplazamientos


err qu
rnumenroJrherempezar
.i (ontrr cl r'ull.er -c
bits que han sido rransmitidos.

INCNUMDZP Incr.mentael conrJorJ. Je.pl

.,:r
'zamrenro,
vezquc un bit ha sidotransnritido.

Dne{,J conoladores
dqatales
ediantcrts ASM r VHDL

CARDAI

193

Le intlica al regisnode clatosen tlue momentocargarel dato que seencuentraen el hus,:ledatos,:1e


la
memoria.

DZP Sealque habilitaal rcgisrrodc datospaadesplaza (rrasmt)el dato conrenidoen 1.


FINCAR Seial que indica cun.lo un dal) ha sido trasmitido
completarnente.
l-lNUAl

Jerrrr-luel|ror\\rrrnoot|n nro.]ue
oe odto\nr ndo trasmirido.

INI Sealque indcaal sistemaen que momentoseinicia la tansmisinde daos.


TX Lneaa travsde la cualviajanlassealcsde comunicacindel ftansmisorhaciael recepto
RX Lneaa rrar'sde la cuRlviajanlasseales
de comLrnicacindel receptorhaciael transmisor
La parte correspondienteal receptorse explicaa continuacin:
MEMORIA En estedisposirivose almacenan
los datosque se
van a ecibr
LOGICA DE Le indica a la memoiala localidadespeclicaen
DIRECCIONAMIENTO dondese almacena
el dato a recibir
CONTADOR Dispositivoque indica cl nroero de dacosque se
DE DATOS han recibido.
RECISTRO Dispositivoque almacenatempoalmenteel dato
DE DATOS que se va a recibi.Esteregistrodesplaza
el bit que
seencuentraen su enlradaserie,parala realizacin
de Lrre.c. r n . e rie .
CONTADOR DE Le indicaal contoladorcuandoun datoha sidoeDESPLAZAMIENTO cibidoporcompleto.
CONTROLADOR

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

VHDLj Elarede Frosranasntenhsdisltlcs

INCDIR Sealde incrementode la direccintle memoria,


paraalmacenarel nuevodato recibido.
CS Habilitacinde la memoriaparalasoperaciones
de
lectuao escritua,
!7 Sealque en estadobajo indica a la memoiauna
opeacindc escritura.
INICTADM
INCNUMDAT

Indica al contadorde datosen que momenrodebe_


r comenzara contarel nmerode daos recibidos.
Incrementael conradorde datoscadavez que un
dato ha sido recibido.

INICTADZP Le indica al contadorde desplazamienros


en que
momentodeberempezarcontarel nmerode bits
recibidos.
INCNUMDZP Incemenrael contadorcledesplazamiento
cadave:
que un bit ha sidorecibido.
DZp Sealque habiliraal registrode datosparadespla_
zar (recibir)el bit que seesttransmitendo.
FINCAR Sealque indica cuandoun dato ha sidorecibido.
1

Sealque indica cuandoun bloquede darosha si_


do recibido.

TX Lneaa tavsde la cual viajanlasseales


clecomu_
nicacindel receptoral transmisor.
Estasseales
son:
LSTREC Listo a Ia recepcin,indica que ei sistemarecepro:
estlisto pararecibirun darl).
CARREC Dato recibido,el sistemareceptondica que el
dato que ha sidotrasmitidofue recibidosin errory h=
sidoalmacenado.
ERROR Estaseal seactivacadavezque ocure
un eode
paridadcuandoun daro ha sidorecibido.
RX Lneaa travsde la cualviajanlassealesde
comu_
nicacindel trasmisorhaciael receptor.
ERROR Sealque en esadoalto indica al controladorque
hay un error de paridad(pao mpa).
PARIDAD Sealque indica el tipo de paridadque debernrene:
Iosdatosrecibidos.

Diseode cntdado.esdigitalesmediantecarto ASM y \aHDL

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

El diseojerrquicoesuna herranienta de apoyoque permitela programacin


de extesosdiseosmediantela unin de pequeosbloques;es decir,un diseo jerquicoagupavariasentidadeselectrnicas,lascualessepuedenanali-zar
y simularde maneraindividual con facilidad,para luego relacionarlasa travs
de un algoritmode integracinllamadoTop I-evel (Fig.7.1a).
La conceptualizacindel diseoTop kvel diliere de la pogramacinde los
sistemasdigitales, integrados en una entidad (Cap. 5). En este caso no
se crata de integtar dos o mrsmdulos electrnicosindividuales (Fig. 7.1b),
si no diseacadamdulo por separadoy luegocoordinarsu funcionamientoa
travsdel algoritmode programacin'Ibp l-evel.
Una ventaja impottante del diseojerrquicoen la programacinde grandesdiseoses la facilidadpara trabajaral mismotiempo con otros diseadores
(paralelismo),ya que mientras uno puededisearuna parre del sisrema,otro
puededesarroarun bloquedistinto paraunirlosen un soloproyectomiis tarde.

wqffi
F,r'I\
l@l] lF6ll
a)
rs. ?.1 a) Esuctursjequicas.b) Iresracinde enridades.

198

VHDL: El atc de posuD sisremas


digirales

7.1 Metodologade diseo de estructurasjerrquicas


Una metodoft;gaque se recomiendaal progranrarextensosdiseoses la
srgulente:

1) Analizar con deralleel problemay descomponer


en bloquesindivr_
dualesla estrucruraglobal.
2) Diseary programamdulosindividuales(componentes).
3) Crear un paqtretede componentes
4) Disearel programade alo nivel (Iop Level).

Con el fin de describiry detallarla metodologaempleadaen el disec


de esrructuras
jerquicas,
consideremos
el circuitoAMDZ9O9.Estedisposr_
tivo esun secuenciador
de 4 bitsdesarrollado
por la compaaAdvanceJMico Devices,cuyafuncin es tansferia su bus de salida
[,) una de enoe
cuatrofuentesinternasy externas,:1e
daros.En la figura?.2 semuestala ee
tiuctura externadel circuitoy en la tabla2.1seindicala funcinde cadarer,
minal.

vcc
GN O
YO
Y3
PUsH/PoPl.

oE

crN

l
Figua 7.2 Secuencialo
de cu,rro bitsAMD2909.

l'l contol

D*o jerrquicoen VHDL

Terminal

199

Rmcin

Entradasde registrcRJ-Ro

Consenan el estadoprcente m una funcin de o o

Entrada!dirctasD3-D0

So usancomo entrada! del secuenciadorpara indica un


cambio de direccin en la lgica dl programa.

EntadaER

Habilitacin del resistro R.

Entada/FE

Hebilitacin del punteo de pila Gtack pointe. ST).

EntdaCIN
Entrada,/i:)E

Habiliracin de salidas.

Entnda PUSHrcP

Sealcspan brinc

EntmdS0y Sl

Llneas d seleccinque detemimn ua de cuaro 6entes


dferentes de entrada.

SalidasY3,Y0

Salids del secuenclador.

y retomc de subrutina.

SalidaCOUT
Alimntacin del circuito.

Tbl 7.1 Descripci de las seals d cnrnda y salidadel secudciadoi

Descdpcin del circuito AMD2909


El secuenciador
de4 bitstieneentradapaaun busdedatosextemoD (DJ
- D0), un registroR (R3- R0), un apuntadordepila de unapalabraST y un
sumadode 4 bits, quefincionacomocontadode programa(Fig.7.3).

Flsur ?,3 Dercnpci intema del circuito *cuenciad AMD2909 [tl.

200

VtiDL,llrt

Je pNerf sisrcms
digiral.s

Las elta,:lasdiectasD sc utilizan para canlizar las direccionesde


cargadescleuna memoria,:1eprogranray/o control hacia cl secucnciado
las entradasR srvenpade microprogranu.En algunade 1asarquitecruas,
presente
en
una
funcirin
cle
/roiJo etn.El contado
a alnaccnarelestado
de microprograma,
PC, incrcmentala salidaen PC-+1, siernprey cuandoel
de
enta.la
CIN seaguaLa 1. EstopermitcrceLizar
una instroccirin
acarreo
de c,.rcnta
o almacenaren la pila la siguientedireccincuanclosehaceun llamacloa subrurine,por lo que al salir dc stala direccinse obtienedc la
pila y se canalzthacia el bus,.lesalidaY. Po rltimo,ci cicuito conricnc
urade suscatroentadasPC-'
cuatromultiplexoresde 4:1 que seleccionan
ST R y D, a cravsde suslneasde seleccninS0 y SI.

7.2 Ansis del problema y descomposicinen bloquesindividuales


de la estructura global
Como semencon,el diseojerquicobasasu fortalezaen la descorrposiciDo divisinde un diseo.Lo Rnteiorpermiteanalizarlos difeenessul..
sistcnrasque lo lormany unirlrs mstarrlea travsde un programadenomi
nacloTop Level.
En la figura7.4 se muestrala inerconcxinirtcrnadc cadarrnodc l,s
bloquesy lassealesrle conolque interactanen cadauno de lLrssubsiste.
rna.tn'ulripl.r 'r J..rlc..r,l n . . o n r, J o rJ e rn r. rrp rrq rn mo
re. q r' rru\ d t r, I r
radorde pila) del circuitoAMD2909.

PUS|-I/POP

clN

s1

F igur a 7. 4 Dir FJ m . q. n. r . lJ L J ". , .

Direojerquo en VHDL

201

Diseo y programacin de components o unidads del circuito


El primer pasode diseo consisteen progama de manea individual cada
uno de los componentesy/o unidadesdel circuito. Un componenteesla oar,
te de un programaque deffneun elemenrofsico. el cr,al .e puedeurnr.en
otrcs diseoso entidades.Con baseen la figuraanterior,iniciaremosla programacinde cadauno de los bloquesque formanel cicuitoAMD2909.
Diseo del registo

(R)

En la figura7.5 se muestrael registroR y las sealesde control asociadas


a
1,mieotrasque en el listado7.1 se puedeobservarel cdigoVHDL correspondientea estaenridad.

_..-..Tr:,=.::_z_

Figur 7,5 Resis.ode 4 bits.

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;

Lbtdo 7.r Proeramacinde un qisno de 4 bits.

dounro 0);
( 3 atolrnto 0));

m2

VHDL: El te de prosMr sGres drsirales

Dieeo del multiplexor


Este componenteessimplemente
un multiplexorcudruplede {:1, con dos
llneasdeseleccin(S0y SI), cuatroentradas(R,ST D PC) y unasalida(F)
de 4 bits (Fic.7.6).

Saiia (Y)
Fisur ?.6 Multiplexor d seleccin.

El cdigo de estecomponentese muestraen el listado ?,2.

--

D:seo de_ mrx qre selecciom

una operacin

ura ieee. srd_1ogic-1164. d1;


mr)l4 1. ot (
@tltt
D,R,ST,PC: h -std_logic_vecEor (3 dloloto 0);
S: lD std-Iogic_veclor{L
dloEro 0);
(3 brEro 0));
Y: qr sqtogic_vecror
d
M_4;
cl,tctu
arqJu
o!
b.glD
lth S .Lact
Y <=
R vh.o
s 1 r l ba
PC n h 6
D r.b!

lr.do

rux_4

1s

"10 ,
' 01' .
" 00' ,
otla! ;

?.2 Codieodel muloplao de rle(in.

Diseojerrquicoe VHDL

Contador de microptograma

203

(PC)

En esencia,la funcinde estebloqueesincrementala direccinde entrada


cuandoCIN esiguala uno. El diagramacorrespondiente
se encuentraen la
rgura/. /.

Figu 7.? Contadode microprognma.

En el listado7.3 seapreciael cdigoque describeel funcionamientodel


contadorde microprograma.
Como puedeobservarse,
la maneamssencillade programarloes a tra.
vsde la arquitecturafuncional,considerando
el circuito sumadory el con,
tador como una entidadde diseo,con entradasy salidasgenerales.
El funcionamientoes muy simple:cuandoel acarreode entrada (CIN) tiene el
valor de '1' y el reloj del sistemaesten la transicinde '0' a '1', la direccin
Y se incrementaen uno y su valor pasaal busde salidaPC. En casocontraio, cuandoCIN : '0', seasignaa PC el valo de Y sin cambios.

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

VHDL: El ate de procnmr sistenasdigitales


alcbllctue
bEt
groc8a

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;

Li.tado ?,3 Di*o del cotado! de mioprosEma

Apuntador de pila (Stack Poiter)


La pila {stack) de la gura 7.8 est disenadapara almacena un dato de {
bits, de modo que cuando en un progaamase hace un llamado a subutina,
la siguientedireccin (PC + l) se almacenaen la pila, por 1oque al salir
de la subrutina la dieccin se toma de Ia pila y se enva al multiplexor de seleccin, el cual la canalizaal bus de salida (Y),
Pan poder introducir y almacenar un dato en la pila, se debe habilitar
primero la seal FE (habilitacinde pila) y la sealPUSH (FE : '0'y
PUSH='l'), De estaforma,cuandola trarxicin del reloj (CLK) seade'0
a '1', el dato que seencuentaen PC seintoducey almacenaen la pila has'
ta que la sealPUSH sedeshabilite(PUSH = '0). Parasacarel dato sehabilita la sealPOP (POP : '0), con 1oque el dato se canalizaal bus de
salidaST.

*effii:*cLK "i

Figu 7.8 Pla de unopalaba


de 4 bus.

fl
A4

Diot.rtquico6 VHDL

?M

En el listadot,,l scrcsrae[ prcgraaqueindic el cimamienro


de la entidadcoespondiente
a la pila (stack).

- 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;

7.4 Di6.o de rm pila d uM pabbm de 4 orts.

dalo

th.a
saca daLo

2n6

VHDL: El artedc Froglama


sisenas
disirales

| 7.4 Creacin de un

paquetede componentes

que forma la arquitectutagene'


Una vezque se ha diseadocadam<'rdulo
ral, secreaun programaque contengalos componentesde carlauna de las
entidadesde diseodescritascon anterioidad.Paraestoesnecesarioidentifrcar primeoel paqueteen que se almacenarnlos diseos(lfnea4). En
(el usuarioesnuestroejemploel paqueterecibeel nombrede comps_sec
cogedicho nombre).
Como puedeobservar,en el listado7.5 se ilusta la maneade declaar
cadacomponentede un paquetellamadocomps_sec.
Note que cadacomponente se declaracomo na entidadde diseo.con Ia omisinde la oalabra
eservada
is y agregando
la clusulacornponent(llneas5,11,18y 24).
-.

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

std logic vecto(3


std l ori c vector(3

del

stack

alcrtto 0);
doi nto 0));

23
24
,
26
21
28
29

cqpt)@t
D ," .^

mu_4 llorl { -- deelaracin oe1 nultiplexo:


. o.r
D -: t!
d oq
arow l o
s : i std l oqi c vector(l al oi mto 0);
t: tu ffer sLd l osi c vector 1l al osnto 0));
d cc(rDdrdt;
end conps sec;

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

75 Diseo del programa de alto nivel (Top Level)


Po ltimo y como sealamos
desdeel principio,el algoitmoque une cada
bloqueo componentede diseointeconectadoa travsde sealeso buses
cedennmina
rntern,rr
T'p LeveltFig.Lo,

a)
Figu 7.9 Rogramde ako nivet(TopLvel).

El programade alto nivel que realizaestafuncinse muestaen el lis,


En la parteinicial del programase llamaa la librerlaamd (llnea 1). sta
contreneet paquetecomps_sec,
que cuentacon loscomponentes
que se utilrnen el diseo(cre(in de librenar).
Diseo de los

conponenres det secuenciador

2909

1 Ubrary ieee, md;


2 us e i e e e . s td 1 o q i c ,1 1 6 4 .a t;
3 us w o rk .s td a ri rh . a 1 1 ;
4 uE md.conps_sec.all;
- paquere creado m ta tibrera
5
ertily md2909 i r,orr (
6
R:
tn srd_1ogic_vecror
(j akMo 0);
7
D:
ln srd_loglc_vector
G ato,raro 0);
8
ER:
i srd_roqic;
9
cl,K:
l. std_loglc;
10
s:
ln srd_tosic_vecror
(:L torEto O);
E sccr rogac;
12
F U S H : i s td to q i c ;
1l
RIP:
i std_toqic;
14
CIN:
i std Loqic;
15
COLn:
ftI(,tt! srd-logic;
t6
Y:
r.ffe std tosic-vecror
(3 tmro 0));
:17
d dd2909;

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

Dolt rlaD lcII=>atN,

! l;

s t ac k

! ! t

: 4:

m u I

Dolt n a t i : =>D , R =>L , S 1 => T , ! C =>P C , S . >S , =>! r ;

r egis : r o

E n => R , R E C => R x 6 , R , > P l i


y=>y,
coil'=>cl]T, clr->cr,(,

)r
l0

@p (cil

ll
. 12

l4

=> s E , L i l s i l =>P u s H ,F o F , . ) l - - >a - , 1 1 ,s E


=>
P0:, Mtc
I t c , s : => s r ) ;

eld arlslc,

Listado 7. Ceacmnd.l pfosranr. iincipal.

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.

| 7.6 Creacin de una librera en Warp


Como se puedeapreciar,en el lisrcloanrerior(liscado7.6) se otilizuna:breallamadamd,la cual secreparaalmacenael paquetecomps_sec
q-E

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).

t. Primerosegeneraun proyectoexclusivoparaguardarlos programas


que forrnarnel diseo,o los que deseaninrroducisccn la librera.
Esteproyecto(considerado
comoun archivo)debellevarun nombre
asignadopo el usuarioy la ruta (incluyendola unidad de disco)en
que se almacenar.
2 . Paracrear cl proyecto,escojadel men p ncipal la opcin project
-> new y, de acuedocon nuestro ejemplo,asignelos siguientes
parmetros:
c:\ejemplo\diseo
dondediseoes ei nombredel archivoen que se almacenarn
todos
los diseos.

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).

4 . Si todoslos rliseosapaecenen la ventanade proyecro,tendrque


crear la libreraen que se altacenarn,Paraesto,seleccionela opcin Libaries del men File desdeel men principal.Esto abrela
pantalla llanradaManejador d.eLibreas en GaIa4,

5 . Con la venranadel manejadorde liberlasabierta,selecci(neCreate


library desdela opcin File (del men principal). En la pantalla que se
abreescibael nombre con que identificar dicha librera -en nuesto
casotecleamos
drLl-. PtesioneOk paraaceptarlos cambios.

6. Al llegara estepaso,el nombrede la libreracreadadebeapareceren


el cuadolibraiesdel manejadorde libreras.Presioneel botnDone
paraalmacenardicho nombreen el proyecto.

210

sistehs
dicitales
VHDL, El artede programar

7. De nuevoen la pantallaprincipal,elija la opcinSelectall, del men


Files. Luegopresioneel botn File situadodento de Synthesisopuna ventanacomola mostradaen la figutions, con lo que aparecer
a ?.10.El nombreen la partesuperode estaventanadebeseel del
de la Lista de diseosde la ventanade proyecarchivoseleccionado
to. Aqu eiija la opcinother y la librerlade trabaioque ha creado
(amd).A continuacinpresioneOk, Hay que repetirestasecuencia
con cadauno de los diseosdel DrovecL(].

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

Figu 7.10 AJchivoscompiladosdento dc la liber nd.

8. Una vez que se encuentren todos los diseosen la libea, esccl.


Savedel menFile parasegurarque seguadenlos cambiosrealizadcti
9. El siguientepasoescompilarlosdiseosen la librera.ParaestoseFre
sionael botn Smart de la ventajade proyectos(project).Con es=
..
opcntodaslas unidadesde diseoy su paquetecorrespondiente
compilanen la librera.
10. Para comprobarla compilacin de los diseosen la librea, se eLrg
librariesdel men1e6.Estaopcinabreel manejadorde librerase
Galaxy.Aqu veremosque los diseoscreadosse encuentranden-i
de la libreraamd.

Diseojrrqu@ en VHDL

2ll

Parareaffrmar la programacinde las esructurasjerrquicas,considere,


mos el siguienteejemplo.
Us el diseojerquico paa disear un micropiocesadode 4 bits como el
de la guraE?.1.

firm f,7.1 Mroprcsdo { birs.r

Descripcin del mictoptocesador


En la ffgua E?.1 se apreciacada uno de los bloquesintemos del microorocesador.Su funcin es la siguiente.
. Generdo de ciclo de m&uira. Este mdulo es la unidad
de connol
del microprocesadory su funcin es sincroniza y activar la participacin de cada uno de los egistrosintemos del microprocesador.
. Corado de progrma.El contador es un egistro intemo
del micro.
procesadorque ptoporciona la siguientedieccin de memoria,seapa,
ra introducirun dato o ua instruccinal microorocesado

t Uruiu.laJ"Mara.Mrrbpd ee,t, ptosrfun rr^l6.M{tuIt,w5.t4

212

VHDL, El ane rle mgramarstc,aslisitalcs

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

Unidad aritmticay lgica (ALU), Es la parrc del microprocesa,:lo


lgicaso arirmticas.
dondcsc realizanlasoperaciones
tenporalmenteel
Acumulador temporal.Esel regisrroquc alrnacenir
realizacls
dento,.lela ALU.
esultadode lasopcraciones
Acumulador permanente.Esel egistroque almacenael resultadodc
la rltina operaci)nrealizadlpor el microprocesador.
Solucin
I. Descomposicin de la estructura global en bloques individuales
Programacindel generadorde ciclo de mquina. Esteml1ulocoordin
utilizacinco sealesde conrrol
los procesos.iue realizel microprocesador;
(A, B, C, Ll y E) que activanen orden secoenciallos registrosintemosdel
microprocesal1or:regstrode instruccn(A), regrfro de dos(B), acunuld,lo
temlxtal (C), cwnulad(,rpernanenfe(D) y ct,nta,larLlepragrama(E). En la frguaE7.2a)sernuestraestemduloy el diagramadc tiempode lasseales
de
(E7.2b).
activacin

"*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

u se r eee. s Lc loqic : 1164. a11;


u6e troli. src-ri
4llty

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

C00: L = > A< =

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,

wh4 ' 0011

= > 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

ListdoE1.l fr.rArnacindel CCM.

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

VHDLI El r. de poga$ sbt|a digitales

'

PograaclO lel rEgitfro de instnccie (RI). Este mdulo almacena


temporalmentelas instucciones povenientesde la memoria de progtama.
Su funcin es guardar el edigo binarircde la insttuccitr mediante la seal
de habilitacin (A) que envla el generadotde ciclo de mquina, En el lista'
do E7.2se muestrasu gogramacin.

Fht

E?J Rgtrod. irut ..i.

-- 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

Programacin del decodiffcado de inotruccin (DI). La funcin de


estebloque esconveti el cdigo binario proveniente del registrode instrccin en una accin particular,la cual habilitauna de variasoperaciones
1gicas o aritmticas dento de la ALU. La programacin de este bloque se
muestraen el listadoE7.3.

:r.+

".].:-''-""-.:=*Fisu 87.4 Decodilicador


deinrruccin.

Mduto det decodificador


u8e ieee. s!d_1o9ic-1164. aU ;
use wok. s td_ari Lh. alL ;
erllty
deco ins ls por (
RI: lrout sLd logic vecLor
DI: lnout s td_logic_wec tor (0 to 7 ));
arc.hltecture

a_deco of deco,ins

Drocss (RI) besh


case RI ls
then
0000" => DI
t{trcn 0001" => DI
*iE
0010 => DI
tllE '0011 => DI
r*E
0100 => DI
rtta 0101 => DI
sben 0110 => Dr
l{t|e 0111
DI
->
rehr others => DI

<=
<=
<=
<=
<=
<=
<=
<=
<=

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

VHDL Ele de posEmr.L,etus drcrlale'

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,

Fig|m E?5 Resisto de datG.

--

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;

LEtdo 87.4 Pmsmro.idn dl regaro de drd.

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.

FiguE 87.6 Coqi

Je un, mcn,oja exrern,.

Como puede observarse,el conrador se incrementa cada que se gcnea la


seal (E) povenienre del generador ciclo de mquira. La programacncle
esta unidad se muesrraa continuacn (lisrado E?.5).
-- rdulo

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

VHDL; El are d proelmr sistehasdisitales

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

AND, el acumulsdorcon el dato inmediaro


OR, el acumuladorcon el dato inmediaro
XOR, el acumulador con el dato inmediato
Suma aiitmtica del acumulador con el dato inmediato
Inveni el acumulado
ReteneeLdato {hold)
Crear n dato en el acumulado

DescrirEinde la operacionesdel nioopi@sador

ffi
Figua E?.? ALU: unidad antntica lsrca.

Diseojerquicoen VHDL

219

Cabemencionarque seisde las ochooperaciones


que realizala ALU requierendos datospara l ncionar:uno se almacenacon anteioidaden el
acumuladory el otro provienedel registode datos.Observeque la nica
operacinque no requieredosdatosesla funcinde "invertir",ya que seealizainvitiendoel contenidodel acumulado.
Note tambinque a la salidade cadabloquede operacin(and,o xor,
etc.) se encuentraun buffertriestadoactivo en alto que,con ayudadel decodificadorde instruccin,habilitauna de las sietesalidascorrespondientes
a cadaoperacin.Observeque el resultadode las operaciones
se almacena
de nuevoen el acumulador.
En estecasoutilizamosuna sealauxiliarllamada OP (operacin),la cuai guardartemporalmenteel resultadode dicha
operacinyluegolo canalizaal acumuladorremporal.El listadocorrespondientesemuestraa continuacin,listadoE7.6.

u6e ieee . s td -]o q i c _ :1 1 6 4 . a l l ;


u work . s td a i th , a 1 l ;
t lt y
a l u i a D o rt (
D : inout
d 1oq _ - .
P D : i tro u ! s d l o q ,c _ - o
A c C : i n o u t s td -1 o g i c v e c to r
oP : i a o u t s td -i o g i c _ v e .to
a_alu

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

Listado E?.6 Prosamacinde la nidad ritntic y lsica.

to

\tIDL: El ie.d. r'loSsr sistemasdigirles

Roprrnasin del acunuldor temporal (AOT). La funcin de este


mduloe lmacenatemporalmenteel resultadoprovenientede la ALU
" (OP) y despuscanalizarlopor medio de su salida(ACT) al acumulador
I .penanente;estodato sealmaconamediantesu sealde habilitacin (C)
provenientedel generadorciclo de:rnquinarEo el listadoE7.?semuesta
la progamcin dc erte mdulo,

Fisu E?.8 Decodifcadd de inrtru@in.

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;

Li.tdo E?,7 Acumulaorrehporal-

DFo Jerrqurco
en VHDL

22t

Progtamacin del acumuladot pemranente (ACC). La funcin de este


mdulo es almacenarel esultado ffnal de la ltima operacin realizadapor
la ALU, ya seaparaenviarlocomoaplicacinexternao tetroalimentaral mi,
croprocesador.
Estedato se almacenamediantesu seial de habilitacin(D)
provenientedel generadorde ciclo de mquina.En el listadoE7.8semuestra la programacin
de estebloque.

-1'

+t"

v4

.|-]--J'
-!!is
[ .,,. 1q9.1. -a; /a

-::=-1f::.

acc

ti13:::e:i:;=i:::::--:::

Fisun 87.9 Acunldor

-- Mdulo del acrlrulador pemnnte


ieeei
Ilbranf
ul iee e .s td L o q i c 1 1 6 4 .a 1 l ;
drtlty
acur' ls port (
D: lort std Logic;
v-. o'
AC : ll4t
d__
ddto
(3 do{rto
Acc: 1<t std_loqic_vector
alchftcture

a acc of

0' j
0));

acur' Lg

Drocsd (D) begi


(D event aral D=
lf
ACC <= ACT;
d lt;
dd proccs6;

1 ) tb6

w
Listado 87.8 Prochna.in del cunuldor pemanente.

. Propamacin del paquete de componetes


A continuacin(listadoE7.9)sepresentael paqueteque incluyelos componentes del sistema:genercorde cicb dc m4uina(gcm),registrode rstruccinn

222

\HDL: El ate de prosramasistemasdisrtales

fteg_ins), cofnaln de insmrccin(deco_ins),registrode datos (reg_dat),


cmwdor deprograra (pcount),uniledaritnticd hgica (alu), acwnula.dortem'
p,:ral(act) J acumulaor(acum.)

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

E?,9 Paqetede compoenr$.

IU. Pograma de alto nivel


En el listadoE?.10se muestrael programaque conectatodoslos bloques
(TopIzvel). Ohserveque a diGrencia del ejemplo del secuenciado,el paque.
te micro4 no s ce en una liberfa nue!, sino en la librerla work, lo cual
tambin es una accin pemitida en VHDL.

u.. iee e,std_1oqic


1164. ! 11,
u.. wo rk. s t d_ar ir h. ! t
1;
u.. wolk.nic r o4, alt
I
.tlty
(
mp4 1. Drt
cLK,sRr:
R0:
Rr:
ACC:

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[!

sitdnr dtgit l,r!

(cJ( .> cLK, REss .> RESeT, A


A. B .> B, C
C,
->
->
D + Di 0
O)s.-r
U2: REG _I NS Dot t . , ( A ='. A .
R 0 ='R 0 ,
R I => R I ) t
.U3:EEG-DA Ft
r (B ->,8,. R0 -> R0, RD => RD);
q4; , pECo_I Ns r o! !
( R I : >, R I ,
DI -> DI);
t aD
u5: ALJ par rD (Dr .> Dl1.:lD a> RD"j ACC -> ACC' OP -> OP);
(E => E DI '>DI,
U6: PCOUNTptt
rt
PC -> PC);
(C
lat
U?: ACc r or t
C , O P - > o P , A c T => A c T ) ;
->
lt1:

@M ,crr

u8: acut ,or! r (; :t D, cr =; licf, Acc => Acc);

.na_'ii-p4 ;

lrdo

E7.r0 Proema dt alto nivcl.

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

src..no, llL. fL.y'li &ndd,d&

! Skm\

DsrLi.Prcnti.c H11,199N,

226

VHDL: El artedc prcgranarsncmas


drsuls

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

Di*o jer.qui@en VHDL

Li Elfi:g**E

b) Sistemade embasadode pastillas (estadosiguiente).

227

228

VHDL: El a e de proerarosiemsdigitles

Bibliograffa

integradosltilrG. Maxinez David, Alcal J. Jessica.Diseode secuenciaJores


prograntrble
Inrernacionl
lgica
FPGA.
Congreso
campos
de
Tando
AcadmicoElecto'98.Mxico, 1998.
Logic.Addison Veslel', 1996.
Skahill Kevin. VHDL For Programmable
Mazor Stanley,LangslraatPatricia.A Guideto VHDL. Kluwer Academic.
199).
grdles.
PrentceHall, 1998.
TL. Floyd.Fundamentos
desrsemds
Ll. Ges; Y Tooja;S. Olcoz; E. Mllar. VHDL, lengutjeestndarde disec
McGaw-Hill, 1998.
electrinicr.
a ats ,Jei
David G. Maxirez,JessicaAlcal. Dno de SistemtsEmbebidos
Lenguajee Descripcinen HardwareVHDL. XIX CongresoIntemacio.
nal Acadmicode lngenieaElectrnica.Mxico, 1997.
DescptiarLatrgudgednd dtir .rplicdllrns.SpC. Kloos, E. Cerny. Harw,:1re
crfrcarion,Modelling,Verfrcationand Sydresisof MicroelectronicS)stems
Chapman& Hrll, 1997.
Maru.ral.
IEEE-SId-10?6.
Fcfeence
IEEE:T/reIEEEsnd VHDLL.anguage
1987,1988.
McGraw-Hill.
Zainalabedin
Nav.rbi.Ana\sis and Molelingof DrgiralSysterru.
1988.
guidero VHDL. NlorganKauffmanPublishers.
Ashenden.
TheDesigner's
P J.
lnc., 1995.
Descpt/on
andDesign.KluwerAcaR. Lipsett,C. SchaeferVHDL Hard+rare
demicPublishers,1989.
uirh VHDL. PrenticeHaLl.
J. R. Armstrong y F.Gail Gray.StructlredDesrgn
1997.
J. A. BhaskerA VHDL PrimerPrenciceHall, 1992.
H. Randolph.Appliciios
af VHDL t:) Circtit Design.Kluwer Actlemr
Publisher.
Re{erencias
[1]
[2]

P Hayes John. Diserio de sismsJigales1 nrcroprocesodotr


McGraw-Hill, 1988.
Pnrgrdmdcijne iedlc.i
Jrx Mara Uruuela. Microp/ocesddores,
McGrau-Hill, 1990.

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

\ HDL El Jftr J r p ' r t ur n' nne, n, \ Ll' er , . , 1. \

Los sistemasembebidr^siempre estn compucstospor nicroprocesador,


memoria, entradasy salidasa perilricos y un programa de aplicacin dediin la mrnr,'ri,'.
cado.u .rd"d" crm
'ncnlen,ellr<
Un programade aplicacinpara un sislemaembebidoforma parte del sis.
rema y por lo geneal se ejecuta sin necesidadde un sisteDraoperativo; por
rRnro, la aplicacin del programa ha de incluir el software para conrolar e
interactua con los dispositivospcrifricosdel sistema.
En la actualidad estossistemirsestn pesenresen la vida diaria en hv.
doras, videos, televisores,calelccin, sistemasdc alarma, procesadoresdc
alimentos, computadoras,etc. Atlems, van de lo ms simple a lo muy com'
plejo, ya que controlan dcsdc las luces en kx zapatostenis hasta los sistema
de contol clelos avionesmilitaes; asimismo,cuenfan con varias entadas\
salidasa otros sistemaso perifricosque son dispositivosconectadosal siste'
ma principal y contolados por el microprocesddor.Los microprocesadorc:
que contolan este tipo .le sistemesse puedcn dividir eD:
. Microprocesadoresndqidwrles. Sc encuentran en dispositivoscomo
sensoresde temperatura, cletectoesde humo y gas, inrerruptores d.
circuitosl1 l.
. Coni.nosde mictoprocesadores sin frnciones de reloj, Se hallan er:
conolaLloresde llujo, amplilicrdores dc seal, sensoresde posicirin
servomecanismosde vlvula [ 1].
. Coniutttos de micropwevdores can funcimes de reloi. Se encuentren er
eqLripos
mdicosde monitoreo,controladores,centralestelefnics,sistemasrle adquisicinde tlatos (SCADA), sistemasde diagn)sticoy tipo teal
. Sistemds compfdri\eros usados en cotrol de Drocesos e indrsfri(l.
Son compuradorasconectadasa equipos para controlalos[].
Funcin de ejecucin del sistena

Campo

Controldcl euar clclode !os

Hogar

Acepia i sel de ls reclai v nnnda


Fulr^ niiarrcjosl sisrembase
L)cspcrtadorcsy cl,jcs

Conrola eLtiepo, l aLaaI l


conroldel ba*tu dc ndo
ori.l) 1 5alid,dc dco
Inter.t.on el operador

Contcstdols iclcinic$

Reprodciode mensjesde s]id,i


qmrda r organi?a
nenrjct
TecLdode ennda,rnldo dc cntrda L salida,con nicciin.o l

thbla E.1 Aplccores de loslsremaserhcbidosl


r n,

l. J c ' , . t r ' \ ! J 1c or

Ssteascmbebidos
e VHDL

Campo

231

Fmcin de ejecucim del sisreDa


Opiihiz el frendoy la era.nin de
Conoh clencendidoy la mercla
de losinyectores
de cohbusrible

Miliar
Orden programada
de fotmadnecta
Sistcna de posicin globl

Detcrminael punto exactodondese

SGtemas
de controlde tco Detcctala posicindel caro y conol l sealacnjD(semforos)
Conola los motorespara el !!tsicionanientode bazos,
ecre.
CdEode bar.aslecruay

Conia tareasa pdrtt de valores


por sensores
detectados
Realizalctura de vlo.esde
enadasde escliruapan conoi dc

Mdico

Monitorea fuhciones cardiacas


Trtanientode cncer

Ct.ola radiacin, adninistracin


de sustancias
qulicaso.al

Tabl 8. lb Continuacin

8.1.1 Diseo de sistemas embebidos


Paateneuna estructuafindamentalcomn,lossistemas
embebidos
cuen_
tan con un ciclo de desarollorepesentado
por el pocesoen que segener
el sistema.En esreciclo de desanollosemuesrranlos avancesen la ingenie,
ra paamaximizarla posibilidadde producirun sistemaefectivoconfiabley
al que se puededar mantenimiento.
Cada fasede ciclo de desarolloseidentilica mediante un bloque con una
actividaddominantey el resultadoprimariode cadafasesepresentaen la sa_
Iida de bloque.Cada resultadoest representado
por documentacinque
descibeal sistemaen esaetap,Como consecuencia,
se tieneuna documentacincompletay exaclade cadafasede desanolloy del sistema6nal.El mis,
mo ciclo esaplicablea un sistemadiseadoparauna personao un equipo.En
la ffgura8.1 semuestrael ciclo de desarollode un sistemaembebido.

VHDL: El an de prosrrs siten drgitales

Erp.cilicl luncional
3
d .qun durr
E pocillca4ln

E.pclt:cion$ d. odulo6
5b

Fig|m 8,1 Ciclo de deidollo dc un 6bt na intsdo.


I Tonadod. Sho(1.K.(1e98).

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

VHDL: El a.tc dc progharsisrems


disitales

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

Diseo del software


En estaetapase diseala ejecucindel flujo de datosy seimplementanlas
ftrncionesy procedirnientos
de cadamduloparaque interacren.L-oanterior pemitejeaquizarel funcionamientode los mdulosque componenal
sistema.
Irnplerentacin del software
de datosque se
Consisten definilos algoritmosa detalley las estructuras
que
puedaconer en
software
se
disea
de
modo
van a desarrollar;
adems,el
otras aplicaciones-aunque siemprese diseapara una aplicacin especfica-. La progamacindel sisremase realizamediante mdulosindependien.
tes que ms tarde se eruamblan o compilan. Tdoslos eroresdetectadosse
corrrgenen estemomento.
Pruebas del software
[s mdulosprogramados
en la etapade irnplementacindel softwarese
pruebanen formaindividualmediantela simulacin.Despusde estoseconectanpararenerel programacompletoy probacadaestado.
Sistemade integracin
y todo funcrcr
Si las fasesde softwarey hardwareseejecutaronpor separado
n, es el nomento de integrary prcbarel sistemade softwarey el prototi
del hardware.En estemomentosedetectany corigen los problemasencon'
tadosen la interconexino en las intefaces.
Validacin del sistema
Estafasepermitesabersi el sistemafunciona,si hay errores-los cualeshapor el cliente.
solicitadas
br que corregir- y ealizarmodiffcaciones

Sisten.s embebidosen VHDL

235

Operacin, mantenimiento y evolucin


Es Ia fasefinal y en ella seimplantael sistema.Cuandosteya seencuenra
en servicio,se pucdemodificapara satisfaccrnuevasnecesidades
e ince_
mentarsu calidarl.En estaetapase puededar soprrteal usuaioo conegir
algnerrorposterior.
3.1.2 Clasificacin de los sistemasembebidos
La IEEE usala clasificaci)n
que veremosa continuacin.
. Micropocesadorcs
individuales.Se puedenhailaren disposruvos
pe,
queoscomosensoes
de remperatura,
detectores
de gasy hunro,crcurtos de interrrrpcinde corriente,etc. Ahora bien,convienesealrque
su manejoohececiertadificulrad.
. Llneasde produccinpequeas,Sepuedenenconta
en contolado,
resde flujo, amplificadores
de seal,sensoes
de posici)n,
accionado_
resde vlvulas,etc. Su operacininternadependede un reloj.
. Lneasde produccin con funcionesde tiempo. Son
los dispositivos
de distribucinelctricacomo controles,centalestelefmcas,srste_
mas de monitoeoy adquisicinde datos,diagnsticoy sistemasde
contol en tiempo real,ent oos. puedenser elementoslocalesen
sistemasmsgrandes,ya que proporcionaninformacinde susscnsores;por ejemplo,en l()ssistemasde computacinusadosen la manu_
factuao en el control de ptocesos.
Asimismo,puedenformarparrede
LrnaPC y comprenderalgunasbasesde datos(comohechos).En stos
casosla computadoraseconectaa la planrao a la maquinariaparalle_
var el control de stas,Los sistemas
de computcinseusalrparacon_
trola y nonitorea el proceso,A menudoestetipo de sistemasabarca
otrossistemas
integradosque trabajanen conjunto,
8.1.3 Factores que se deben considear para el di6eo de un sistea embebido
Como puedeadvertirse,en el diseode sisremas
embebidoshay quc considerardiferenesfactores,de los cualesmencionaemos
los msimportanresa
continuacin:
Costosde sistemaque incluynentrenamiento,
desarrolloy pruebas.
Costosde materialque comprendenparresy refacciones.
Cosrcsde manufactuaquedependendel nmeroy complejidadde los
Costosde manrenimientoque incluyenevisiones
paraarreglarerrores
y andlizarsi esposibleaumentao escalarel proyecro.

236

VHDL, El lrc de proerrasncnusJisifules

. La memoriade slolectura(ROM) debetenei el tamaironecesrio


pay arreglosde datos
ra soport instrucciones
. La dimensinde la memoriade accesorpido (RAM) debeser srrfi'
centcparasoportavitriablesglcalesy locales.
. La memoiaEEPROMtieneque aceplarareglosde consultasque esrn en un arregloconfigurable.
ruetengavelocidadparaejecutarelsoftwareen tiemporeal.
' Esdeseable
. El anchode bandade los disposirivos
afectaIa rapide entrada/salida
dezde tinsitode darosen la entrada/salida.
. ELtamaode 1osdatosde 8, 16 y 32 brtsdebecoincidircon los datcs
que sevan a procesr
. Las operaciones
divisiones,srgnr,)
numricascomo multiplicaciones,
punto flotante.
. Lasfuncionesespeciales
comonmeroscomplejos,Igicadifusa,multiplicacin/acumuiador.
digitalesdc
puerosparalelosparamanejartodaslasseales
' Suficientes
entrada/salida
' Suficientespuertosserialesparaaceptarla interfazcon otra computadora o dispositivode enrrada/salida.
. Funcionesde tiempoparagenerarseales,
medicionesde ftecuencrai
periodode medicrones.
. Timaiio del circuLco.
. FuentesdisFonibles.
. Disposicinde leng(rajes
y simuladores.
de alto nivel, compiladores
opcrancon pilas
de poder,i-aque muchossistemas
' Requerimientos
que
incluyecomponentes
embebidos
Adems,la mayorade lu sistemas
posicin,
velocidad,
y
pametros
mundo
rcal
como
del
miden controlan
temperanrray voltaje.Debido a estoel diseosiempreincluyedispositivos
filtrosy convertidores
digitales
comoamplificadores,
8.1.4 Diseo de microprocesadores VHDL
-

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.

Sistems mhebidG e. VHDL

237

| 8.2 Diseo de un microprocesador


En la ffgura8.2 se muestael diagramaa bloquesdel microprocesador
que
vamosa disear.Cabemencionaqe entte susprincipalescaracterlsticas
se
encuentranun busde direcciones
de 8 bits(A0-A?),un busde datosde { bits
(D0-D3), treslneasde interrupcineser,IRQ1 e IRe2, una llnea de validacinde direcciones(VMA), una llnea para una sealde reloj, una lnea
de lectura/escrituray dos lfneaspara la alirnenracron.

l ---

E#|;"*-"
CLK
tBol

Figu 8.2

Dia$amd a hlotues del hicrcpeesadoi

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

VHDL: B ar. d. proglrd rtcms digitalet

Contdor de proStana {PC) ,

.-

,.

':

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.

Eglr 8.3 Contdtr . p.odrna.

El cdigo en VHDL que describela fucin del contadot de programase


I
ecuen$a'en el listado 8.1.
l

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;

Listado E.l P.sranacidel..nradordeFrcsrama,

Segnla descipcinanterioren VHDL, el contadordel programatiene


tresvariablesque lo hacentrabajar:cs,cllry reset.
La variableresersine paainicializaloen la dieccin"00000000",
mis,
ma en que el micropocesador
ejecutala primerainstuccin,
La vaiablecsinilica la funci(rnque sedeberealizarCuandocses iguala
"11110" la variablepcotesiguala la variable pcantol estahima seal
provienedirectamentede la unidad de contol-. Adems,puedeserigual
a la direccinde inicio, a una nuevadireccincuandose dio antesuna instruccin de saltoy a las direccionesde inicio de las interrupcionesIRel y

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

VHDL: El aft. d..prostlte. r.|@ disiteles

Regirto de fudice

El registo de lndice (lX) esun reSitrodc 8 tritsque seusaparaalrnacenar


en el acumulador
escdbirdatosalmacenados
unadieccindondecsatcible
A. Esteegisto se puedeincementar e inicialar a una dieccinque el
usuario especifique.

El cdigoen VHDL regisrtode lndicese encuentrae el listado8 2


iee;
11lr.|ry
u!. iee. s !d-losic-1164 . d. ;
n.e ork. std-arilh. 11;
indice l, Dott {
*.ttt)'
c l k : l s td-Iaqi c'
(7 atddt 0);
pconlrol,
l std-1ogic-veclqr
(
4 ldto 0);
cs: l s ld-logic-vector
reset: i std loqic;
(7 aktttto 0)),
ix. f.Dut std-logic,vecto
lral,
' rii
elur

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

' 11010' -> i x < = P conl ro];


F
r e . ,11011.,= > i x < = i x + 1,
=> E11;
i!4
ot.+
. c..;

.!ld If;
Lli
Docaa ;

d;:l

Li.ado 4.2 PrcgMci del re8Gd.lndic-

Sistemasenbebidosen VHDL

241

Lassealescs,cil y resrafectanel registrode lndice.La sealclk tiene


el mismoefectoque en el contadorde programa.
Cuandola sealde resetes iguala "1", colocael contadorde ndice (lX)
con la direccininicial "00000000".
Cuandola sealde csesiguala "11010"
el contadorde ndicees igual a ftonrrol. En estecaso,el usuariodetermina
el valor de pcontroieo su programa.Cuandocs esiguala " 11011"el valor de
IX se incementa una unidad. Cualquier 'otra combinacin de cs tiene un
efectonulo en el registode ndice.
Registro de pila (STACK)
La pila (sraci<.)
esun registrode 8 bits que se usapraalmacenarla ltima direccin del contador de programacuando ocurre una solicitud de interrup,
cin (IRQI y IRQZ): Est seve en la f4ura &4.

-:::-::-::::.:!::::..::1-.:i:i::E-:F::=

Figu6 8.4 Resisod pila Ga.[).

Su cdigoen VHDL semuestaen el lisrado8.3.

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

VHDL, El a.te d proeramasntemasdieitales


Dcea
ariable
tf

(c ]k , c s , reset)
q: srd-1oqic vecto

(7 domto

0);

reset = '1' tbr


p i L a < = 0 0000000 ;
(clk

lf

event and clk

1 ) t:bs

r n 11100 = > pi La < = pcoul ;


stle oherB => m:U;
ena case;

Lbtado 8.3 Proglamcinde la pila-

De acuerdocon la descripcinVHDL del registrode pila,steseve afec'


tado por las sealescs, clk y reser.La sealclk funciona como ya se ha mencionado.Cuandola sealde reseresiguala "1", inicializala pila con la dteccin "00000000".Cuandocsesiguala "11100",el valorde la pila esigualal
pcor,esto ocurre cuando existe una interrupcin. Cualquier otro valor en cs
tiene un efecto nulo sobreel registro de pila.
AcumuLador A y B
El microprocesadorcontiene dos acumuladores(A y B) de 4 bits cada uno.
Contienelos operandosy el resultaque se usancomo registrostemporales.
do de las operacionesefectuadasen la unidad lgica aritmtica.
El cdigoen VHDL del acumuladorA sepresentaen el listado8.4.

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

(ctk ewenr and clk


cs 1s
l d rr ' 1 0001

1 ) rtE

=,

a < = d a r oi n;
uteD 11100
*hef
eb

11101

=>

oters

ruu;
ed

ca8e;

eft if;

eralif;
erd Drus8;

Listdo 8.4 Proerhdcin det acumuladorA.

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.

use 1eee. std_1ogic_1164. all ;


lrtity
regb5 ls Dor! (
cs:i srd_1oqic vecror (4 kmto 0);
c1k, reset: i srd_Loqic;
d a ro i n :i s rd _ 1oqi c vecror 1l al cMl o 0);
b: it@t
srd losic vecror {3 alc4'rro 0) ) ;

Conlna

u4

VHDL, El arte de progmm sistemasdigitales


alcbltactro

imped@cia

otr reqb5 1

D!e86 (cs, c1k, reseL)


(3 d,mrto 0);
@ib1e
btes:std-1ogic-vector
b{In
lf eset = 1' Iea
b < = 0 000' ;
sl3r
.d c1k = L ) llr
!t (c1k ev6t

b <=
i bE
l res
rle
b <=
rth.r
fuu;
@d

datoin;
' 11100 = '
:= b;
11101' ='
brs;
=>
olbB

ca6;

et tf;
fal lt;
,al Dlocr6a ;

Listrb a.5 Prosnmacindel acunulador B.

El acumuladorB ealizauna 6ncio similar al acumuladoA. La nica


variacin est en el contenido, que depende exclusivamentedel valor que
asignael usuario.Paraello la variable cs debe ser igual a "10010. La variable
'restiene la mismafuncin que la variable aresen e1acumuladorA

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.

El cdigoen VHDL de estercgrstrose muestraen el listado8.6.

Sbr.@ mbebdor cn VHDL

2Al5

ur ieee. std_1oqic-1164. rU;


dttty
sel_dato
t! Dort (
c tk i n

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

8.6 Rogtmacin del egrrc Sel-dato.

Como se observa,en el cdigodel Sel-Datola variablerese


no tiene
efecto alguno; en cambio, la sealc& tiene la funcin ya mencionada.
La seal cs determina el tipo de dato que se va a introducir Este dato
puede ser extemo, de una memoria, y se presenta cuando cs es igual a
"10110",o intemo, comoresultadode una operacinen la unidadlgicaarit.
mtica.Estoltimo sucedecuandocs es iguala "10101". En slntesis,el registroSel-Datono es siooun multiplexorde dosentadascon una salida.
Regi8tro ?i'Est
k un egisto que permite sacardatos del microprocesador,los que pueden
se el esultado de una operacin en la unidad aritmtica y lgica. Cuando
no esten usoesteregistro,sussalidastienen un estadode alta impedancia.

24

\4tDLj El ne de prcgEd sisremasdigiraLes

En el listado 8.? se muestra el cdigo VHDL correspondiente.

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;

Lltalo 8.? Pro8rocin del regisftolii-E6r.

Como puede observarse,reseltampoco afecta al legistro Tii-Est y segn


su descripcin,se trata de un buffe unidieccional con estadode alta impe_
dancia, En conjunto, Ios registrosSel-Dato y Tii.Est dan al bus de datos del
micooocesadorla caractestica de ser bidireccional.

SiseM .bb1o6cn VHDL

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.

El cdigoque describeal registroSel.Dir oeencuentraen el listado8.8.

ulG ieee. s !d_1ogic_1164 ..L1;


antlty
sel_dir
is EEt (
pcout: La s!{losic_vector
clk:lE
s!d_]ogic,
irt
st{loglc
vecLor
direccioir r dt sE{logic
vector
cs: tD stlosic_vec
to
@ll sel_dir;
.lihltctut!
arq-sel
di of sel_dir
ts
DcA
,l.oc.a (cs, c1k)
bsl
tf (c]k'.lndt
aDd clk = 1 ) tha
ihlo

" 1 1 0 0 0 ' = > di recci on

t|hs

otblr!

=> direccion

.oal 1f;

tntrdo E.E Prcgamacindel regisrrcSl-D

< = i x;

<- Fcout;

244

VIiDL, El r de rcsranr sistendsdlsrLes

La mayorade las vcccs,cl rcgistr()Sel-Dirseleccionala direcci(ingenesiempre


radapor elcontatlorde programa,debidoa que el microprocesador
y nadamscscogela direccindel rcgtestleyendodatoso instrucci()nes
tro ndicecuandova a escribirun dato en la direccinquc steseala.Aunque cn cl cdigode VHDL de Sel-Dirno existela sealdc resel,cuandosta esguala "1" el valor,:ledireccnes igrrala '00000000".Al iguaLque en
de Llosentadesr
cl registroSel-Daro,Scl-Dir no esmsque un mLrlplexor

Registro Dir.Val

La importanciarleesteegisrroresideen que su s.rldaindicaa losdispositivos


quelatlireccinpresenteercl registroSel-Diresvlida.En opera'
perifricos
cin normal,la sealDir,Val (VMA) sedebcutilizara fill de habilitardispoo algnotrc dispositivod.
comomemorias,
dec(xlilicadoes
sirivosperifricos
y cuandodeneun valorde'l
Estasealno esde trcsestados
entada/salida.
\'lida;
en
caso
contrario
esunatlireccnro vlida.
indicacrLe
la direccines
internasel n cropocesador
Estoes asporqucdurancealgunasopeaciones
que
no
est
usando
en cscmomento.
una
LlirecciLin
en
el
bus
coloca

Su cdigoen VHDL semtcsraen el listado8.9

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!

Listado 8.9 Cdisl) .1c1csiso D-VI.

ard
aid

not

td Ft
(.::;Lolrl;

.lL6rn6.reb]n'm'-

lh9

o,bce*ar*,ehtclsnoDir.Valesm circuito cornbinatorio


Conropuc<le
con
unasallla nica{VMA) y sliidk'r csiguala "1" cuadoseefecblauns @ea.
cirdelectura'b'iitta.E valrdeVMA d4ende en todomomentodecs.

Uni.Ld lrrrtic y lgk+ (ALU)


La unidadartunticay lgicaes,urufuncinmulti'operacin
digital de lgi.
c combincional.
Pueder*iPun coniuotodc opeacionisaitmticasb.
sicasy otro de opeacione lgicas,

El cdigo en VHDI" de l&tdd aritmtica y lgica se encuentra en el


listado8.10. ]:.;

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

VHDL: El arre d. lfogrmfi sited disirl!


i @ " 00010 " >
operacion <= (a - b);
t! (a >= b) tb
c 1 (0 ) < -' 1' ;

c 1 (0 )< . 1f;

' 0' ,

d ' 0 0011' = >


operacion <= (a .Dd b);
c l (0 ) < .

' 0' ;

i -' 0 0100' = >


apracion <= (a (t
0' ;
C o u !.r
. c 1 (0 )< = 0' ;

b);

,00x01. = >
fb
cperacion <= (rDt a);
Cout := 0 ,
c 1 (0 ) < = ' 0' t
tl i b ' 00110' = >
b),
op.acion <= (a e

cour r- ' 0 ' ;


c 1 (0 ) < =

0' ;

lta 'q0111" =>


o p e raci on < - (a l d
Cou! := Cou!;
c 1 (0 ) < = c1(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

&lO tk*cripcir dc I uidd rirmtca y los&u.

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

VHDL: Elate de progranar sistehas disiles

El cdigode la unidadde control se presentaen el listado8.11.

ue ieee. std_1o!ric_1164. al1 ;


u e rc k . s .d a i th .a ]1 ;
slity
conrrol ia pr! (
fe s e t,c l k :
i std l ogi c;
irq: i! sd losic vecto
:
il@!
std Logic;
datoin: i sLd_Loglc_vecror
rc:

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

Sistms embebidosen \4lDL


cs <=

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;

edo fururo <= d1;


etsif
iq = 01 then
p c o n trol < = 10000000 ;
edo_futuro

<= 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

VHDL: EI aricd. pros?r


stema!disitlei

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

dtoin = '0101' rhc


cs <= '00110';
edo_futuro <= aI5;

.Ilt

alaroin = "0110' tbo


cs.< = ' 11111' ;
edo-futuo
<- d6;

.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;

laroin = '1010" rhd


ca < = i 11011' ;
<= doi
edo_futxro

.lrtf
f,

.Ilt

datoin = '10u'
cs < = " 11111' ;

then

Conni.

SteM embebidGen VHDL


if

255

rc (0 )
<= d 1 0 ;

datoin = "1100' rhe


c s < - ' 11111 ;
If c (2 ) = 1 thd
edo_futuro <= d10,

el.If

edo futuro
and l!;

<= d0;

daroin = .1101. rbe


c s < = ' 11111 ;
tr rc (1 ) = 1 ta
edo-futuro <= d10;

13If

edo_futuo <= d0;


lrl If,
e l s i f d a to i n = " 1110' l he
c s < = ' 11111 ;
l.f rc(3) = I t!
edo futuo
<= d10;

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;

' .

c s < - ' 10110' ;


rw < ! ,1' t
edo_iuturo
<= tL14;

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 ,

' ort r!;

rb

df.?, .>

Conline

258

VIIDL, El artede rorana sistendsdlcitales


.s < = 11110;
edo futur <= d0;
e!d case;
etd tf;
procesol;

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;

Litdo 8.1I Descripcinde la uniJad de coDtrol.

De acuerdocon el cdigoen VHDL, la unidadde controlesuna mquiparadescrina de estadosliniros.En ellasetilizaun procesocombinacional


de saliday un proceso
bir la funcin del prximo estado,las asignaciones
sobreel egistrode estadosen 1e
secuencialpaa describirlas asignaciones
tmruicin activade la sealde reloj.
La unidadde control generala sealcs pxra cadabloque.Estasealles
marcala funcin que van a realizary en qu tiempo debenefectuarla;de
que va
la sealde pcontTo
igualforma,generala seial de lectura/escitura,
dectamenteal regstrodel contadorde programaque genealas dieccio'
nes.Lasseales
ciJqreset,IRQI, fRQ2 y rccsonselalesde enltada;la ltima
realzadas
en la unidadaritmticay lgice indice
resultade lasoperaciones
a la unidadde contol cmo esel resultado.
Al inicio del cdigoen VHDL, las interrupcionestienen una luncirn
porqueindicanal microprocesador
dndeleer la primerains'
preponderante
La interrupcinde nrayorimpotanciaes resi,puesinicializaal micro'
por la mismaunidaddecontrol,colocaalpconftolcon
procesador
empe2ando
que se incremente.
y le diceal contadorde programa
valorde "11111111"
puede
IRQI
e
IRQ2. En casode
dos
inrerrupciones
de
reser
haber
Despus
pesentarse
algunade ellasel controlse modifica,peroantesel micropocey de la ltima direcciirn
guarda
el resultadode los dos acumuladores
sador
(del contador de programa).Si se da una lRQl, el pcr-'ntroles igual a
"10000000";si se pesentana interrupcinlRQ2, el valor de pconrroles

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

EiCE 8.5 D,sr,,' Je l,4o Je rnt.rruc^nes

G-

260

VHDL, El aedc r)smar sistetsdigilcs

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

Sisr.ms enbcbiJos en VHDI-

261

del acumulaclrr A en el bus de datcsinemo. Luego se pasa al cstaclt,'9,,,


tlonde la ,.lireccindel ndice se cohr cn el registroSel-Dir y el regisrroTii_
Est cs habilirado para sacarcl vaftrr del acumulador del microprocesadorDe
aqu se salta al esrado '0".
Lassiguientcscuatro irstruccilrnesson de hifurcacirn trrlas pasanpor los
_r
nismos estados.La nica dilercrciaes la condicin quc denen que compobar
para validar ia condicin,:1esalto o no. Si en el estado '4,se da alguno de hrs
siguienfcsvaloresdedrotn:"1011","1100",',1101'y,1110",serrarade1ainstuccin de saka si hay acffreo (C = 1), salta si es igual a cero (Z = 1), salre
si es nega.ivo (N = l) v salras hay sobreflujo (V = 0), respcctivamente.En
cl mismo estado"4" se compruebasi la con,:1icir,rn
de salto cs vedadera.Si cs
falsasc pasaal cstado "0" y en casocontrario se va al esrado ,10,,,donde sc in_
trodLrceel dato que ,:leterminacl vahrr del salro;de aqu sepasaal estado,,16,'.
Estc salto puetle ser hacia dclnte o hacia ats y su val(n mxin cs :t ?
direccioncs a parrir de la direcci(')nque contiene el dato rre detemina su longitud. El sigro del salro se Lleterminaa partir dcl valor del ecer bit clel
dato:
si es glLala '0" es positivo y si es igual a'1 cs nega\.o.
A continuacin se pasaal esrado 'l ?", donde Ia nueva Llirecci(rnse colt>
ca en el contador de programa.Parr finalizar sc va al estado ',0,'.
Cuando en el esrado"4" se iene un valcr,.leJaroin igual a ,,1010', csro
significa que hay una instruccin de incencnta elvalor del regisrro n.lice
en el mismo estado "4" -la unidad de control realize esra operacir . De
aqu se regresaal estado '0".
La rltin instruccin se urili:a cuando ha habido previamcnre una inte_
rnrpcnin (lRQl e jRQ2). Si en el cstado'4', el r,alor,:ledaroines igual a
"llll",
csto significa quc la rutina de inrerupciLin ha rcrminado y que el
microprocesadortiene qLreregresara las condiciones previas a la inrernjpcitin. Para ello la unida(l de crntol sacala dircccin ahacenada en la pila,
la coloc en el contador de programa v el valo original de los acumuladores
se cirrga de nuevo. Enseguidr
se va al estado "0'.

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

\ HDI : Fl ,tr de procram"rni.Ts

J,{d1..

8.3.1 Creacin del archivo de comronentes


aparece
El archivoque denecadauno de estosbloquescomocomponentes
en el listado8.12.

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) ) ;

cor@onen! se1_dato lbrt


{
cLk: l std logic;
std logic vector (l lcwto 0);
datout:l
0);
daioi: lnout std Logic vecto (3 timto
0);
at(mto
opeacion: i std-loqic-vecror
{3
cs:ir std lcsic-vecLor (4 kmto 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));

conponent sel dir Dot (


pcouti!
srd_toqic
clk:i
u:t
dieccion:ou!
cs:i

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

vhLrL El afc de Froerrmarrnemi orgtrirc(

std l oqi c-ve.tor

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.

Creacin del archivo de alto nivel


Segnsemencionen el capltulo2, en VHDL esposibledisearen formaev
tructural;es dech,uniendocomponentepor componente,Estametodoioga
esia basedel diseojerrquico,ademscadabioqueo componentedel dise'
o busesintemos,los cualessedeclao seinterconeclapor mediode seales
propias
del lenguaje.Con ellossecompleta
ran y asocianmedianreclusulas
el diseo de bloques funcionaiesque interconectadosfoman sistemas
comPlejos.
La declaracinde la entidadconsisteen todaslas teminalesde entada
las cualessenombantai como se encuentan
v salidadel micopocesador,
releridasen su mdtlo.Las sealesque inrerconectancadacomponentese
declaranen la arquitecrura.
El cdigoen VHDL del achivtde alto nivel (high level) que pemile
apareceen e1
trabajaren conjunroa todoslos bloquesdel microprocesador
listado8.11.

Sisl.tM enbcidos en \,'IJDL

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

u2: regras porl

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);

.s > -s, ope-cron= ,opel d:on,

t!) (cs=>cs, datoin=>daloin,

a=>a, clk=>c1k);

(cs=>cs, datoin=>dtoin,

b=>b, c1k=>c1k);

u3: resrb5 Dot D

.' .,

Continta

266

VHDL: El arte dc prosrahar sistems dlcitales


u4 sel cLato pors rrp (cs=>cs, datoin=>datoiD,
racion=>operaci.on, clk=>clk) ;
5 tri,esr

porc lap

(cs=>cs, opelacion=>operacion,

u6. pc port oap (clk=>clk.


pila=>pila) i
u7 indice

datout=>datout,

pcontrol=>pcontrol,

port ap (cs=>cs clk=>clk,

u8 stack Port DaP (cs=>cs, c1k=>clk,

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

Prosana de alio nivel.

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

Tb l a 8 . Lb, 3dc , t ur r u,.,rn ^J .l d r r.p , ,(.a d o l

'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

1cr01(9) Alncenael ontenidodeA en la


direccindel lndi.e.

liil

1010(A) lnenentaenununidadet valot,lel


regisrofndice,

3,6 z

1:11

1011(8 )s a k a s lc= ' 1 ' .

BEQ

3,6 2

11:1

N = '1"

BM I

3,6 2

ti:l

llm(C) s iia s iz = ' l' .


= ' l' .
1101(D)s a it a s iN

V= " 1 "

BVS

3,6 2

Jl:1

11r0(E)s a lt a s iv = ' l' .

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)

CrgaelcunuladorA con elvalor


inmediato.

M*B

LDIIB

.T
r r rr

10m(8)

CigelacumuladotB con elvalor


inmediato,

Tabh a.2 List de ituttueiones del hi.roprdesdoi (On,n@irn )

Desciocin de los smbolos utilizados en la tabla 8.2:

) - 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

)
)
)
)

) V Indica si hay sobreflujo.


)
) N Sealaque el dato esnegativo.

RCC Registrode cdigosde


condicin.
# Nmerode mordiscos(nibbe.i)
equeridospor la instuccin.
- Cantidad{e ciclosde reloj
empleadospo la instruccin.
M Dato de una dieccinde
memoriao una direccln
de memoia.
j No afectado.

De acuerdocon la tabla8.2, el usuarioslopuedemanipularlos acumu,


ladores y el registo de ndice, ademsde utiliza el registro de cdigos de
condicinpaaconocerel resultado;no puedemodificael restode losegistros del microprocesadot

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.

Descripcin del circuito


El 14500es bsicamcnfc
l.r unidadE ,.1eun microprocesador
sencillr
de 1 bit. DadosLrtamaode palabratan corto y el conjunrorelarivamcntc
pequeode nstucciones
(s(rloseutilizan16instrucciones),
el 14500sepuede encapsularcon solo 16 patas.En ia figura8.1. se muestrasu estructua
interna.El principalelementopaael procesmiento
de datosen ICU es la
unidadlgicaLU, que conespomlea la unidadaritrnticolgicadc los proparalasque estri
ccsadores
convenconales.
Cono rellejode lasaplicacioncs
iLleaLlo,
el 14500tiene insfruccioncsLigicas,pero no nstnLccones
ritmti,:1e
casexplcitas.La LU recibesusoFeandos
Lieentratla un acumuladorAC
dc 1 bit (realmenteun tlip-flop D) y de una lnea dc daosbidireccional
denominaclDATA; estalneaac.raconroprincipalbusde datosclela lCU.
Los resultados
ohtenidospor la LU se almacenanen AC, de donclese pueden transferira cualquicr destino externo a tavs,:1ela lnea DATA.
Los ccncnidosdc AC estndisponbles
continuamenteen la patade saLida
(RR
quiere
denominadaRR.
decir registrodc rcsultados,que es el nontbte
que Motorolautilizaparacl acunnlador).
Ademsde LU y AC, el 1,f500tie-

LJln P Hrrc\. Drdt,! ii\rz\ IlnrdlrLn.mtm.{Jrer. Pr.nri.. Hll. tBs.405-+09.

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

VHDL: ELartede prsranarsistemas


dsrrales

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

Llnea de enrradade inruccin (4 bits)

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.

H. Randolph. ApblXatiansof YHDL n Circti Desrn.Kluwe Acatlemic


Publisher
www.imagecmft,com
www'cce.utexas.edu/-valvano,book.html
http://.ww2.unam.edu.ar/subprograma/metod
anexl.htm

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

seala socumplacon el testde Tirrny que,por consiguienre,


computacional
lucin al problemade la generacinde verdderainteligenciaartificial.Desy paralelas,
conxr
dstribuidas
de el puntode vistafilosffco,lasarquitecturas
tadicionales;
las redesneuronales,no son ms que muchosprocesadores
desdeesiepunto de vista,no poseenalgunapropiedadnuevaque evite las
objecionesdel test de Trin.
de que
Sin embargo,una grancanddadde grupospropocionaevidencias
algunasmuy similaresa lasque tiene
estasredesposeennuevaspopiedades,
el funcionamientobsicodel ceebro.
Parademostrarque las redesneuronalesson capacesde aprendery, en 1in,
tener un 6rncionamiento qe se aprcxime al comportamienlo de la mente
y serla basede la inteligenciaartificial,seaplicala pruebamsimportanteba(n (untod l
.adaen el cono.imient.de quent ba"ra c,'moun cerebro.
"er
arquitectura se refiete, sino que hay que comportatsecomo tal para emular
Estosignificaque la red debefuncionartambinen
bsicas.
suspropiedades
forma anlogaa como lo haceel sistemaneioso. En estalnea de pensaquesehan materialadoen micomientosehan dadopasostrascendentales
de sistemas
biolgicoi
las
estruc[uras
inspiradas
en
chips,algunasaplicaciones
que realizanfunconesde visino auditivascomola retinaartiffcialy la suv
titucin de la funcinparcialde la ccleacon circuitosintegrados.
Las redesneuronalesatiffcialesinspiradasen el funconamientodel sistema nervioso de seresvivos han permitido a las computadorasmodernas
emprenderbien deffnidasmediantealgoritmosde redesneuronales,como auxiliares auditivosy transductoresde visin de amplio espectro Las compurado'
rasdigitalesde arquitecturatadicional abordanesetipo de tarea con mayores
dificultadesque las de arquitectuasde edescelularesneuronales(CNN) que
puedenserdiseadascon arreglosde bloquesen VHDL. Estadiferenciaha rne
tivado a las comunidadesciendficasa estudiarsistemasneuronalesbiolgicos
semejan'
en un esfuerzopor disearsGtemascomputacionalescon capacidades
est
integados
modemos
de
cicuitos
tes a las del cerebro.As, la tecnologla
ofreciendosu potencialidadpara consrruirredesparalelasmasivascon baseen
elemenrossinples de procesamiento.De esta manera,la disciplina formal del
estudiode edesneuronales,la neurocomputacin, sientalas basesnecesarias
para programary coordinarel comportamientode dichos elementosde procesamenlo.
Los modelosde redesneuronalesestn ofreciendonuevos enfoques
para resolverproblemas,mismosque puedensimulaen mquinasde pro'
psito especlico,aceleradores
de hardwarecon aquitecturaneuronalinA fin de alcanzarvelocidadesde
cluso en computadorasconvencionales.
pocesamientomximo puedenutilizarsearregloscon baseen tecnologa
pticoo en VLSI de silicio.El aspectofundamentalreside
de procesamiento
en utiliza el modelo neuronal de procesamientopalalelo en tiempo real
sencillos
con una enormecantidadde procesadores

Redesneuronalcs
ariiclalesJ'VHDL

275

9.1 Qu es una red neuronal artificial?


Las redes neuronafesartiffciales son sistemasbasadosen una representacin
y funcionamienro
simplilicada
deestructura
ya seasimuladelsistema
nervioso,
do en softwareo cortruido en hardware.Sedebenentrenarmedianteejemplos
conocidos
hastaquesoncapaces
de asociarpatroncsde entradacorrrc;pucsras
definidassin necesidadde una programacinexplcitapara un patrn en parncula[ Esracaactetsticapermite a las redesiexrlver problemasnuevosclonrle
inclusoseceannuevascategorasde patronesparalos crnles no es posibledisearalgoritmos
de solucin,con L) cualpuedenen6entarcon xito casosen
que no esposiblede6ni una relacin cntre las causasy los efecros.
Lasredesneuonalesson modelosde cmpub paraleloque se conocen
en ingenierlacon el nombrcde edesneuronalesarrificiales.
Oliecen una alternativade procedimientos
a problemascuyasolucinpor tcnicastradicionalesrcsultade difcil apiicacinen la mavorade los casos.
9.1.1 Funcionamiento de la red
El principiode funcionamientodc lasedesneuronalesartificialeses,en trminosgenerales,
el de un convcrtidovectorial.La infomacincodificadaen
fm de vectorde entradacontrolala redy despus
de cieracantidadde intentosde compaacin
entie patronesstapoduceun vectx de salida,que
es Ia mejo solucinque encuentraen la conversindel vectorde enrrada.
As, lasdistintasrespuesras
de la red dependendc su arquitectura,
de suspropiedadesde conectividady de las reglasalgortmicas
explcitasen el pasode
infomacinde una capade neuronasa lassguientes.
El mejoramiento
de las
generaLlas
respucstas
por la red dependedel entrenamiento
de stamediante
el cual cambia----nfuncinde un algoiitmode aprcndizjeo rerroalimentacin, tambindependede la formaen ruepasala infomacinencrelasneuonasde ia ed y entrelascapasde stas.
De estemodola red realizaalgunasfuncioneselementales
similaresa las
que eali"ael cerebroen tiemposazonables
aunqueno en tiempoeal. Sin
embargo,la implementacinan es similar a la de la inteligenciaartificial
clsica,puesfodasestasedesseinslalancn computadoas
secuenciaies
con
algoritmosqueseejecutanpasoa pasoy no de manerasimultneacomoocuria en una arquilecturacn paalelodondecdancuonade la ed esuelve
independientemente
la ftmcinque lreneasignada.
Smlitudes entre una red.netm>nal artifical y ma netrana biolgca
Paracomprendermejorqu sonlasredesneuonalesatificiales,esnecesario
haceuna bcveefeenciade la relaciny similirudesque tienenstascon
las neuronasbolgicas.

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.

FiBa 9.1 Mod.lo dc un neu.oa biolgica.

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

acumulan y luego se procesanpor medi() de Lrn funcin de acti\ ccrun quc


determina la respuesta,.1ela neurona. Para la t'unci(mde acrivacin suereunlizarsc una funcirin matemtica qe vaa en forma conrinua con un perfil
sigmoidal. La salida de la neurona o rango dinmico cambia entrc los lmites .le 0 y L Esto signiiica que la neuon transnitir irfomacin cuando cl
nivel 1 cs sobrepasadopero no para valorcs inferi()rcs,pues es un slstera de
todo o naclaen su respuesta.
Tirnro en Ia neuona bioltigica v en los cicuiros elcctrtinicos la comunicaci(')nsc csrahlecencdiante un pulso elctrico. En la c1u1anerri,r;r po.
dernos me,:li el voltaje de la nenbrrna, qlte es cercano a 0.1 volt. En los
alambes conductoes tambin se puede medir e1 voltaje cuanclo circula 1a
corrente elcrica. La transnisin Llel impulso nervioso se propaga en
la clulaa una veltridad que oscilaentre Z7 y 112 lnctrospor scgun.lo.As
tambin ls corricntes en los alambrcs conducfores se pueden
tropagar
(por efectos cle la accirin dc los campos) a una velocicladcecana a la de la
luz (300 000 km/seg).

9.1.2 Aplicacionesde redesneuonalesartiffciales


Las rplicaciones ,:1elas re,.lesneuonales y de la computacin son muy
abundantcs. De ene ellos se desracar en el campo de proccsan entLrde
sealcs o reconocimiento dc patroncs, la extraccin de caractersticas,la
inspecci(in industial, el pronstico de negocios,la clasificacin de crdito,
la seleccin de segurida,.1,
el cliagnsticomdico, el procesamicnro rle voz,
la comprcnsin rlel lctrguaje natural, el control de robots y la adapracin ,.1e
Procesosde confrol.

Elementosde una red neuronal


Las rcdes neuronales atificiales constan de clementos de procesamiento
y conexi(in dc pesos.La cantidad dc stos dcpenclede la implenrcntacin y
diseo de la red. Otros elementos que intcrvienen dcpendiendo de la aplicacin scm las funciones preesrablecidasde Lrs vectoes de cntrada y los
lectrxcs de salida.

Elementosde entraday salida


Acerca de los componentesde una ed neuronalatificial es convcniente
dar a conocerla reminologaque se utilizar en la dcscripcinde cada
En la figura9.2 sc observala estructurade una ed neuronalartificiai.
Constade nrcleoo nodo,enrratlasy salidas.
h entradaesuna sealdc vokeje aplicaLla
a un nodo,la cualpuedeseruna salida.Estaltimaesla respuesta

278

VHDL: El artede proeramdssiemasdigiful's

de entrada,lasplode la neuonaartificial.El ncleoo nodo sumalasseales


cesay da una respuesta.

tig!6

9.2

Red nrurol Jtifc,l

En la ffgura9.3 tenemosla estructulabsicade una neuronaatificial


Las entradasse denotancon las variablesrt y i(2.En algunasocasionesse
un vectorcon valoes
puedeurilizarla notacinvectorialx, que representa

(xrxz).

F i g u o 9 .J L .,ru , u r" b ^ t, d , un, reur.nrti

-'

La salidasedenotacon y Si bien en estecasosrlosetiene una salida,en


una red neuronalsepuedentenerdiferentessalidas.Si estoocurre,sedeno)
taconunvectoJ = ()i + 1 2 +
Lospesosconectadcrenre losnivelesde la red neuronalsirvenparamoen un
dificar los valoresque circulanen las conexionesy son aLmacenados
por
pesos
lo ge
nrreglomctricraldenumlndd,'matr de ponderacioneso
por la lerra w. En la figura9.3, la matizde pesoses un
neral representada
vector (un casoparticularde una matriz)w con valores(w1w2)

Redesneunnalcsamr,crle,
! VHDL

279

'.9.2 Aptenzaje en las neuronas aticiales


9,2.1 Neurona hebbiana
En 1949,Donald Hebb mencionla primerareglade aprendizaje
para una
red neuronalarriffcial,la cual establece
que cuandouna neuonaestimulaa
otra, la conexinentte ellasse refueza.

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

Ecuaciones caracertsticas y modelo de una neurona Hebbiana

En la ffgura9.4 se tienen las ecuacionesgenerales


y el modelode una
neuonahebbiana.El ncionamientode staes muy sencillo.La neurona
artificialcalculala entradaponderadaI.

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

VHDL: El ane de prcsMr sistend dicitalcs

Entrenamiento de ua neuona hebbiana


Ngoritrnode entreftaniertaWd la n4not l&bhi
el veclo de ponderaciones w en cero.
hiciaLiza
palrn
de e,nlrenaniento:
Para caala
{
el wecto

Iquatar
Iqualar
Ajusta

de enlraala r. con el patrn

de enlradiento

la saLida y con la salida deseada;


el vecto de Pondetacio
revo e - antei.ror rr + Y;
N u e /o b

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),x1 =1, xz= 1 , Y = 1 , w0 = (0 , 0 )' b 0 = I

calculando el siguientevector de ponderacionesde acuerdocoo la ecuacin 9.2:


1'1=w + xy:
bl=bo+y=2

(1, 1)

arilicialcsy VHDL
Redesneurcnales

281

Parael segundopatrnde entrenamiento(1, -l ):


x= ( 1,-1),xt = 1, x2=-1, y= -1 , wr

= (1 , 1 )

.e cl.ul.1 .iguienrerecrorde p,,rnJeracione.


w2 = wl+xy:

(0,2)

b 2 = b*y=1
Parael tercerpatrn de entrenamiento01, 1):
x = ( -1, 1),xr = -1, xz:

1, y = -1 , w2 : (0 , 2 )

seclculel .iguientevectorde pondera.ione.


wt = w2 +xy:

(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 )

re (alculael .iguicnlevecrurde punJeaciL'nes


w4 = wl + xy = (2,1)
b 4 =br+y=-1
El lisrado9.1 es el programaen VHDL para el entrenamientode una
neuronahebbiana.
1 us e s td . te rti o . 1 1 ;
2
I Etalf

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

VHDL: El altc dc prcsi,mar sistems disitles


jn,

10

vlABrE blf

lL

VARBir,Ex1,x2,y:

12

I?RIABLE w1,w2: integer


VIABLE b: intger
: =

:Ll
14
15
:16

iDtege.

ranse
: = J;
1;

r{llL not endf:Le(archivo


entada) rOP
readiine (r.hiv_enLrada, buf inl;
re a d (b u f i n , xl );

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;

Listdo9.1 Pro{am en VHDL ar enirenarua neuronahebbiana.

En la llnea 1 se cargala libreratexrro.Como es un programade simula,


cin, la entidadno contienepuertosde enadao salida.En la lnea6 sedeclarael achivodel cual seleenlos pesosy en la 7 el archivodondeseescri
birn los pesosffnales.
En laslneas9 a 31 sedeclarael procesoque seejecutardurantela simu,
po lo
lacin.Esimportantehacernotarclueel procesono tienelistasensitiva,
prJ !lur rermrne.
que<. nerc.anoJe.larrl,i rn.tru(cron
t,rdr!
En laslneas10 a 13 sedeclaranlasvariablesque sevan a usaren el programa,comopesos(u,1,tr7), I y b.
En la lnea 15 se tiene un ciclo para lee del archivo de entrada los patroy; al mismotiemposecalcunesde enenamiento1, x2 y la salidaesperada
lan los nuevosvaloresde los pesosy de la corutante
b.
Finalmentede la llnea2zla 29 semandanescribirlos pesosal archivode
,riey {rrielne.
salidamediantelas instrucciones

Rdeseuronalsaniffcilesy VHDL

ffitffi

283

Se deseaque la neuronahebbianareconozcay ralicela opeacinlgica

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;

Esteprogamainicializa los pesosw y v con los valore! encontradosen el


algoritmo anterio. Se calcula la entrada ponderadacon la ecuacin 9.1 y se
calcula el valo de la saliday.

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

VHDL, El srte de p!or@ 5i5tem.rdisitale!

Parael pine patrn (1, 1) tencmos:


x = (1,-l), x1 =1, xz=-l
po lo tato,
I =x1w1*x2w2*b:0)0)
+ FlX2) -l = -LccrmI < 0entorey= -1.
Parael primerpatrn (1, l) enems:

x: (-1,1),r = -1, xz: I


por lo tanto,
I = x1w1* x2w2+ b = (-l)(2) + (l)(2) -l = -1, comoI < 0 enton-

Parael primerpatrn (1, l) tenemos:


(-1. -l), xt = -1, x 2 = -l
x
por lo tanto,
.l=x1w1 * x2w2+ b = (-1)(2) + (-1)(2)-1 = -5, comoI < 0 enronCon lo que las entradasse clasican corectameote.
El listado 9,2 es el programaen VHDL paa utilar una eurona hebbia,
na con wl = 7,w2 = Iy lpv = .!,

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

Rcdesneroles adffciales y VHDL

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.

El funcionamientodel perceptrnes muy simple.La neuronasumalas


sealesdel vector de entradax, multiplicadaspor el vector de ponderaciones (pesos)w, lo que da la entradaponderadaI.

286

VHDL: El ane de programasstemasdigitaLs

La ecuacincomparala sealcon un valo de mbral 0 Si es mayor,la


salidaes + 1. De Io contraio,es-1.
[+ 1 ; s iI > d
l =l - t ; s iI < a
Paaentrenarla red, se escogenvaloesde x como entrada,llamados
patrones de entnenamiento. Por cada patrn de entlenamiento se calcula
si la salidadel perceptrn) escorrectao incorrecta,con lo que seobtieneB.
si larespuesiaescorrecta
- f+1;
b=<
'
esrnconccta
11; si la respuesla
Po cada iteracin el vector de pondeacionesw cambiar de acuetdo
con la ley de Rosenblatt.

= w.",..",+pyx
",e,a

Entrenamiento del perceptrn


Algontmo de entterwmie o del pelceptron

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;

)
{

1a respuesLa es +1, entonces


w
e] Itn
nuevo w = dlerio
si ]a respuesta es 1, entonces
w + e1 patrn
nu*o w = terior
si

de entrada actEl;
de entada

acLl;

Redesneuionalesrtilicil.s r VHDL

Eiemplo 9.4

247

Entreneun perceptrnparareconocerla compuetaAND.

Entrada
( xr
xz)

Salila

It
l-1
-1
1
-l
-t

I
-l
-l
-1

Parael primervectorde entrenamiento(1, 1) tenemos:


x: (1, l),xr = 1, xz = 1, wo= (0 , 0 ), d = 1
I = wlwl + wzxz= (0)(1)+ (0)(1):0, comoI ( oentoncesy: -1.
La respuesta
esperada
esincorrecta;por lo tanto,B = -1, entonces
=
=
(0,0) + (-1 )(-l)(1 , 1 ) : (1 , 1 )
w w + B yx
Parael segundovectorde entrenamiento(1, -l) tenemos:
x = (1,-1), xl = l, x: : -1, w l = (1 , l), 0 : 1
I = wx1* w2x2: (l)(1) + (1)(-l) : 0 , c o moI < 9 e n t o n c e s y : -1 .
l-a respuesta
es conecta,por lo que p = 1, entonces
=
w 2 wl + v * : (1, 1) + (l) (-1 )(1 ,-1 ) = (0 ,2 )
Parael tercervectorde entrenamiento(1, -1) tenemos:
x = (-1,1),xl : -1, x2 : I, w r = (0 , 2 ), A = I
I = wrxl * w2x2: (0)(-l) + (2)(1)= 2, comoI > 0entoncesy= +1.
l respuesta
esincmecta(seesperaobtener-l); nr lo tanto,p = .1, .rratr.o
w 2: wr+ B yx = (0,2) + (-1)(1 )(-1 ,1 ) = (1 , 1 )
Parael ltimo vectorde entrenamiento(1, -1) renemos:
x : (-1, -l), xl = -1, x? = -1 , wr = (1 , l), I = 1
I=w1x1 *w2x2= (1)(-1)+ (1 )(-l) = -2 , c o mo l< e n t o n c e s y = -1 .
La respuesta
esperada
escorrecta,asque p : + 1, entonces
=
w 2 wr + pyx = (1, 1) + (l)(-l)(-1 , -1 ) : (2 , 2 )

El listado9.3 esun programaen VHDL paraentrenarun perceptrncon


dosentadas(x1,x2) y una salida(y). El programalee los patronesde entrenamientode un archivopdron.iny escribelasponderaciones
(pesos)ffnales
en un archivopesos,o.

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

La espuesta de1 peceptrn

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;

Listado9.3 Proertue VHDL pamentena!elperceprn.

Ahon se analizarel algoritmoen seudocgico


que se present.En las
lneas22 a 2? secalculala respuesta
perceptrn
del
dadoslos diferentespatronesde entada.
La modificacinde los pesos,si la respuesra
escorrecra,seencuentraen
el fragmento:
Si 1a espues:a es correcLa, entnces
si ]a respuesta es +1, entonces
{
nuevo s = arrior
w + e] parfn de erdda act@l;
s 1 ]a re s p u e s ta e s -1 , enronces
nuevo w : anre:1or w
eL paLn de enrrada acr'rat;

el cual seencuentaen las llneas29 a 16.


Si la respuesta
esincorrectase hallaen el cdigo:

1a respuesra es +1, entonces


nuevo s = ateio
r
e] parrn de enrradd dctual;
sr 1a respuesta es 1, entonces
nuero e = drerior
w + et patrn de etada acrual;
si

Y esrcodiffcadaen lasllneas38 a 45.


biempio 9,5

Se deseaque el perceprrnreconozca
y realicela operacinlgicaAND.
El archivode entradapaton.incontiene:
- l - l -l
- t l-l
l - 1 -1
111

2m

VHDL: El art d programasctem dieitales

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

calcula 1a entrada ponderada I;


s i I> = 0 , d to n c e s
salida es iquaL a +1;
si I<0,

entonces

salida

es igual

1;

Compruebeque el entrenamientodel ejemplo9.4 seacorecto.


Solucin
De losejemplos
9.4y 9.5seobtuvow : (2,Dv e: I
Parael primerpatrn (1, 1) renemos:
x: (1, 1),xl =1, xz= I
por lo tanto,
y : t.
I =xrwl * x2w2= (1)(2)+ (l)(2) = 4, comoI > 0, entonces
Parael segundopatrn (1, -l) tenemos:
x = (1,-l), xr = l, xz: -1
por lo tanto,
I = xlwl + x2w, = (1)(Z)+ (-1)(2)= 0,comol < , entoncesy: . 1 .
Paraei tercerparn (-1, 1) tenemos:
x= (-1,1),xi = I, xt=-l
por lo tanto,
I = x1w1* xzw:= Gl)(2) + (1)(2):0,como[

y = - 1.
< 0, entonces

Paraelcuartopatrn(- 1..1) Lenemos:


x: (-1,-l), xl : 1, xz = -l
pol lo tanto,
I = xlwl + x2w2: (l)(2 ) + (-1 )(2 )= , 4 , c o mo l< o e n t o n c e s y= -1.
Con lo que las diferentesentadasseclasiffcancorectamente.

Red6 eur@les artificialesy yHDL

291

El programaque clasicalos diferentespatronesde una compuertaAND


mediantew1 = 2, w2 = 2 y theta = I seencuenfiaen el listado9.4.
perceptron
1 A+flfr
18
(
2
P@T
x1,x2: IrI tlE@,
R:rE
-1 rO 1;
y, Ott IT{IIEGERRr{@ -1 'O 1);
3
4 END percepton;
5
6 rCEfiEqgnl
neuona OF peicepLron
rS
7 941i
I
IROCISA (x1,x2)
9
CO9AFI w1: ItIEGk : = 2;
10
CqsAF w2: Iltlll@
: = 2;
11
Clatt!tt thera : IIiEqER : = 1;
12
\AlIifE I: I[II(BR;
13
EEG|
14
I: = xI*t1+x2+w2 i
15
f I> = theta l'EEr
y<
1,5
I;
1?
EG
y < = -1 ;
18
19
EID fF;
20
EID PREESS;
21 EfD !rE@.;

tnbdo 9.4 Posamn VHDL parael pctceprr eotrenadopaa monocer una


compuenalgicAND.

| 9.3 Aprendnaje por error mlnimo (la Adaline)


Es un sistemaque utiliza la tcnica del mfnimo eot cuadrtico,desanollado
en 1960por Bemard Widrow y Td Hof[ de la universidadde Staford. Oece la primera neurona mn un enenamiento supevisado;es deci4 toma en
cuenta el posibleerro cuadrticomnimo obtenido al calcula la salidade la
neurona.El nombreproyienede olaltiue livar eiement(elementolineal adap.
tativo) y en la frgura9.6 semuestrasu modeloy ecuaciones.

TN

\4IDL: El ane de prosma silteh* digitales

=i*,',
'
w=w

[+t; si l >o
L-l ; si I<0
BEx=
!i-:w-**

-."-+

Aclulizacn
+ aw

lxl-

E = <Sada deseada> - <tuAd,- a&I>;


es el eror
P; es la constant de aprendbaje
(0.9.1)

Fisia 9.6 Modeloy ecuacirscdacrelstics de l adaline.

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.

E = <saldt deseada>- <sahdaacual>


fu evidenteque el enor slopuedetomarlos valores*2, -2 o cero.Una
vez calculado el erroq se puedeutilizar para ajusta las ponderacionesw, uti'
lizando la regla delta.

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

Redes neuronles ailiciales y VHDL

Entenamiento

293

de una adaline

El procesode entrenamientoconsisteen calcularel error paracadapatrn


de entrada.Si el erores diferentea cero,semodifrcael vectorde pondera_
ciones,peo despusse deberegresara los patronesanteriorespara evisar
que se sigaobteniendo la salida deseada.
Algotmode entratamientopara Ia adaliv
Para cada patrn de enrrenarienr
{ calcular 1a entrada r;
.aLcula la salida de ]a adaline;
c a l c u l a r e 1 e rro r E ;
si E es diferenr de 0, entonces
para todos 1os lrro.es dteriores
{
al parrn acrual hcer
{
calcular La enrrada I;
c a l c u l a 1 a s al i da y;
calcula el eror E;
mentias E es diferente de 0 hacer
c a 1 .u 1 a L = x2
{
para cada lemenLo
c&lia

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

Uso de una adaline


Algoifmo para fita dnlbw
inicializar
el vecror de pesos !
leer 1a eritrada x;
calcular la entada ponderada I;
s iI > = 0, e n to n c e s
salida es iqxal a +1;
s iI < 0, e n .o n c e s
salida es isual a 1;

el

de 1a
ero

!;

con e1 nuevo w;

294

VHDL: El ste de pbgamar sisteMs disir,lcs

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

Fiem 9.7 E uacionescaractesricasy nodelo de la ed as@iariva.

El funcionamientode la red esel siguiente:secalculanlasentadaspondeadasa cadauna de lasneuronas,


I,

para estetipo de redesestdada po la siLa funcin de transferencia


guienreecuacinsi las salidassonde tipo bipolar:

l1 ; s iI > o
I
) = 1 0 ; s it = 0
I

[ -1 ;

s iI < 0

Si las salidasson de tipo binario,se puedeutilizaruna funcin como la


siguiente:

., - f l;
'-l o ;

s iI > 0
s ils o

Redesneuronalesdrtilicialesy VHDL

29s

Ley de Hebb para asociacin de patrones


La ley de Hebb es la reglamssimpley el mtodomsusadoparadeterminar los pesosde una red asociativa,Se puedeusarcon patonesepresentadospor vectoesbinaios(0, 1) o bipoles(-1, l). En estecasosedenotanlos
paresde vectoresde entenamientocomo e: s. Dondee es el vectorde entraday s esel vectorde salidaesperado
parael vectorde entrada.
Entrenamiento de una red heteroasociativa mediante la ley de Hebb
El algoritmoparaentrenaruna ed heteroasociativa
esmuy sencillo:paracada uno de lospatronesde entrenamientoseutilizala ley de Hebbya mencionada,Cadapesu almdcenren unr mtnz,
"e
Algoitmo de e,trenamientopara wra re heteroasociatiuaediane Ia leJ
de Hebb
hic ia l i z a x
1 o s p e s o s r = 0 ;
Para cada patrn de entrenaniento e : s
I Hace 1as srradas
de activacrn iEral
x = e i
Hacer Las salidas

de acLivacin

V=3J
AlusLar Los pesos:
wj (nueva) = wt(mterior)

iqrat

a1 parn de enrrada de

al parrn de sarida de en

+ xy

Entrenea una red heteroasociativa


mediantela ley de Hebb.Supongaque el
=
vectorde enttadae (e1,e2,e3,e4)y el vectode salidas = (sl, s2)son:
el eZ el

1000
l0l0
0101
0001

e4

sl sz

10
10
0l
01

Solucin
La topologade la red heteroasociativa
se muestaen la ffgura9.8.

296

VHDL: El arte dc proeraascrcmasdieitales

Figa 9.d R.J here,o.-,,a' vr ',d rl r<mplo o.7

El resultadode aplicarel algoritmoanterioresel siguiente:


Inicializarlos pesosen cero.
Parael primerpar de vectoresde entenamientoe : s, (1 0 0 0): (1 0)
xl=1,x2=x:r=x4:0
Y r= 1,Y :=0
:1
nuevawu = anteriorw 1 1+ x t y t = 0 + (1 )(1 )
los demspesossemantienenen cero.
Parael segundopar de vectoresde entrenamientoe : s, (1 0 I 0):(l 0)
x1 = 1,x2 =0,x3:1,x4 = 0
Y 1: l,Y 2:0
nuevawll = anteriowl1 *x1 y1 : I + (L)(1):2
nuevaw:lt = anteriorw31* x3 y1 = 0 + (1)(1): I
los demspesossemantienenen cerc.
Paraei tercerpar de vectoresde entenamientoe : s, (0 1 0 l):(0 1)
xl=0,x2=l,xl=0,xa=l
Y r: O,Y z= I
nuevaw22 = anteiorw22 * x2 y7 = 0 + (1)(1) = 1
* x4y2 = 0 + (l)(1) = I
nuevaw4t= anteriow42
los demspesossemantienenen ceo.

Redcsnc!onales artificialesy VHDL

297

Parael ltimo par de vectlresde entrenamientoe : s, (0 0 0 1):(0 1)


xl = 0,x2=0,x1 =Q,x.t:1
nuevaw42 = anteriorw42 + x4 y2 = I + (l)(l) = 2
los demspesosse mantienenen ceo.
Rrr lo tanto, la matrizde pesosquedade la siguienteforma:

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;

Lita.lo 9.5 Pog.ama en VHDL para entrenat una red hetcbasocitila

ya que semuestiapor prlEl listadoanteriores un prcgtamainteresante,


en VHDL.
meravezel usode aeglos en una y dosdimensiones
un tipo de dato
necesario
deffnir
en
VHDL
es
un
arreglo
Paradeclarar
TYPE.
de tipo aneglomediantela palabraeservada
es:
en
una
dimensin
un
areglo
La formade declarar
IS ARRAY (No 1 TO No 2) OF tipo-dato;
TYPE nombre_arreglo
en un lenguajede alto nivel como
El aneglo es una representacin
VHDL de un vector.En estecasose declaraun vectoi con nombrenombre_arrefo con dmensionesdel No. I al No. 2 l-os datos que puede almacenar son los declaradosetipo dato.
se declaade la siguienteforma:
Un arreglode dosdimensiones
IS ARRAY ().1o.1TO No 2,No.3TO No.4) OF tig-dato;
TYPEnombre_aneglo
una de tamaodel No l
En estecasoel arreglotiene dosdimensiones,
esuna real No. 2 y la otra del No. 3 al No. 4 El anegloen dosdimensiones
presentacin
de una matriz.
Una vezdeffnidoel tipo de dato,sedebeusaparadeclararel arreglo.En
esradeclaracin se puede utilizar VARIABLE, CONSTANT o SIGNAL

Redesneuronalesa ificialesy VIIDL

299

En las lneas8,9 y l0 sedefinentres tiposde aneglos'


8

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;

En la lnea8 se defineun arreglopararepresenrar


la matrizde pondea(pesos)
que tendr las dimensiones
ciones
de cuatro renglonespo dos columnas;adems,podralmacenarenteros
La lnea9 defineun arregloparalospatronesde entrada,el cual tienedimensiones
de cutrolocalidades.
Poltimo. en la llnea l0 sedeffneun vector de doslocalidades
paraepesentar
la salidade la ed.
En las lneas14, 15y 16 sedeclaranlos arreglos.
14
15
:16

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 ) ) ;

La lnea 14 declarauna variableu que esdel tipo ponderaciones,


el cual
a suvezestdefinidocomoun aneglode dosdimensiones.
Esimportanteobsevaren la lnea 14 que tambinse esrninicializandolos valorespara la
matrizl,,
En la lnea 14 y 15 se declaranlos arreglosparalas entradasx y las salidas1.
A lin de lee los patronesde entrenamientodel achivode entrada,se
usala instuccionFOR. staseejecutacuatrovecesy en cadaocasinselee
una de lasr de entrada.
2A
27
22
23
24
25

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

VHDL, El an d prosEmar sistenasdigitales

Para6raliza se calculan los valores de la matr de pesoscon ayudade


dos ciclos anidados,como se muestra a continuacin:
26
27

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:

u '= 1lr0. ; sit' o


silso
Solucin
Segnel ejemplo 9.7, la natriz de ponderacioneses:
n-L
I-rn
| |

w = t; :l
p2l

FeJa ncu,n11.
r,ute5r vH D L

Jol

Parael primerpatrnde entrada,


x= ( l 000)
I1 =x1 wl * x2w21
+xlwjl +x4w4r: (l)(2 )+ (0 )(0 ) + (0 )(1 ) + (0 )(0 ): 2
=xtwl2+x2wzr
I2
+ x3w:r'+x4w42= (1)(0)+ (0)(1)+ (0)(0)+ (0)(2)=0
Porlo tanto,
Yt=l,dadoquel>0
Yr = 0,dadoquel=0
La respuesta
cs correcta.
Parael segundopatrndc entrada,
x= ( 1 010)
Ir : xrwlr + x2w2r+ x.rw]r+ xlwar= (1)(2)+ (0)(0)+(l)(l) +(0)(0)=3
I) = xlwr?+ x2w2z
+ x3w12
+ x4w42= (1)(0)+ (0)(t) + (1)(0)+ (0)(2)=0
Por lo tanto,
v1 :l ,d a doquel>0
y2 :0,dadoquel=0
La respuesta
escorrecta,
Parael tercerpatrnde entrada,
x= ( 0 101)
11:x1wrr *x2w21 + x]wrl + x4w41: (0)(2)+ (1)(0)+ (0)(l) + (1)(0)=0
= (0)(0)+ (l)(1) + (0)(0)+ (1)(2)=l
12: x1wr2+ x2w22
+ xlwlz + x4w42
Polo tanto,
y :0 ,da doqueI=0
y2 : l, dadoque I >0
La respuesta
es correcta.
Parael cuartopatrnde entrada,
x= ( 0 0 01)
11= x w 1l * x2w21
+ xlwl + x4w4l= (0 )(2 )+ (0 )(0 )+ (0 )(1 )+ (l)(0 ) : 0
= (0)(0)+ (0)(1)+ (0)(0)+ (t)(2) =2
12:xrwl, + x2w22
+ x3w:r2
+ x4w12
Porlo canto,
Yr :0,da doquel=0
Y2= 1, dadoque I >0
La respuesta
escorecta,

Ehrltplo 9.9

Demuestela ed heteroavrciativa
del ejemplo9.6 parauna enrradasimilaral
patnde entrenamiento.
Solucin

302

distialcs
VHDL: Elaite de prosramar
isemas

Ptuebeel vector (0 0 I 0), el cual dilieredel vectode entrenamiento(1 0 I 0)


en un solobit.
Sea,
x= (0010)
lr = xrw + xzwzr+ xrw31+x4w4r= (0)(2)+ (0)(0)+ (l)(t) + (0)(0)=1
+ xrwr2+ x4w42: (0)(0)+ (0)(1)+ (1)(0)+ (0)(2)=0
12: xrwi?+ x2w22
Por lo tanto,
yt=l,dadoquel>0
y1 :0,dadoquel = 0
La red asociaal vecto (0 0 I 0) con el vecto (l 0), a pesarde que el vecto de entadadifieede los entrenados.
Ejenplo 9.10

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;

: OUr DIEGER lGE

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

Rdq nemMle' atciaL' y VHDL


9
10
11,
12
13
14
15
16
17
18
19
20
2l

22

33

PROCISA (x1, x2, x3, x4)


ponderaciones:
Vrlw:
= ({2,0), { 0, 1), (1,0), (0,2) )t
itUIE 11 12: l1lqB,;
EqN
Il :- x 1 * w (0 ,0 ) + x2* w 11,0) + xl * w (2,0) + x4* w (3,0);
1 2 := x 1 * w (0 , 1 ) + y2.* w l a, l ) + x3* w (2, 1) + x4* w (3, 1),
M1>0
1r8!l
y1< = 1;
EI
y1< = 0;
E'D !;
t! I2>0 tll|Ba
y2< = l;

s-&

y2< = Al
23
24
EID !;
25 ED PROCEAS;
26 !D red;

Li.r.do 9.6 PrcBmm .n VHDL pa urilizd l Rd herer@Gtnv.

9.4.2 Poducto de vectoree pata a.eociacind frahoneo


los pesosencontradospor la ley de Hebb sepuedenobtener a travsde productos de vectores.
Seandos vectores
e = ( e1,e2,.,.,e. )
s = ( s 1 ,s 2 , . . .s, m)
EI producto ente e y s es el producto entre la matriz E = eT y la matr
S:s.

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

VHDL, El te d! pros sstms digitales

La matriz ES almacenalos pesosencontradosente un pa$n e y una sa_


lida s. Parahalla la mtriz de ponderaciories(pesos),es necesariosumarlas
matricesde los patronesde enftenamiento.

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

Paa el tercer vector de entada

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

Un vecrorde entraday salidasepuedeconverrien una sealbinaria(0,


1) o bipolar(-1, 1). Porejemplo,el vectorde salida,
,x,

x,x

306

VHDL: El an le procaMr sisteM digitales

sepuedeexpresarcomo un vector bindo donde las x representancerosy los


ountosdenoranunos:

(010 1 0 1 1 r 1 l0 l

l0 l)

Despusde entrenar la red, sepuede probar con entradasque tengan rui.


do para ver cmo las asociacon vectoesconectos. Algunos ejemplosdonde
se inffodujo ruido son los siguientes:
# es un bit que toma el valor de 1 cuando debelaser 0.
o es un bit que toma el valo de 0 cuando deberaser 1.
Entrada #.x.#
.x.x.

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.

Reds nerdmlesarticialesv 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.

4.1 WarpR4, el softwaede aplicacin


WarpR4es una herramientapara el diseocon lgicaprogramable
creada
por CypressSemiconductola cual procesavariostiposde enrradade datos
(capturaesquemtica,
compiladorestndarde VHDL y la combinacinde
ambos)hacindolamuy flexibley funcional.
En la actualidadesuno de los estndaes
msusadosen la industria,ya
que presentala caracter3tica
de optimizarlos diseoscon rapidezy precisin
utilizandotan slouna pequeareadel circuito;adems,ofreceuna interfazgrificolCalaxy)amigable
con el u:uario.
En la parte conespondienteal hardwae,\lapR4 permitela grabacinen
diferentes iamilias de dispositivoslgicos programables;por ejemplo, PLD
(22V10,20V8v 16V8),CPLD (de la serieCypess
FLASH370ft), CPLD (de
la familia MAX340|M) y FPGA (de la familia FPGA-pASIC]80 rM).
El so6vare\larpR4 es grtuito para univelsidadesy slo se requieresolicitarlo a:
CypressSerniconductor
Corporatftrn
3901North FirstSteet
SanJose,CA 95134

4089432600
hrm ://ww!r'.cvpgls.raq

3t2

VHDL: !l ateJe rcgranrr sistsdisi,lcs

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

Figur A.l softwc{le solorr varpR4.

4.1.2 Galary: interfaz grca del usuario


Galaxyes la irrcrfaz que permile la interaccincntre el usuarioy Laheamienrade trabajo.En ella se realzala edici(in,compilaci)n
v sntesisde los
VHDL.
archivosescritosen cdigo
ParainiciarGalaxyesnccesarioentaal menc{eVarpR4 y seleccionar
la cual
herramicntas,
Galaxl Otra posibilidatlesejecurarladesdela barra,:1e
cleGalaxyabreel mengrficrr
puedcestarfia en la pantalla.La seLcccin
mosrradoen la flguraA.Z.

^I
F i g u A.2 M e nI s n . J ( C d l ) \.

AFdicc A HeirnrGnts dc ri|nr

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.!,.

Segundo, si ya se riene un proyecto, al selcccionarGalaxv aparecerh1.,


pantalla de Ia t'iguraA.,{.

rg-)rj:i ' !Pii!:rl

Figur A.4 PrN.cnr.rer!

d, alhxi:

314

VHDL, El arte de procam' sEem6 dsltles

En la pantallaanteriorpodemosobservarla presenciade un men paa


Galaxyy otro paraProject.En esteltimo estel bloqueEdit, que da Ia posibilidadde escogerun diseoalmacenado(Select)o editaruno nuevocon
la pantallade edicinque sc ilustraen la
la opcinNew. Con staaparecer
figuraA.5.

FiguE A.5 Editor de Gaiar"y.

el listadodel comparadorde
Paraproseguircon el anlisis,consideremos
igualdadde 2 bits de la gura4.6.

ffi
deicaldadde2 bits.
Fisuo A.6 Compado

Ahora obsewemosla pantalladondese edita el cdigoVHDL, el cual


correspondeal circuito ilustrado en la figura anterio (Fig. A.?).

Apndice A. Heramienras de sopoltepa...

ficun

.t15

A.7 Eticinde un piogma.

Una vezque el programaha sidoeditado,esnecesarioalmacenarlo


mediantela opcinFile;Save as, la cual se encuentraen el men de Galaxv
(Frg.A.4).Notecmode tormadutomtica
el programa
aerega
la exre.idn
,vhd (compara.vhd).El diseoasgeneradodebealmacenarse
p*." ,u uro
p.tcrior.Esraoper(icjn
se re.rlrza
medrane
el mende Calara,comando File-Add. De e"tamnerael nuevodrseoaparecelisratioen venrana
de Project (Fig.A.8).

td

Figm

A.8

L rn

'*

!.

g;.;

Para adir uD dise nevo a u orcvecro.

31

VHDL, El are de prcgmtui sisremasdisitales

A.1.3 Compilacin del diseo


La funcin de un compiladorlgicoesprocesary sintetizael diseo,generando el achivo JEDEC (conocidocomo mapa de fusibles),el cual es
Como una
reconocidopor el grabadorde dispositivoslgicosprogramables.
detecta
los
erores
de
sintaxis
ventajaadicional,estetipo de compiladores
y semntica,los cualesimpiden la generacindel archivoJEDEC.
Seleccin del dispositivo
Antes de compilarun diseo,esnecesarioelegirel dispositivoen que segra,
bar la aplicacin. La seleccinse realizaen el bloque synthesis options del
men Project (Fig.A.8). En stese escogela opcindispositivo(dece) y
comoesultadoseabrela pantallamostradaen la ffguraA.9.
En la parte superiorizquierdade la pantalla seobservanlas opcionesDe.
vice y Package.Entre las variasfamiliasque ofteceDece, seelige la correspondiente al dispositivo que se va a utili"ar (en nuestro caso, la familia
C3?2I). En la opcinPackagese exhibeuna lista de los dispositivosdispoen ella seencuentrael tipo de encapsulado
niblesen la familiaseleccionada;
del dispositivoelegido,en estecasoesel CY7C372L66JC.
Otra de las opcioneses la rcferente al voltaje de funcionamiento, el cual
puedeserde 3.3 o 5 volts,segrlnel dispositivoque seva a utilizar.En nues,
tro caso,el circuiroCY7C372Ifuncionacon 5 volts (consultelas hojastcnicasen el aondiceD).

ffi
Fi8un A.9 Eleccindel dBposirvo.

AnJicc A. Herrnicnrsd. s.porteprr...

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

VHDL, El arte d p.ocraMr sGten* disitales

. 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.

Andicc A. Heranienas de sopo.repa...

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-

1) Seleccionarde la ventanade proyectoel archivoque se deseacom_


pilar
Se presionaSelectedpaainiciar la compilacin.
2) La opcin smart tambinpemite compilarun diseo;pero se usa
cuandosetracade programacrn
topieuei(alto nivel) y hay que compilar vari6 archivosal mismotiempo.

320

VIIOL: Eltr.,1. FrosDnr, ide,a\ dLgtrlcs

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)

I'igura A. I I ReJtrJo" .le l .orfil.ia)n.

Si el diseiro tiene errorcs, stosilpaccen en Ia ventna de compilacn'


L mencra ms sencilla de locali:ar un eror cs presiLrnandoelbotn Locate
e.."r Ql , ya q". esta opciD indica en qu lirea y c'olulnnase encuentra
cada uno de los errores del crdigo.
Una ve teminada la cLnlpiLacinsc pueden guardar Lx mcnsajesen
un achivo. Para esto lan srilo se cscogela opcia]llSave asrnombre-

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..,

rn rer Jel rir.n. nu..cf

. n.]\ Frr.6 ill l $Lx,

!r.1. rr rnr \enrl

Arndicc A. Heamienrasde soportel)ara..

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

VHDL: El arte le ptoeramar sistems digitles

el valor de "1" a las sealesde entada


En nuestroejemploasignaremos
(a-0,a-1,b 0yb l).
A continuacinse simula el diseoeiecutandoel men Simulate-+
presentes
en la figura4.1'f.
Ejecute,el cual exhibelos resultados

Figu A.l4 Simulcin


de n rchivo.

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.

Fieur. A.t5 Archivode rcporte.

Apndice A Hernmienras de soportepara.

Debido a que el archivo de reporte es muy extenso,expondremosbeve_


menr. cod una de la. parre\ (Fre.A. lo). 5e recomrentJ.r
;rrc prrc m.j\,r inf.rrmacrcin
,e con"uheel manualdc ururrrode \Xarp
l2l.

-t
l-

copillq:
.taons:

Itar! rr'llDl slnthesis


cmpi ter: r.rersiotr 4 rR x95
(c) I99I, .1992, \993,
Copy r iqht
19t 4, I 9t 5, I 9 t 6 , I 9 9 t , : 1 9 9 8
CrEjess Ssr:rouc.o

"-"/

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

trok => drecrory


L.l?2i
C: \waqr\ l ib\.@on\mti\..!press
. vi f
=> dir4rort
icee
c: \wrp\lib\ ieee\@rk
c: \wa]l]\ 1ib\ ieee\mk\ sLdloqic. vi f

C: \ualp\bi n\ vtd1f e, *e:


C: \kip\bi\
Fl Jlt
L:rhiq
r.in;rq

tovi f .*e

V4

x!5:

Hiqh level

slnrhe

30 18: 47: 26 1999


c: \raI1)\1ib\cl)lmn\rck\.\,press.viI
C:\mqr\1ib\iee\@k\srdtoqic,v:f

C: \ar!\bin\ti

f,exe:

No eos.

Fisura A.l Archivode ep{rte.

En estaseccindel reporte,conocidacomo t{rr end,se rnuestranlos


datosgenerados
por la herramientaVHDLFE, la cualevisaloserroesde sintaxisy semnrica
que se pudieranpresentaren el diseo.Otra de susfuncio_
nesestrasladarelarchivoVHDL (pormec{iodc simplesecuaciones
yregistros)
a la siguientefase,conocidacomo sntesisy optinizacin.

324

VHDL: El arte de p'osamr sistemsdilitaies

En la figuraA.1? seilustrala partedel reportegeneradaen la seccinde


que rigen el
sepresentanlas ecuaciones
optimirdcijn.En trminosgenerales
compotamientodel diseo.La notacin ulilizadapara representardichas
*
ccua.ione.e" del Lpo sumaJr producl,''{la rcpr..entaunc n.gcinel
una funcitin AND. el * una funcin OR). Cadaecuacinimpresaen este
de un bloque lgico en
archivo esperaser introducidaen una macrocelcla
particular

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

Una vez obtenidaslas ecuaciones,el pasosiguientese denominaFilrng; o


sea,la fomla de implementaen el dispositivola lgica producidapor los procesosde lntesis y optimizacin.Por lo generaleste tmino describeel poceso de asignarrecursosen arquitecturasdel tipo CPLD.
poEn la figuraA.18 sepuedeobservarla realizacinde las ecuaciones
las
macroceldas
en
se
intoducin
ducidasen la etapaantedor,las cuales
a uno de los bloqueslgicoscon que cuentael dispositivo
corespondientes
(elCPLD CY372l).

Andicc A. Hermieras de soprtc l)ara...

]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

Fku. A.l8 Inplemenracide lasecuciorescn et bloqctgico.

En estebloquepodemosobservarque la primeracolumnaindica el nmeo,:lela macoceldadencrodel bloquclgico,dondela ,,X" representa


un
poductode rrminos(PT) y el signo* un espaciodentro del arreglode pT
que no estocupadoen estamacroceldaperopuedeseloen ota.
Otra de laspartesincluidasen estaseccinseefierea lasestadsticas,
las
cualesseincorporanporquepresentandiversainformacinrelativaal bloque
lgico,como la cantidadde productosde trminostealizados,
Iassealesde
control usadas,el porcenrajede urilizacindel bloque,etcrera(Fig.A.l9).
Total cot
of outputs piaced
Total cot
of lque
Pducr T--is
Toiai Prducr Ten.
ro be ssigne.l
4x Froduct rers
used / available
codtrol
CLK pi.
CLK pin
PRESET
NEIT
o E0
cEt
aE2
oEl

siqrals

Logr.

Block

:Ll
:5

FiguaA.r9 Esradri.as
prcsenrads
por bloquctsco.

1
4
4/

80

3?

VHDL, El arte de proramd sistena6disitdes

Otra de.laspartesque incluye e[ archivo de reporte es Ia corespoodien'


re a la distribqcin de terminalesdel dispositivo (Fc. 4.20).

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).

Andice A. Heiramienasde soportepa

.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.

.4.1,6 Uso del programadorISR


Uno de los aspectosms importantesque hacende un PLD un dispositivodinmico es la capacidadde poderborrarlo y reprogramarlosin necesiddde borradoresultavioleta.Algxnos disposifivoslgicosprogramables
se pueden
bonar electrnicamenteo medianteIa opcin Reprogramabilidaden sistema
(lSR:In SysremReprogrammable),
dondela funcinseintroducedesdela intefaz en paralelode la computadorahacia el conecto ripo seialJTAG. Esre
programadorpermite borrar,revisary/o leer uno o varios dispositivosque empleenel estndarfTAG.
Catactersticas del programador ISR
El archivoque seutilizaparaprogramarCPLD se llamaisr.exe.Entesusdivesasluncionesconvierteel archivocon extensin.jed generadopor \larp
en el archivocon extensin.bit que segabaren el CPLD.Paraprogramar
una aplicacinserecomiendasegu l()ssiguientes
pasos:

328

VHDL: El ate de prosanar silrelM disirales

1) Copia el achivo isexe en el directorio elegido, por ejemploz:


C: >md isr
C: > cd is
C: \lSR> copya: \istexe
2) Una vezque se tengael archivo .jed generadoen Warp, se usael edito de MS-DOS para generar un archivo con extensin .dat. Por
ejemplo,
C' VSR>edit ejemplo.dat
3) En esteachivose debende llenarlos siguienres
campos,
nombre_dispositivoIopcin]larchivo.jedl ;
. El nombte-dispositivo se refreeal ccuito integrado en que se quie.
re realiza la grabacin.
. En el campo de opcin se pueden declararlos siguientesparmetros:
p - para programat el CPLD con elarchivo IED
v - a ffn de comprobasi lo que hay en el CPLD esel archivo.JED
r - pata lee lo que hay en el CPLD y colocado en el archivo JED
e - a ffn de bonar lo que hay en el CPLD
Existenotras vatiantes que se puedenconsultar en el manual de ISR [3].
.

El campo archivo,jed es el lugar en qe se declara el nombre del


archivo (co exteniin .jed ) que e va a grabar
I-a forma en que debeeditasedicho archivo se muestaen la 6uaA.22.

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

4) Al teminarla edicin,estearchivod$e.guardarsen ndl#did;


tinuarconla siguhntesecucncia:
. ConocErcl pogrsldorxdianrc u,intefqtcon el puertoparalelo
de la PC.
. Conctrel p?otrmad a Jabo donde ecana el disposirivo.
|c
. tblarar .l dirElirCLD cm p'fircn,ode 5 volts.
5) Ejecutael siguiente<imthilo el dnbploCtrsftema,
c ; l e 1 s R l d e j e n @ l o .d a !' r. . , t :

tal

Si no hayproblemasdurate,l* trber 3flograma-entrcgarun rc.

.I

r pote en quJ lndia la ausercirad,enoeot


pqg,la apllcacin s encuentra
instalada en el disposirivo.

331)

VHDL: El {te de prcs"@ si6lem digitales

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

se puedeinsralaren PC y plataformaSun. Los requerimientos


paracadauno .e encuenana ( Jnunuacton:

Requerimientos

Windows PC

Estaciones d trabajo Sun

Procesador

8048nlnimo

CPU SPARC

RAM

16Mb mni,o

16Mb

Espacben discoduro

60 Mb mlnimo

60Mb

Sistemopertiyo

\i/indows].1 en:tdelanre SnOs 4.1.1r porteriores

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

VHDL: Ill drte de proganar stefrsdLeitales

a) Durantela instalacinde \larp, apareceuna pantallacon un mensajeque preguntasi se deseainstalaAdobe ReaderSeleccionela


opcinyesy el progama lo instalar.
y d dobleclic en este
b) Ejecuteel archivopc\acroread\ar32e30.exe
archivo.
Plataforma Sun
Pam instalarWarp en PlataformaSun (con sistemaoperativoSunOs4 1 1
Solais2.5 en adelante)o HP 9000 (setie7000) se necesitansegulos siguientespasos:
SrOs 4.1.
Una vez intoducidoel CD-ROM se ejecutanlos siguientescomandospaa
cearel directorio/crom
nkdi /cdrom
mort -rt hsfs /dev/sro /cdtom
En Solois 2.5
Se ejecutanlos siguientescomandosparacrearel dectorio/cdrom:
mkdi /cdrom
rnount -F ufs - /dev/dsk/c0t6d0s2 /cdrom
E HP.UX lO.lO
De igualformaque los anteriores,se eiecutanlos siguientescomandospara
crarel diectorio/cdrom:
mkdi /cdom
mount .o ro /dev/dsk/c0t2d0 /cdrom

Apenclice
C

Identificadores,tipos
y atributos

Al igualque otros lenguajesdc alto nivel, VHDL urilizadiversosconccptos


que sonrmpoanresal momcntode realizarLrsprograrnas,
ya scaparafacili_
tar ia descripcin
del diseoo parasimplilicarlaslneasde cdigoutiliza,:las.
Entre los conceptosmsimpotantessc encuentr:rnlos idendficadores,
tipos
de darosy arributos,los cualessc tratanen esteaparrado.
Identiffcadores
ls identificadores
sonlos nombrcso etiquetasque seLrsan
parareferirvaria_
pueden
bles,constantes,
seales,
procesos,
etc.
sernmeros,lctasy guiones
bajos( ) que separencaraceres.Tidos hrsidentificado.sdeb.r, resp.rr.
ciertasespeciffcaciones
o reglasparaque se puedancompilarshrerrores;por
ejemplo,el prirnercarctersiemprecs una letra,la cual puedeserminscula
o mayscula(soloen el usode iclentificadores).
VHDL cuentacon una listade palabras
reservadas
(apndice
E) que no se
puedenutilizar comoidenticadoresporquesonde usoexclusir.odel compilador
Objetos de datos
Un objetoen VHL)L esun elementodel lcrrgua;eque rleneun valor especr_
lico; por ejemplo,un valordcl tipo bit. En esrelenguajchaycuarroclases,:le
objeros:crnstanres,serinles,archfuosy turiables.
Ctmstafltes
Son objetosque mantienensiempreun valor fijo c{urantela ejecucirn del
programa.De manera general,las constantesse usan para comprender

VHDL: El ae de prosanrdrsbtehas dig,talcs

mejo el cdieo,debidoa que pcrmircridcnificacon msfacilidadel valo


que se lesha asignado.
La sinraxisparadeclararuna constante:
rrpo. exprc.rnn.
conslantidenr16L,rdor:
Ejemplos
constantVcc: real,= 5.0;
constantcinco: integer:= 3 * 2;
constanttiempo:time :: 100psi
constantvaloresr
bit_vecto:= "10100011";
Comosepuedcobservar,
lasconstantes
equerenun identificador(nom,
bre), un tipo de l1atosy una expresinque indiqueel valor espccificoquc se
le asgna.
Al monento de programar,
las constantesson vlidasslo en la unidad
de diseoen que se declaran;po ejemplo,una constantedefini:laen una
declaracinde entidades visiblesloclentrode la entidad;cuandola constante se declaaen la arquitectura,nadamses visibleen la arquitecnrra,v
cuandosedefineen la reginde declaraciones
de un proceso,sloesvisible

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

Ubicaci(lndc scalcscn un dn.o.

Se puedeapreciarque las seaLes


eriquetadas
como x0 y x1 no tienen
asignadauna terminalen la entidadde diseo,ya que slofuncionancomo
un medioparainrcrconectarlascompuetaslgicasdel circto.

Apndice C. Identicadores, tipos y atributos

33s

La formade declararuna seales la srgurenre:


signalidentiffcador:tipo:[rango]1;
Ejemplos
signalvcc: bit: '1';
signal suma:bit_vector (3 downto 0);
Vmiables
Una variabletiene asignadoun valor que cambiacontinuamentedentrolel
progama.Estosoblecosse utilizanpara manejardabs aleatorioso que no
tienenun valor especifico.
La formaen que sedeclarauna vaiablees:
variable identiffcador(es):
tipo[rango]:[expresn];
Ejemplos
variablecontador:bic vector (0 to /);
variable:.,y: rnr.ger:
Las variables no pueden proyectar formas de onda a su salida, debido
a que su valor cambiaconstantemente,
de modoque es imposibleestablecer
un valo en cierto insianrede tiempo.
Archioos
Un archivo es un objeto que permite la comunicacin del diseo con su en_
tomo exterior,ya que por mediode ellossepuedenleery escribdatoscuan,
do sehacenevaluaciones
del cicuito.Aqul cabemencionarque un archivo
esde un tipo de datosdeterminadoy slopuedealmacenardatosde esetipo.
La sintaxisparadeclararun archivoes:
file identilicador:ripo_archivois [direccin,,nombre";]
Ejemplos
file opeaciones
: Archivo_Enteosis in ,datos.in',;
ffle salidas: Archivo_Enterosis out ,datos.out";
Tipos de datos
Un tipo de datosse utilizapara definir el valo que un objetopuedetomar,
asl como las operaciones
que se realizancon eseobjeto.En VHDL hay dos
tiposbsicos:compuestoy escalar,los cualesagupanvaiossubtipos.

L Lr pane.os indicados ft
corchetes I 1, sn vtdes o!f,1oaks.

336

VHDL: Elarc dc prosraar lemas disitalcs

A continuacin se muestran estostipos de datos y la forna en que se encuentran ciasilicados:

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\

Tipos enterosy tipos reales


Comosu nombeindica,los tiposenterosy realessirvenpaarcpesentar
n,
merosenterosy eales(fraccionarios),
respectivamente.
VHDL sopotavalores enteros en el intevalo de 4,147,483,647 (-2ll-l) hasta
Z,l4?,483,647(1)I -l), y nmerosrealesen el intcvalode - l.0Elg a 1.0E18.
Ambostipos nterosy reales- siguenla mismasintaxis:
object identilicador: tt?e range fvaloresl;
Un rango(range)es una palabrareservada
por VHDL y se usaparade_
finir un conjuntode valores.Cabedestacarque no todaslasheramientas
en
VHDL manejanvalorescon signo.En nuestrocasoel compilaclorutilizado
(Warp) slomancjavalorcssin signo.
Tipos lsicos
Se efferca ltx valoesque se usancomo unidadcsde medla.En VHDL el
nico tipo fsicoque seencuenrrapredelinidoestime (riempo),el cual con_
tiene comounidadprimariael femtosegundo
(fs).
La maneade definir un tipo fsico:
Type rime is range0 to 1E20
units
fs;
p5 : 1000fs;
ns = 1000ps;
us : 1000ns;
ms = 1000us;
s = 1000rns;
min = 0 sec;
h : 60 min
eno urutsi
VHDLpermitela crcaciti deotrostiposflsicoscomometos,gramos,ctc.,
sloque en el diseodigitalesdiflcil utilizarcstosparmetros.
por estaaz(in
nadamsscmuestanlos tiposprcdefinidos,
sin profunclizar
en el tcma.
b) Tipos compuestos
Como ya sc mencion,los tiposcompuestos
puedcntener valoresmltiples
en un misnotiempo al momentode sc simulados.Estetipo esrfonnado
por los arreglosy egistros.

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.

Apdi.e C. ldcDrilcJorcs, ripos_varribuk,s

339

Tipo archiao (record)


A diferenciade los arreglos,los tiposarchivoestnfomadospo elementos
de diferentestipos,loscualesecibenel nombrede carnpos.Cadauno clecs_
ros camposdebc tener ur nombeque permitaidentificarloscon facilida(l
dentrodei tipo.
Esmportante,:lestaca
que el nombede egistrono tienenadaque ver
con un registroen hadwareutilizadoparaalmacenarvalorcs,ya que alrnquc
los nombresson similares,en VHDL se romncomoconceptosdistintos.
La ormade declararun tipo archivoes:
type idenrificadois recod
IdentificadorI tipoj
end recod;

Manejo de archivos en VHDL


Los archivosen VHDL son necesarios
paralee infomacino almacenar
achivosduranteuna simulacirncn VHDL. De hecho,su usose resrringe
en la prcticaen simuiacin.
archivopuedealmacenarcuaLquier
rjpo cledatosVHDL, aunqLre
la
. .Un
declaracirir
de achivosesdiferentcen VHI)LSZ y VHDI_93,comosemuev
tra a confinuacin:
rYPE dbr{ti1
rS F]LE o! jnreqer;
FILF norre:
n {ire. ripo rS ltu].rl
.r..rLiro, rrr ;
Il,F rre:
me ri!
n:d.]
:S d.hirc.r,[Opflr

sl -i".lltL,E?
s,o 1r1irl,9i

El modo en VHDL87 puedcse IN o OUT paa VHDI_93es \IRITE_


MODE, READ_MODE OAPPEND_MODE.
Con objeto de leer infomacinde un acbivo se declarauna variabie
de ripo LINE. En ella se almaccnala informacinde totla una lnea del
archivo de texto. Cuando se quiera leer la infornacitin de la siguiente
lnea,se guardaen una vaiabledelmismo tipo. Estaaccinse realizamediante la liamatlafunciin:
readline(nombre-archivo
salida,\,ariabletipo-line)
Despusse debelecr informacinde la variabletipo LINE, utilizandola
funcin READ.

340

VHDL: El art de prognmar s6ied dieltales

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

;
;

Apndic. C. Idenriffcado.es,dpc y aribtoG

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

En la lnea se declaael archivo de lectura y en la lfnea 7 el de escritu_


a. En la llnea 11 se declaran dos vaiablesde tipo LINE para maodar escri_
bir y leer de ellos.
En las llneas 16 a 28 se encuentra un ciclo, el cual se ejecutarmientas
no se encuentre el carcte de ffn de achivo de dtos.in.
La lnea 18 lee una krea de archivo de entrada y la almacenaen la va"
riable 64l_in, que es de tpo LINE. Posteriormentese leen diferentesdatos de
ba/ n y se almacenanen la rariables nomr, num y dnto,
Po ltimo se mandan escribir en forma inversa la varablehtf_uu uti.
lizando la funcin WRITE.
En la llnea 28 seecrbeeo el achvo dros.oIrtla informacin de *f_olt

Apndice
D

Hojas tcnicasdel
CPLD Cy7C372i

Caactersticas del circuito


64 nacoceldasdistribuidasen cuatrobloqueslgicos
J2 rerminaiesde entrada/ salide
6 entradasdedicadas,
incluycn,-1o
2 rerminalcsde reloj
Reprogramlbleen sistema(lsRrrR)
TLcnolrgaflash
lnterfaceJTAG
Alta velccidacl
F1a= 125MHz
Tp = 10ns
Ts:55n"
T. = 6.5 ns
Ttairnenr.
cumporrl-le
.on lt I
Disponibleen encapsulados
PLCC de 44 rerminalesy CLCC
Compatibilidaden rcminalesctn el Cy?C37li
Descripcin funcional
El cicuitoCY?C]72i esun disposirivolgicoprogramable
complejo(CPLD)
reprogramable
en sstema(lSR) y es parrede la familia FLASH.ITOiMR
de
CPLD de alta funcitnalidady alta velocitlad. Como odoslos miembros
de la familia FLASHITOi,el Cy?Cj72i estdisea,:lo
parabrindar un fcil
usoy elta funcionalidad.
Como todoslos dispositivos
de la famitiaFLASHI?Oi,el Cy?C37Zies
clctricanente
borrabley reprogramable
en sistema(ISRMR),
lo cual introdu_
ce en una mismaarquitcctura,tanto ai circuitocomoal grabador,
reduciendo

344

VHDI-: El ,rtc de procrmr si$emasdigital.s

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

Gua d" seleccn


?c)721-r25

7C372i, 100

?c3?21-a3

ic

12

15

20

l0

5 .5

.0

li

lc

l0

Tiehpo mxnnoJc salid 6 .5


de la sealde rel(i tcr:)

.5

10

t0

2E0

l5ir

25!.

250

115

Mlimo Ser-uprs (ns)

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

VHDL: El re de procanar sisems


digilles

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

5 5 ' Cr+ 1 5 0 " C


-5 5 ' C a + 1 2 5" C
{.5V a +7.0V
-{.5V a + ?.0V
12.5V

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

VHDL, El arte de proerm sistems disirales

por el lenguajesetomdel estndaIEEE


La lrta de palabrasresewadas
l4lDL, impresopor el
delLenguaje
Std10?6-1993 del MonunldeReferencia
Instituto de IngenierosElctricosy Electrnicosen 1994.
SeccinE2: Operdoesdeidos en VHDL segnsu orden de precedencra

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

Dcsp. tsico izquierdo Vectoesde bits op entero

Vector de bits

srl

Despl. Lsico derecho Vector dc birs op enteo

Vector de bits

Despl.Arit. izqierdo Vector .lc bits op enrero

Vcctor de bits

Vector de bits op entero

Vector de bits

ol

Vector de biti op entero


No archivo op no achilo

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

Mayor o igual que

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

Esl,aobm 3tennin de imprinir en bril del 2006


e 16 tallersd Fusin Swicloc Gtiico
Miguel Ne8le No J4 ' 40Nio6
HrosC.P 03440Mxico D F
Col.

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