Escolar Documentos
Profissional Documentos
Cultura Documentos
VHDL Descricao e Sintese de Circuitos Digitais PDF
VHDL Descricao e Sintese de Circuitos Digitais PDF
UALUE, FRR, PAIS:
13) goteie eer abit
12) norwait <2 abe SONR a pity
Te] not_voet s+ mon aboot:
13] _Snozrwoon S= A eel SHOR 2 pool:
Quadro 2.7.3 Deserigio segmdo a versio VHDL-1993.
2.7.7 No Quadro 2.7.46 apresentada uma descrigie com problemas. Mentifique as linhas com erro ¢ propone uma corre-
af mmore erraaa 1
2) “wow (abr er as 1 pom
3 ? 2 Gur SERLVECTOR (5 DOMME 0};
a} eo reads
5
| sncmarwerune veete oF erzaa.a 1S
B] ric) <= a mm bone aD a
8] eu) <2 2 sue enon ey
10] £02) Sam bore
13) 5) Sl Serta arp bp Kano or
1a] eta) 2 akon" om p
‘Quadro 2.7.4 Descrigo comtendo erros.
2.7.8 No Quadeo 2.7.5 apresentada uma outra descrigao com problemas, [dentifigue as linhas com erro e peoponive mt
eorregho
2 maey ene 2 28
3) TEE EE SBP om exeseson 10 m0 ot
:
{ncaneeine acca ov wera 8
TE wo 2) wee bess
i) tant Who ISS sone,
A) SORE igne 5
‘Quadro 2.7.5 Outra descrigio contendo erro.CAPITULO
COMANDOS CONCORRENTES
BASICOS
Jonforme visto, 08 comandos concorrentes presentes em um e6digo sdo executados conjuntamente, ¢, por
iss0, a seqigncia como sao apresentados & irelevante. O capitulo aborda umn conjunto bésico de conandos
‘concorrentes: attibuigao de valor incondicional, stribuigdo de valor condicional, blocos ¢ processos. Esse con-
junto permite gerar cédigos descrevendo circuitos com alguma complexidade em um nivel de abstragdo mais
elevado. Além desses topicos, € apresentado o atraso delta empregado para o simulador avaliar as iteragSes Te-
sultantes dos comandos concorrentes
3.1 Atraso delta A
Em uma regio de eddigo concorrente, a ordem das comandos no cédigo niio deve interferir no resultado final da
simulagdo, Para isso, o simulador nevessita de um atraso intecno, denominado A, de modo a coordenar a avalia-
‘oo de eventos que ocerrem no mesmo instante, Esse intervalo de tempo & nulo, A=0. Durante urna simulagl0,
.valteragdo de uma condigio do cireuito pode ativar um ou mais comandos do cédigo. Para todos os comandes
ativados, 0 resultado é transferido 1A aps. A nova condicio pode ativar novos comandos, ¢o processo se repete
por sucessivas iteragdes até atingir uma condicSo estivel.
'No Quadro 3.1.1 6 apresentado o eddigo de tma possivel descrigio para o cireuito da Figura 3.1.1. Note que
4 posigdo dos comandos procura evidenciaro cariter concorrente dos comands, Em uma linguagem seqiencal,
‘0 comando da linha 9 deveria ser apresentado antes do comndo da linha 8.
BIrIRY sig_test 12
Sb, 2e POFEER BIT);
‘ai oie tao)
‘Quadro 3.1.1 Descrigdo para estado das iteragdes do simulador.
© resultado da simulacdo ¢ as iteragdes decorrentes do processo de simulaclo so apresentados na Figura
3.1.1. A condigto estavel do circuit é alterada com a muclanga do valor do sinal “sa” em t=10 ns. O novo va-
Jorem “5a” ocasiona o agendamento de uma modificagdo no sinal “sb em ¢=10 ns +A, Apds a ocorténcia da
primeira iteragdo, o valor de “ sb" ¢ alterado para 1", acarretando o agendamento da troca do valor no sinal
“seem t=10 ns +24, Apds a segunda iterngfo, em t=10 ns#2A, 0 circuito atinge uma condigao estével, © ne-
rshuma nova iteragio & agendada. Como A =0, a condigdo final visuatizada na safda do simulador cortesponde
‘carta de tempo apresentads no lado direito da figura‘Comands Concarrentes Bisicos 29
Figra 3.1.1 Exemplo de iteragfos — caso 1
‘Na Figura 3.1.2 € apresentado um outro circuito para analise das iteragdes,¢ 0 sou o6eligo ¢ daserito no Qua
dro 3.1.2. 0 circuito proposto pode ser redesenhado para um circuito equivalente, considerande que uma porta
“ ou-excusivo ", com uma das entradas em nivel lbgico alto, inverteo nivel Kgico presente na sua outra entra~
da Caso a entrada “ 2" do cireuito passe para o nivel logico |, a porta e” transfere o sinal " y™ para uma das
entradas da porta “ou-exclusivo”, Dessc modo, temos a porta “ ou-exclusivo ” operanda com um inversor cuja
saida & conectada & propria entrada, Como o atraso entre a entrada e a saida & nule, a simulagao desse circuito
acarretard uum mimero infinito de iteraydes, seguindo a seqiéncia apresentada ao lado direito na Figura 3.1.2
espe
twp | 2 x
y ay o [oo 4
wo |@o 14
ron | Dt
se ppd. tora [4
| sosa | 1 Cfo
sows | 1 0 314
crc eqaatonte tesa | 1 GF
Figura 3.1.2 Exenpio de iteragtes — caso 2.
Bey BUFFER TTI:
a op dais:
‘Quadro 3.1.2 Cédigo VHDL pars teste ée iteragies
Os simuladores, normalmente,limitam © némero méximo de iteragdes ¢ abortam a simulagi, caso uma con-
digo estivel nunce seja atingida. O Quadro 3.1.3 apresente a mensagem gerada devido a simulagio do exemplo
da Figura 3.1.1.
foo* areors (velm3602) Therstion Lait zeached ar time 10 ns.
‘Quadro 3.1.3 Mensagem devido a0 uimero de iterasies te sido atingido,30
Capitulo Tes
3.2 Atribuigdo de valor para um sinal
A atibuigdo de wm valor a um objeto da classe sinal pode ocorrer tanto em regides de cédigo concorrente come
em regides de cédigo seqitencial. Uma atribuigto ocorrendo num dea de comandos concorrentes é considerada
‘como tal, ¢, portanto, a ordem dos comands é irrelevante,
Conforme visto a atribuigso emprega o delimitador “ <= ”, ea informacio pode ser originada de um outro
inal ou expressto (ver Quadro 3.2.1). Tinguagem VHDL é rigorosa com relagdo a operagtes envolvendo tipos
diferentes. Transferéncia de valores entre objetos de tipos diferentes nlo & permitida
sinal_destino.a <= sinai_foates = tipo do einsl_éestine.@ = tipe do sinel_tonte
pinaladesting.b <= singin OF wins) yr
Quadro 3.2.1 Exemplos de atibuig inoondicional de um valor pasa us sial
‘Na Figura 3.2.1 & apresentado o diagrama esquemstico de uma possivel implementaco de um circuito de
selegdo de quatro entradas para uma saida. As entradas so denominadas "iz" 213, ea sida
= Gt" Ne Guare 3.2.2 apesentado codigo deserevend 0 esguema proposto nes figura A descrigao en
prega apenas uma transferéncia de sinal, determinads por uma expressto Iogica, O uso de paténtesis ¢ necessério
devido & igual precedéncia dos operadores “ AND” e " OR”.
oo _ [mae »
‘ a1e0=01
2 120210 B
5 foe
aie
——
so-0 [g,
ES
Figura 3.2.1 Dingrama de bloco © esquemitico de um circuit de selegto 4/1.
30, at) aw Bet
bee En,
3
7) ascasepszune nivel_togics oF mux_0 18
5] ae <= (40 ap wor sa aNo Nor 0) on
ra (Ea Me nor et an ea) oe
u 12 AND aL AND KO #0) OF
a ee eee)
13) exw asvodtoaseos
Quadro 3.2.2 Fxemplo do cédigo de um circuito de selegto.
© Quadro 3.2.3 apresenta uma outra descrigdo para 0 mesmo cireuito de selego que tem como objetivo ex-
plorar as caracteristcas de uma regidio de c6digo concorrente, Nesse cédigo sto definidos sinais internos para
escrever as aperagSes das quatro portas “ e” do esquema proposto na Figura 3.2.1 (ver inka 8). A eoncorséncia
na execugao dos comandos pode ser verificads, por exemplo, na atribuigio do sina “ ot” que ocorre na linha
10 do cédigo. No caso de uma linguagem de programagio convencional, onde os comandos so executadosComandos Concorrentes Bisicos 31
soqilencialmente, o sinal “ ot” receberia 0 valor da expresso antes da atualizagao dos sinais interns * int"
“int ", * intZ” @ * int ", o que nao seria razofivel. Como as atribuigdes esto numa regido de cédigo concor-
rente, elas so executadas conjuntamente, de mocio similar a componentes de um circuito, Assim, a ocorréncia
de um evento num sinal acarseta a avaliagio de todas as expresses que contém esse sinal. Essas expressdes
devem ser reavaliadas gerando novos valores, Essa operago gera novas iteragdes até que seja afingida uma
condigio estavel.
ereTy mux 00 18
BORD 's0, ai, 42, 320: DU ee
BND mex 86 .
ARCULMESTORE vote OF eux.00 19
SIGNAL ant, 2t1, L8C2) LAS + Bute
12| fen 20 $3 axe wer 91 da a
‘Quadra 3.2.3 Sogundo exemplo do cédige de um circuito de selegio.
3.3. Construgdo * WHEN ELSE”
‘A construgo “ WHEN ELSE ” permite a transferéneia condicional de um sinal, ¢ segue o formato ilustrado no
Quadro 3.3.1. Nessa construgio, uma lista de opodes ¢ apresentada estabelecendo qual valor de uma expresso
deve ser transferido a um sinal de destino. A primeira condigo que retorna o valor verdadeiro define 0 valor que
€ uunsferido para o sinal de destino.
~ eondicas 2 * verdadeire
2 Verdagears
~ Reniune concicas verdadeiza
sinal_destice <= expresso 2 MIE condicao_{ SiS
Gepressao.b WHEN eoedica 2 SiSE
Quadro 3.3.1 Construyo “ WHEN ELSE ” ou atribuigdo condicional de sina".
© Quadro 3.3.2 contém algumas linhas de cédigo que ilustram a construglo “ WHEN ELSE”. O sinal de
destino * 80 pode receber dizctamente o valor dos sinais “iO ”, “1 " ow o resultado de uma operas 1ogica
centre esses sinais, As opoGes de escolha so definidas por expressdes que retornam um valor booleano. Como
2 construglo * WHEN ELSE ” define uma prioridade na ordem das opgdes, o citeuito equivalente corresponde
‘uma cadeia de seletores (ver Figura 3.3.1). Cada seletor € comandado por blocos que detectam as opgdes;
‘caso a ops seja verdadeiea,o seletortransfere o valor de uma expressto, caso contririo,transfere o valor de
um outro seletor.
eo <= 40 OR LT WER ene
£0 pup $1 WEN ne=
ies
‘Quadro 3.3.2 Parte de um cbdigo empregande a construséo " WHEN ELSE”Capitulo Tets
” fee
> wrens _—
"
ee
ee oH
vate =o
oo
‘seconds «STR Ta} 2s into zq7
Figura 3.31 Circuito equivalente a0 eédigo do Quadro 3.3.2.
No Quadro 3.3.3 € apresentado um cédigo completo empregando a construgio “ WHEN ELSE ” para des-
crevero circuito de selegio proposto na Figura 3.2.1, Neste caso, a descrigo possui um estilo mais préximo do
comportamento do cireuito.
2] Shon or wie s2, 2s ae any
‘ et oon BITS;
45) anceunmovuRe ceste o” sua 16
5] "oe s= io sim ste "0! 28m eoe'a" use
Fa H2 HEN is “0! dD E61 BLE
n 12 sien aie 2" GNb soc" ELSE
‘Quadro 3.3.3 Circuito de selegéo erapregando a construgto “ WHEN ELSE”.
3.4 Construgio “ WITH SELECT”
A construgio “ WITH SELECT ” transfere um valor a um sinal de destino segundo uma relacdo de opedes. Todas
as condigdes de selegao devem ser consideradas,¢ elas devem ser mutuamente exclusivas. A lista de opgGes nes-
sa construgao ngo contém uma prioridade, como se observa na construgdo “ WHEN ELSE ", Essas construgdes,
seguem 0 formato apresentado no Quadro 3.4.1
‘As opcdes podem ser agcupadas através do delimitador “|”, equivalendo, neste caso, a uma condigfo ou"
centre elas. De mado semethante, as palavras reservadas “ TO ” ¢ “ DOWNTO " podem ser empregadas para deli-
‘itat uma faixa de condigdes de um tipo escalar, A palavra reservada “ OTHERS " é valida, como titima alter-
nativa, para englobar as condigGes restantes.
‘conden
‘Sondicesd?
Sondiear.3 ov eonéiese
‘Quadro 3.4.1 Construgo“ WITH SELECT ” ou *atribuigdo selecionada de sina"Comandos Concorrentes Bisicos 33,
O valor de retorno da expresso de escolha deve ser um tipe discreto ou um vetor unidimensional. Uma ex-
pressio de escotha tendo como retorno um valor do tipo nfo-disereto como REAL, por exemplo, nfo évilida,
pois o mimero de opgdes de escolha éinfinito. Uma boa prica de programagio é manter a expresso de esco-
Tha simples. Expresses complexas devem ser avaliadas isoladamente, ¢ o resultado transferido para o campo
dda expressao de escolha.
‘No Quadro 3.4.2 é apresentada a parte de um eddigo contendo dois exemplas com construgéo * WITH
SELECT ™. No primeiro, a expressfo de escolha € o sinal “ sO ” do tipo * CHARACTER”, © as condigies de
escolhiilustradas so do tipo: ‘nica, uma ou mais condigées, faxa de condigSes e condigBes restantes. No se-
‘gundo exemplo a expressio de escolha retorna um valor do tipo BIT”, as duss condigdes de escotha possi-
vis sio apresentadas. Como a construgio nfo identifica nenhuma prioridade nas opgdes, 0 citcuito equivalente
corresponde a um cireuito de selego Comandado por um decodificador que detecta a8 condigdes contidas no
comando (ver Figura 3.4.1).
inom decreyceate Ge coadieaes
condicoas sestences
(RUD DL AKP D0 SELECT —— bh @ 20 tipo Br
SL <= 40 WN "Oy
fn wae 25
‘Quadro 3.4.2 Parte de um e6sigo contendo construyes “ WITH SELECT".
=
L--
roa ed
i=
=
: =
faa =
Figura 3.4.1 Cirexito equivalente aos ebdigos do Quadra 3.4.2.
No Quadro 3.4.3 ¢ apresentada uma nova descric#o para o circuito da Figura 3.2.1. Na declaracdo da entidade
as portas de entrada responséveis pela selegao foram concatenadas no sinal interno denominado “ sel ”. 1850 5
dove ao fato de que uma operagio de concatenagio na expressio de escolha nao é valida. Observavdes pestinen-
tes expressio de escolha sio apresentadas n0 Capitulo 4.34 Capitvio Tes
i a Poon 1s)
a] Seacesn eel © BI¢_Vacese 11" DOMMTO 01
3] apse
25] "eal & ote ear
| “or < 10 ecm -oor,
a Ame 00
a5, 43 weet one)
Quadro 3.4.3 Circuito de seleglo empregando a construgio * WITH SELECT".
3.5 Comando “ BLOCK”
(© comando “ BLOCK " tem a finalidade de dividir 0 cddigo em regides para facilitar 0 entendimento da deseri-
‘0. Sinais podem ser declarados no interior de um bloco, ¢ a visbilidade destes é restrita ao interior do bloco.
{A divisto do cddigo ndo interfere, natucalmente, no circuito sintetizado. Essas declaragées seguem 0 formato
apresentado no Quadro 3.5.1
‘efinicas de sinais visiveis no bloce
peo
‘conandoe
Np LOGE nome_zotalor
‘Quadro 3.5.1 Formato de um comando * BLOCK *.
[No Quadro 3.5.2 ¢ apresentada uma nova descricao para o circuto de selegdo visto nos itens anteriores. Esse
cédigo no visa ilustrar a melhor maneira para descrever 0 circuito de selecdo, mas, sim, um possivel emprego
do comando “ BLOCK”, ¢ evidenciar que os bloces sio executados concorrentemente, O bloco “ det” identifica
(qual entrada deve ser transferida para a sada. O resultado & transferido para osinal visivel apenas no interior do
bloco denominado “ intome def ”,¢ o valor contido nesse sinal & transferido para o sinal * global ”. No bloco
“abo é executada a transfecéncia do valor contido na entrada selecionada para a saida* ot”Comandos Concorrentes Bisieos 35
enrany nox $18
2) Sone Tie, it, 42. 420 2k aLey — entendae
3 ‘eh [i BMaarn pope 2 pow 0; == seinces
a oe fom amnr cr Sasa
3] a0 muss
‘
5) ancprvectes com block OF woes 15
a|"Stowak global? BEEvacroR’s 40 10s
bes Bic
“Et wish Global = "OL" ZOSk
{EMD BLOCK abe:
es: OK
"eicman interne Se€ + BEF VECTOR(O; TOI} ==
Ween! eel SREECT
inal vistvel no Dloso dof
-19" SME 2
lopsl <= interns det: "
mm consisehs
Quaidro 3.5.2 Cirevito de selegdo empregantlo 0 comand“ BLOCK".
‘Um outro emprego do comando * BLOCK *é desabilitar sinais no interior do bloco segundo condighes defini-
dos por expresses de guarda (ver Quadro 3.5.3). A expresso de guarda retorna um valor boolean, Na condigéo
falsa dessa expressio, um sinal que recebe um valor condlicionado a uma expressio de guard fica desconectado
da expressio que 0 aciona. Com relago a sintese, essa desconexao pode ser interpretada como uma contigo de
alta impedincia ou manutengdo do valor anterior. Para ser interpretada como uma condigao de alta impedancia, 0
sinal deve ser declarado como tipo “ BUS"; caso contririo,¢ inferido um clemento de meméria sensivel a nivel,
fou Jaich. Com relagio & inferéncia de estados de alta impedéncia, ¢ necessério, ainda, o emprage de tipos com
Fangio de resolugdo, topico a ser abordado no Capitulo 10, pois um sinal em VHDL nao pode ser acionado por
mais de um controlador simultancamente,
‘Deve-se notar que as expresses de guarda nflo slo aceitas por muitas ferramentns de sintese, ¢ sio consie-
radas, atualmente, obsoletas. Os tipos “ sat logic”, apresentados no Capitulo 10, sio mais adequados para defi-
nigao de condigées de alta impedéneia, além de serem aceitos pela maicria das ferramentas de sintese,
one_sotulo: BLOCK expressao, guaxca
Sojetinicas de sinass vsaivels no blocs
‘lose <= GUARDED expresso!
RD BLOCK none _robute:
Quadro 3.5.3 Formato de um comsando “BLOCK” com sinai de guards.
‘No Quadro 3.5.4 & apresentada uma pequena doscricdo contendo uma expressio de guarda. A descrigio cor
responde a um faich controlado pelo sinal “ enb ", Oesultado da sintese dessa descrigdo ¢ apresentado ma Fi-
gura3.5.136
CapinuloTees|
2] hoes aase saw aor
3 Suan om Binh
| a sxsokcor
é|ancerrecninn teste oF lock 0 2
° sack (enh = 31
:
a8) Sta <= guneane 0)
Quadro 3.5.4 Descrigio eprogunde uma expressio com para,
of si
oD
Figura 3.81 Circuito simetizado a partirda deerigio do Quadro 3.54 — nivel RT.
3.6 Comando * PROCESS”
Um processa permite definir uma dren contendo comandos sequenciais. A palavra reservada " PROCESS ” iden-
tifica o comando conforme o formato apresentado no Quadro 3.6.1. Um provesso & composto de duas regides:
+ parte de deciarasio;
* parte de comandos seqienciais.
A primera regio & o local para a declaragSo de tipose subtipos,constantes,variveis, entre outros, A decli-
raglo Ge sinais nfo & permitida, A segunda regio, apés a palavra reservada ® BEGIN ",iniia area contendo
‘comandos seqilenciais que representam o comportamento de uma parte ou de toda a descricio,
‘A palavra reservada “ PROCESS " pode ser amtecedida de um rétulo qualquer, e ser seguida de urna lista de
sensibilidade, Essa lista define a quais sins o conjunto de eamandos contido no processo & seosivel. Isto €
ocorrendo uma mudanga no valor de um dos sinais contidos na lista, o processo sera executade, Exemplos do
-emprego desse comando sao apresentados no Capitulo 4.
PROCRSE {Liste de ceceibilidade)
fasue_persitide declaracao_Ae_sinal @ declaracao_da_variavel_coapartitaada
[parte de_somndos sequanaiait
‘comands saquensiat!
= comand.
mp PnocHSS abe,
savencial
Quadro 3.6.1 Formato de comands “ PROCESS”Comandas Cancorrenies Bésicos. 37
3.7. Palavra reservada “ UNAFFECTED ”
Apalavra reservada “ UNAFFECTED " pode serempregada na atribuigo de valora um sinal, quando no se deseja
afetaro valor do sinal. A palavra UNAFFECTED ” somente & permitida em atribuigies concorrentes de valores
asinais, Ver o comando " NULL.” ne Capitulo 4, para resultados equivalentes em regides de cédigo seatiencial.
"A palavra reservada * UNAFFECTED " nif € definida pata a verso VHDI.-1987, e nem sempre &suportada
pelas feramentas de sintese.
© Quadro 3.7.1 ifusita dois exemplos com o emprego da palavra " UNAFFECTED ” para as construsies
“WHEN ELSE" e WITH SELECT ", No Quadro 3.7.2 so apresentadas duas descrigdes completas. Note iis
os sinais “xa”, “ya e" xu” 6 yu” tem o mnesmo comportement
‘cinal doztine < sypresscoa RON condicwo 2 KIER
Gkescsred MBN conden“? FLEE —— vaLor nao altazato na condieno.2
Tina. testio <> axpecaona-a WM conéicso 1,
SEEELIEGG baum concieeo?
Guaerecnes WPM OTmeRs, <- vatex nag alteredo eas cendicoas zestantos
(Quadro 3.7.1 Polavea reservada “ UNAFFECTED " na atibuigto de snl,
ancucrscroRe carte OF unaet 2a 18
econ case OP UneEE3H IS ten
2 a
5 vo anact br 3
a urns Fd + om 2",
2 am eeoee!
‘Quadro 3.7.2 Deserigdes empregando & palovra reservada “ UNAFFECTED "
3.8 Cuidados na descrigéo
Comparagées entre as construgées “ WHEN ELSE” e “ WITH SELECT ”
[Na consirugto * WHEN ELSE " a ordem em que as condigdes sdo apresentadas indica a precedéneia na execucio:
1 primeira tem prioridade maxima, ea titima tem a menor prioridade. Na construgdo “ WITH SELECT " todas as
ceondigdes possum a mesma prioridade. A diferenga entre as construgdes pode ser aprovetada pelo projetista para
obtercircuitos mais eficientes ¢ descrigdes mais sucintas, conforme o comportamento do circuito a ser deserito.
‘A Figura 3.8.1 ilustra o caso de um circuito em que a construydo “ WHEN ELSE " é mais vaniajose, © cit-
cuito ¢ um codificador de priotidade entre ws entradas denominades * p3",“ p2”e pt", sendo a entrada
93 a de maior privilégio. Caso ela esteja ativa, “ p3 =1 ", 0 seu cédigo & representado nas safdas “ot ” &
00" independentemente da comdigdo das outras entradas. As entradas restantes,“p2" e"p1”, érn uma prioridade
decrescente, conforme ihisrado na tabela-verdade d figura.38 Capitulo Tes
© Quadro 3.8.1 contém a descrigio do circuito empregando a construgdo “ WHEN ELSE”. Essa deserigio
‘em uma maior correspondéacia com a operagao do circuito, onde a condigao de cada entrada € vetificada in-
Você também pode gostar