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 VD! "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+
Co$%a"ores e# VD! Verso &'1&
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 2 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 VD! "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+
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 3 Ta:e)a 1 Ma+ea#e$%o "os leds "o "is+)a2 E;' "a +)aca A)%era DE&. Fo$%e. /A)%era3 &''<5 Seg#e$%o I"e$%i-icao =i$o a HE>0@0A PB6C1810 b HE>0@1A PB6C1D12 $ HE>0@2A PB6C1C12 d HE>0@3A PB6C1D11 e HE>0@4A PB6C1E11 7 HE>0@5A PB6CV14 g HE>0@EA PB6CV13 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 VD! "o circui%o co# u# co$%a"or :i$?rio e u# co$8ersor +ara display "e se%e seg#e$%os.
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 4 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+
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$essos 1 G 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# VD! 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+
1 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+ E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 5
Figura 1.( Co$%a"or :i$?rio "escri%o co# u#a #?Aui$a "e es%a"os.
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 E Ta:e)a & A)gu#as carac%erCs%icas "e -u$Bes e +roce"i#e$%os e# VD!. Carac%erCs%icas Fu$o =roce"i#e$%o retorno de 5alor retorna (m 5alor atra5/s do $omando return "ode retornar 5,rios 5alores atra5/s dos "arMmetros "assados ao "ro$edimento "arMmetros lista de "arMmetros de5e (sar modo in obrigatoriamente "arMmetros "odem "oss(ir modos in. inout o( out (5alores de retorno (sam modo out o( inout $omandos $ont/m $omandos se-(en$iais $on$eito generali0a&'o de (ma e!"ress'o ("ode ser (sado dentro de (m $omando generali0a&'o de (m $omando ("ode ser $onsiderado $omo (m blo$o de $omandos sobre$arga / "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# VD!.
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 ? &. =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 sada (! com " bits). # tipo destes !$atro sinais de entrada e sada % std&lo'ic(. b 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+ &.&. 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 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+ e 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
7 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 DICA: lembrem-se que os botes na placa DE2 so ativos em baixo. O projeto eve levar isto em consiera!o. "se a tabela e esi#na!o e pinos a placa DE2.
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 < &.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
i 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+
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 N &.>. 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. % 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+ Q 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
l 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+
EPUSP PCS 2355 Laboratrio Digital Contadores em VHDL (2012 10 &.@. 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 VD! 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+ VD! 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 ar"Kare+ 1"ostila de PCS2304. Es$ola Polit/$ni$a da USP. 200?+ 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+ VD! -or )ogic s2$%Gesis+ 3 rd 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+ 11 t) 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+