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

EPUSP PCS 2355 Laboratrio Digital

Contadores em VHDL (2012 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 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+

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

Вам также может понравиться