Você está na página 1de 10

EPUSP PCS 2355 Laboratrio Digital

Co$%a"ores e# V D!
Verso &'1&

RESUMO
Esta e!"eri#n$ia $onsiste no "ro%eto e im"lementa&'o de $ir$(itos $ontadores $om o (so da ling(agem de des$ri&'o de )ard*are VHDL+ S'o a"resentados as"e$tos b,si$os da des$ri&'o de $ir$(itos se-(en$iais. de m,-(inas de estados e o(tros re$(rsos da ling(agem VHDL+

1. DESCRIO DE CONTADORES
Um $ontador / (m $ir$(ito se-(en$ial m(ito (tili0ado em "ro%etos digitais+ 1"esar de ser sim"les. / (m $ir$(ito interessante "ara mostrar re$(rsos im"ortantes da ling(agem de des$ri&'o de )ard*are VHDL+ 2 tre$)o de $digo abai!o mostra (m $ontador sim"les. onde a sa3da seg(e (ma $ontagem $res$ente+

Figura 1.1 Descrio V D! "e u# co$%a"or. 2 $ontador da des$ri&'o a$ima / (m $ontador de 4 bits $om reset ass3n$rono e sinal de enable da $ontagem+ 1 im"lementa&'o em VHDL (sa (m "ro$esso -(e (sa (ma 5ari,5el contagem do ti"o integer+ 6a ati5a&'o do sinal reset. a $ontagem / 0erada e. na borda de s(bida do clock. se enable esti5er ati5ado. a $ontagem / in$rementada+ Como a sa3da q tem ti"o std_logic_vector. / (sada a 7(n&'o de $on5ers'o de ti"os conv_std_logic_vector "ara $on5erter a $ontagem inteira em (m 5etor de bits+ 6a lin)a 15. a de7ini&'o da 5ari,5el contagem 7a0 $om -(e se%a $riado internamente (m elemento $om 4 bits "ara arma0enar o 5alor da $ontagem at(al+ Para (so da 7(n&'o de $on5ers'o de ti"os / ne$ess,rio a in$l(s'o da bibliote$a ieee.std_logic_arith+

Contadores em VHDL (2012

EPUSP PCS 2355 Laboratrio Digital

1.1. Displays "e se%e seg#e$%os


Para a 5eri7i$a&'o do 7(n$ionamento do $ontador. a sa3da q "ode ent'o ser ma"eada (m 4 leds em (m "la$a de desen5ol5imento de $ir$(itos $om 8P91+ 6ormalmente. estas "la$as de desen5ol5imento dis":em tamb/m de displays de sete segmentos+ Para (sar estes displays / ne$ess,rio -(e a sa3da bin,ria do $ontador se%a $on5ertida "ara o $digo de sete segmentos (7ig(ra 1+2 +

Figura 1.& Display "e ( seg#e$%os e a)gu$s e*e#+)os ,-o$%e. /0a1er)23 &''456. 2 display de sete segmentos / $om"osto "or sete leds dis"ostos es"a$ialmente $omo mostrado na 7ig(ra 1+2 e identi7i$ados de a at/ g+ ;(ando. "or e!em"lo. o d3gito 1 de5e ser a"resentado. os segmentos b e $ de5em ser ati5ados. ent'o o $digo e-(i5alente ao d3gito 1 / 0110000 (ab$de7g + 6a "la$a DE2. os sinais de $ontrole dos leds nos displays de sete segmentos s'o ati5os em bai!o+ Desta 7orma. "ara o d3gito 1. o $digo de sete segmentos $orres"ondente / 1001111+ 1 7ig(ra 1+3 a"resenta (ma des$ri&'o VHDL de (m $on5ersor de $digos+

Figura 1.7 Descrio V D! "e u# co$8ersor +ara c9"igo "e se%e seg#e$%os.

6a "la$a de desen5ol5imento DE2 da 1ltera. temos < dis"la=s de sete segmentos. identi7i$ados $omo HE>0 at/ HE>?+ Cada segmento dos displays tem se( sinal assinalado em $ertos "inos da 8P91 da "la$a+ Por e!em"lo. os leds do dis"la= HE>0 est'o ma"eados $on7orme a tabela 1+

Contadores em VHDL (2012

EPUSP PCS 2355 Laboratrio Digital

Ta:e)a 1 Ma+ea#e$%o "os leds "o "is+)a2


Seg#e$%o a b $ d e 7 g

E;' "a +)aca A)%era DE&. Fo$%e. /A)%era3 &''<5


=i$o PB6C1810 PB6C1D12 PB6C1C12 PB6C1D11 PB6C1E11 PB6CV14 PB6CV13

I"e$%i-icao HE>0@0A HE>0@1A HE>0@2A HE>0@3A HE>0@4A HE>0@5A HE>0@EA

1ssim. $aso se dese%e a"resentar a sa3da do $ontador bin,rio da 7ig(ra 1+1 em (m dos displays de sete segmentos. basta $one$tar o $on5ersor da 7ig(ra 1+3. $on7orme a 7ig(ra 1+4 abai!o+

Figura 1.> Co#+osio "o co$%a"or :i$?rio e co$8ersor +ara "is+)a2 "e se%e seg#e$%os. 1 des$ri&'o VHDL $orres"ondente F 7ig(ra 1+4 / a"resentada abai!o (7ig(ra 1+5 + 6ela. s'o (sadas $omo $om"onentes as entidades contador e conv_bin_7seg+

Figura 1.@ Descrio V D! "o circui%o co# u# co$%a"or :i$?rio e u# co$8ersor +ara display "e se%e seg#e$%os. Contadores em VHDL (2012 3

EPUSP PCS 2355 Laboratrio Digital

1.&. M?Aui$a "e es%a"os


Uma alternati5a "ara a des$ri&'o de $ontadores / atra5/s de (ma m,-(ina de estados+ 2 $ontador bin,rio de 4 bits tem 1E estados (E0 at/ E15 em (m diagrama de transi&'o de estados $ir$(lar (7ig(ra 1+E +

E0 E15 E14 E13 E1 E2 E3

E12

E4

E11 E10 E9 E8 E7 E6

E5

Figura 1.4 Diagra#a "e %ra$sio "e es%a"os "e u# co$%a"or #9"u)o 14. 1 7ig(ra 1+? a"resenta a des$ri&'o VHDL do $ontador bin,rio $om (ma m,-(ina de estados. (sando tr#s "ro$essos1G o "rimeiro "ro$esso 5eri7i$a o sinal reset e m(da o estado na borda de s(bida do clock+ 2 seg(ndo "ro$esso identi7i$a o "r!imo estado e o ter$eiro es"e$i7i$a a sa3da do $ir$(ito "ara $ada estado (m,-(ina de Hoore + Embora esta des$ri&'o se%a mais longa -(e a des$ri&'o da 7ig(ra 1+1. o (so de (ma m,-(ina de estados "ermite (ma 7le!ibilidade maiorG "or e!em"lo. $om a mesma se-(#n$ia de estados. / "oss35el m(dar os 5alores a"resentados na sa3da do $ir$(ito+ Para isto. basta modi7i$ar as lin)as de $digo re7erentes ao "ro$esso saidas+ Por e!em"lo. $om "o($as modi7i$a&:es / "oss35el desen5ol5er a des$ri&'o de (m $ontador md(lo 1E $om sa3das em $digo 9ra=+

1.7. Fu$Bes e# V D!
2 (so da des$ri&'o de re$(rsos em n35el estr(t(ral "ermite identi7i$ar $om"onentes -(e s'o re(tili0ados em 5,rios "ontos de (m sistema digital+ Um e!em"lo sim"les de $asos de $om"onentes re(tili0ados / o $on5ersor de $digo bin,rio "ara o $digo de ? segmentos. -(e "ermite mostrar (m 5alor bin,rio em displays de sete segmentos+ Uma alternati5a / (sar re$(rsos de ling(agem na modelagem do sistema digital -(e "ermitem $ara$teri0ar estes md(los $omo (m blo$o se"arado da des$ri&'o do $ir$(ito. $on)e$idos generi$amente $omo s(b"rogramas+ Em VHDL s'o dis"on35eis as 7(n&:es e os "ro$edimentos+ Estes re$(rsos da ling(agem de des$ri&'o de )ard*are t#m $on$eitos m(ito semel)antes aos se(s $orres"ondentes das ling(agens de "rograma&'o. $on7orme tabela 2 abai!o+ Embora se%a (m blo$o se"arado de $digo. ao $ontr,rio dos $on$eitos similares de so7t*are -(e le5am a (ma dimin(i&'o do taman)o total do $digo e!e$(t,5el gerado. o (so destes re$(rsos de ling(agem de des$ri&'o de )ard*are n'o geram (m $ir$(ito menor. "ois $ada $)amada le5a a $ria&'o de (ma no5a (nidade 7(n$ional no $ir$(ito sinteti0ado+ Podemos di0er -(e (ma das 5antagens no (so de 7(n&:es e "ro$edimentos / mel)orar a legibilidade e entendimento da des$ri&'o VHDL+ Uma des$ri&'o mais detal)ada sobre 7(n&:es e "ro$edimentos em VHDL "ode ser en$ontrada em @dI1more 2012A e @J(s)ton. 2011A+

K "oss35el im"lementar (ma m,-(ina de estados em VHDL (sando tr#s "ro$essos. dois "ro$essos o( a"enas 1 Lni$o "ro$esso+ Para mais in7orma&:es $ons(lte a re7er#n$ia @J(s)ton. 2011A+

Contadores em VHDL (2012

EPUSP PCS 2355 Laboratrio Digital

Figura 1.( Co$%a"or :i$?rio "escri%o co# u#a #?Aui$a "e es%a"os.

Contadores em VHDL (2012

EPUSP PCS 2355 Laboratrio Digital

Ta:e)a & A)gu#as carac%erCs%icas "e -u$Bes e +roce"i#e$%os e# V D!.


Carac%erCs%icas retorno de 5alor "arMmetros $omandos $on$eito sobre$arga Fu$o retorna (m 5alor atra5/s do $omando return lista de "arMmetros de5e (sar modo in obrigatoriamente =roce"i#e$%o "ode retornar 5,rios 5alores atra5/s dos "arMmetros "assados ao "ro$edimento "arMmetros "odem "oss(ir modos in. inout o( out (5alores de retorno (sam modo out o( inout generali0a&'o de (m $omando ("ode ser $onsiderado $omo (m blo$o de $omandos

$ont/m $omandos se-(en$iais generali0a&'o de (ma e!"ress'o ("ode ser (sado dentro de (m $omando

/ "oss35el $riar 5,rios s(b"rogramas $om mesmo nome. mas $om lista de "arMmetros e 5alores de retorno di7erentes

1 7ig(ra 1+< a"resenta (m e!em"lo de (so de 7(n&:es em (ma des$ri&'o VHDL+ 1 7(n&'o conv_7seg / de7inida entre as lin)as 1< e 41G "oss(i a"enas (m "arMmetro de entrada (5etor d de 4 bits e retorna (m 5etor de bits (std_logic_vector + 6a lin)a 20 / de7inida a 5ar3a5el saida -(e ser, (sada "ara determinar o 5alor a ser retornado+ 1 sele&'o do 5alor de retorno (sa o $omando se-(en$ial case (lin)as 22 a 3N + 2 $omando return / (sado somente (ma 5e0 (lin)a 40 + 1 lin)a 4? $ont/m a $)amada F 7(n&'o conv_7seg dentro do $omando de atrib(i&'o+

Figura 1.< Co$%a"or :i$?rio "escri%o usa$"o -u$o e# V D!.

Contadores em VHDL (2012

EPUSP PCS 2355 Laboratrio Digital

&. =ARTE E;=ERIMENTA!


1 "arte e!"erimental desta e!"eri#n$ia di0 res"eito F im"lementa&'o de $ir$(itos $ontadores em ling(agem VHDL+ 6esta e!"eri#n$ia ser, (sado o dis"ositi5o lgi$o "rogram,5el 1ltera C=$lone BB EP2C358E?2CE da "la$a de desen5ol5imento DE2+

&.1. A%i8i"a"es =rDE!a:ora%9rio


1ntes do "ro%eto dos $ir$(itos da e!"eri#n$ia. / im"ortante a e!"erimenta&'o dos $on$eitos a"resentados na se&'o 1+ Desta 7orma de5eOseG a Para $ada (m dos $ir$(itos a"resentados ($ontador bin,rio. $on5ersor "ara $digo de ? segmentos. $ontador bin,rio $om sa3da "ara display de sete segmentos. $ontador $om m,-(ina de estados . est(de $ada (ma das des$ri&:es VHDL e es$re5a (ma des$ri&'o das lin)as de $digo+ Por e!em"lo. no $ontador bin,rio $res$enteG As linhas 6 a 9 apresentam a definio da entidade. So definidos trs sinais de entrada (clock, reset e enable com 1 bit) e 1 sinal de sa da (! com " bits). # tipo destes !$atro sinais de entrada e sa da % std&lo'ic(. 1 seg(ir. digite o $digo VHDL de $ada e!em"lo. $rie (m "ro%eto no ;(art(s BB e e!e$(te sim(la&:es "ara 5eri7i$ar se( 7(n$ionamento+ 1ne!e as 7ormas de onda no "lane%amento+

b $

&.&. Co$%a"or :i"irecio$a)


2 "rimeiro $ir$(ito a ser desen5ol5ido / (m $ontador bidire$ional de 4 bits+ Daseado no 5alor do sinal sentido. o 5alor da $ontagem de5e ser $res$ente (sentidoP0 o( de$res$ente (sentidoP1 + 1 sa3da do $ir$(ito de5e ser monitorado em leds+ Considere a seg(inte de7ini&'o de entidadeG entity contador_updown is port (clock, reset, enable : in std_logic; sentido : in std_logic; saida : out std_logic_vector (3 downto 0)); end contador_updown; 1 $ontagem tamb/m / $ontrolada "elo sinal enable ($ontagem m(da -(ando enableP1 + 1 inter7a$e do $ir$(ito / mostrada na 7ig(ra 2+1+

Figura &.1 Co$%a"or :i"irecio$a). d e Desen5ol5a o $digo VHDL e do$(menteOo $om (ma des$ri&'o do $digo 7onte e 7ormas de onda das sim(la&:es do se( 7(n$ionamento+ Considere a seg(inte designa&'o de "inosG $lo$Q G bot'o RES3 reset G $)a5e ST2 sentido G $)a5e ST1 enable G $)a5e ST0 saida@0++3A G leds 5erdes LED90 a LED93

DICA: lembrem-se que os botes na placa DE2 so ativos em baixo. O projeto eve levar isto em consi era!o. "se a tabela e esi#na!o e pinos a placa DE2.

Ueste o $ir$(ito "ro%etado na "la$a de desen5ol5imento+ ;(e sinais de de"(ra&'o adi$ionais "odem ser (sados "ara 5alidar o $ir$(itoV

Contadores em VHDL (2012

EPUSP PCS 2355 Laboratrio Digital

&.7. Co$%a"or e# C9"igo Fra2 co# saC"a e# Display "e ( Seg#e$%os


2 seg(ndo $ir$(ito a ser "ro%etado / (m $ontador bidire$ional em $digo 9ra= $om sa3das em displays de sete segmentos+ Usando (ma des$ri&'o estr(t(ral. im"lemente o $ir$(ito em VHDL $om a inter7a$e abai!o+ entity contGray7seg is port (clock, reset, enable, sentido : in std_logic; saidabin : out std_logic_vector (6 downto 0); saidagray : out std_logic_vector (6 downto 0)); end contGray7seg; Pro%ete ini$ialmente o blo$o conversor-binario-gray "ara a $on5ers'o de $digo bin,rio "ara $digo 9ra=. $on7orme a seg(inte inter7a$e+ entity conv_bin_gray is port (d : in std_logic_vector (3 downto 0); q : out std_logic_vector (3 downto 0)); end conv_bin_gray; Em seg(ida. $om"lete a des$ri&'o $om a $one!'o dos $om"onentes seg(nda a estr(t(ra a"resentada na 7ig(ra 2+2+

Figura &.& Es%ru%ura "o co$%a"or e# c9"igo Fra2 co# saC"as e# display "e ( seg#e$%os. g ) Desen5ol5a o $digo VHDL e do$(menteOo $om (ma des$ri&'o do $digo 7onte e 7ormas de onda das sim(la&:es do se( 7(n$ionamento+ Considere a seg(inte designa&'o de "inosG $lo$Q G bot'o RES3 reset G $)a5e ST2 sentido G $)a5e ST1 enable G $)a5e ST0 saidagra= G display HE>0 saidabin G display HE>1

Ueste o $ir$(ito "ro%etado na "la$a de desen5ol5imento+ ;(e sinais de de"(ra&'o adi$ionais "odem ser (sados "ara 5alidar o $ir$(itoV

=ERFUNTAS. 1+ Com"are a 7orma de $one!'o de $om"onentes em (m diagrama es-(em,ti$o (7orma gr,7i$a e (ma des$ri&'o estr(t(ral em VHDL+ Contadores em VHDL (2012 <

EPUSP PCS 2355 Laboratrio Digital

&.>. Co$%a"or e# C9"igo "e =e%Geric1 co# M?Aui$a "e Es%a"os


2 ter$eiro $ir$(ito a ser "ro%etado / (m $ontador em $digo de Pet)eri$Q (sando (ma #?Aui$a "e es%a"os+ 1 inter7a$e deste $ontador / de7inida abai!o+ entity contPetherickME is port (clock, reset, enable : in std_logic; saidabin : out std_logic_vector (6 downto 0); saida : out std_logic_vector (6 downto 0)); end contPetherickME;

Uemos d(as sa3das do $ir$(itoG (ma sa3da da $ontagem bin,ria saidabin e (ma sa3da $om a $ontagem em $digo de Pet)eri$Q saida+ 1mbas as sa3das de5em ser $one$tadas em displays de sete segmentos+ Use (ma des$ri&'o estr(t(ral $on7orme a 7ig(ra 2+3+

Figura &.7 Es%ru%ura "o co$%a"or e# c9"igo "e =e%Geric1. % Q Desen5ol5a o $digo VHDL do $ir$(ito+ Do$(mente o "ro%eto $om (ma des$ri&'o do $digo 7onte e 7ormas de onda das sim(la&:es+ Considere a seg(inte designa&'o de "inosG $lo$Q G bot'o RES3 reset G $)a5e ST2 sentido G $)a5e ST1 enable G $)a5e ST0 saida G display HE>0 saidabin G display HE>1

Ueste o $ir$(ito "ro%etado na "la$a de desen5ol5imento+ ;(e sinais de de"(ra&'o adi$ionais "odem ser (sados "ara 5alidar o $ir$(itoV

=ERFUNTAS. 2+ Com"are a estrat/gia de "ro%eto do $ontador em $digo de Pet)eri$Q $om $om"onentes UUL e (sando (ma ling(agem de des$ri&'o de )ard*are+ Cite d(as 5antagens da ling(agem VHDL+ 3+ ;(e modi7i$a&:es seriam ne$ess,rias no "ro%eto "ara (sar o re$(rso de 7(n&:es "ara a $on5ers'o das sa3das "ara os displays de sete segmentosV Hostre a des$ri&'o VHDL+ 4+ Hostre $omo este "ro%eto "oderia ser ada"tado "ara (ma $ontagem em o(tro $digo bin,rio+ E!em"li7i-(e+

Contadores em VHDL (2012

EPUSP PCS 2355 Laboratrio Digital

&.@. Mo"i-icao e# Circui%o


Uma "e-(ena modi7i$a&'o o( ada"ta&'o de (m dos "ro%etos ser, soli$itada aos al(nos+ Esta modi7i$a&'o de5er, ser im"lementada em ban$ada+ 1 des$ri&'o e a do$(menta&'o desta modi7i$a&'o de5em ser in$l(3das no relatrio+

7. HIH!IOFRAFIA
1+ 1LUEJ1+ DE& De8e)o+#e$% a$" e"uca%io$ :oar" user #a$ua)+ 200<+ Version 1+42+ 2+ 1LUEJ1+ Iuar%us II I$%ro"uc%io$ Usi$g V D! Desig$s+ Uni5ersit= Program+ 2010+ Dis"on35el emG
ftp://ftp.altera.com/up/pub/Altera_Material/9.1/Tutorials/VHDL/Quartus_II_Introduction.pdf

3+ DW1H2JE. J+ V D! E Descrio e sC$%ese "e circui%os "igi%ais+ 2X edi&'o. LUC. 2012+ 4+ HBD2JBR1T1. E+U+ I$%ro"uo Js !i$guage$s "e Descrio "e 1"ostila de PCS2304. Es$ola Polit/$ni$a da USP. 200?+ ar"Kare+

5+ HBD2JBR1T1. E+U+ Co$%a"or e# C9"igo "e =e%Geric1+ 1"ostila de Laboratrio Digital. 2012+ E+ J16YB6B. E+Z H2JU1. E+ L+ I$%ro"uo aos Dis+osi%i8os !9gicos =rogra#?8eis+ 1"ostila de Laboratrio Digital+ Es$ola Polit/$ni$a da USP. 2000 (re5is'o em 2011 + ?+ JUSHU26. 1+ V D! -or )ogic s2$%Gesis+ 3rd edition. Tile=. 2011+ <+ U2CCB. J+ [+Z TBDHEJ. 6+ S+Z H2SS. 9+ L+ Digi%a) S2s%e#s. +ri$ci+)es a$" a++)ica%io$s+ 11t) ed+. Prenti$eOHall. 2011+

>. EIUI=AMENTOS NECESSLRIOS


1 "la$a de desen5ol5imento 8P91 DE2 da 1ltera $om o dis"ositi5o 1ltera C=$lone BB EP2C358E?2CE+ 1 $om"(tador PC $om "rograma 1ltera ;(art(s BB e inter7a$e USD+

is%9rico "e Re8isBes E+U+H+\2012 ] 5ers'o ini$ial+

Contadores em VHDL (2012

10

Você também pode gostar