Escolar Documentos
Profissional Documentos
Cultura Documentos
Alezy Oliveira Lima - Tutorial Somador-Subtrator de 8 Bits No ISE 10.1
Alezy Oliveira Lima - Tutorial Somador-Subtrator de 8 Bits No ISE 10.1
Para desenvolvermos um somador"subtrator de 8 bits, necessitaremos basicamente de trs componentes: o multiple#ador, o inversor e o somador de 8 bits, (ue ) composto por 8 somadores de * bit.
Definies: +ultiple#ador: ) um dispositivo (ue possui m,ltiplos flu#os de dados na entrada e somente um flu#o de dados na sa&da.
-nversor: ) uma porta l.gica (ue fornece na sa&da o inverso do sinal recebido na entrada. /amb)m con'ecido como porta NOT.
Somador de 8 bits
Para termos um somador de 8 bits, precisamos implementar 8 somadores de um bit. %a 0anela principal da interface do sistema -12, vamos criar um novo pro0eto. Para isso, v em FILE>>New Project.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
%a 0anela (ue abrir, em Project name, d o nome de sua preferncia ao pro0eto 3por e#emplo: 4somador5subtrator67. 8embrando (ue o nome do pro0eto n!o pode conter espa os. %o campo /op level source t9pe, dei#e HDL e cli(ue Next.
%a 0anela (ue segue, preenc'a os campos do formulrio tal (ual na imagem a seguir.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
:omo linguagem preferencial, opte por HDL. :li(ue %e#t at) finalizar. %o canto superior es(uerdo, logo abai#o do diret.rio do nosso pro0eto, aparecer um &cone. ;e acordo com as configura <es (ue n.s escol'emos, seu nome ser xc!s"##e$%f&!'#.
=gora, criaremos o componente somador. 1elecione o &cone e cli(ue com o bot!o direito >> New source.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
= partir da(ui, implementaremos o somador de * bit. %a 0anela %ew 1ource Wizard, escol'eremos HDL (odu)e e criaremos o nosso novo componente. %este e#emplo, nome5lo5 emos 4somador6, por)m voc pode utilizar o nome (ue l'e convier. ;epois de nome5lo, cli(ue Next.
= 0anela (ue segue, declararemos as portas l.gicas (ue comp<em o nosso somador. %osso somador possui ? portas de entrada 3*, + e ,in7 e duas de sa&da 3S e ,out7. = 0anela com a tabela das portas l.gicas (ue ser!o utilizadas no nosso somador ficar assim:
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
Pronto, temos dispon&veis as portas l.gicas de um componente somador de * bit. %o entanto, precisamos mostrar ao somador como essas portas l.gicas interagem entre si. ;iremos (uais s!o seus componentes e fios 3signals7, e como eles se comportam. -sso ser a implementa !o da ar-uitetura do somador. Para fazermos isso, clicaremos no icone do componente somador3(ue corresponde ao ar(uivo 4somador.v'd67 e implementaremos o comportamento dos seus componentes na ar(uitetura do componente. 1eu comportamento ser:
S <= (X xor Y xor Cin); Cout <= (X and Y) or (X and Cin) or (Y and Cin);
@ c.digo5fonte do nosso somador ficar desta forma:
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
Figura 1: somador.vhd
Pronto, 0 temos um somador de * bit. =gora criaremos um somador de 8 bits baseado no somador de * bit (ue obtivemos. ;a mesma forma (ue fizemos ao criar o somador de * bit, crie um New Sourcedo tipo HDL (odu)e e nomeie5o .somador8bits/. 2ste tamb)m possuir ? portas de entrada e A portas de sa&da, no entanto algumas destas ser!o vetores l.gicos 301S7. ;eclararemos as entradas: busX, busB e :inC e as sa&das: bus1 e overflow 3estouro de bits7. Duando declararmos os vetores l.gicos 3EF17, precisaremos declarar o campo (S0. ;eclararemos o +1E das portas EF1 com o valor 23 da forma (ue aparece na figura a seguir:
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
=gora, declararemos (ue dentro do somador de 8 bits e#istem ar(uiteturas do tipo somador. 1er necessrio declarar apenas uma, 0 (ue ser!o todas iguais. 8ogo, teremos no c.digo5fonte do componente somador8bits:
Figura 2: somador8bits.vhd
=gora, temos um componente somador dentro do componente somador8bits. =gora, diremos ao programa como ele se comporta dentro do somador8bits. ;eclararemos os si&na)s. 1ignals s!o fios internos (ue ligam os componentes. Precisaremos de 8 desses fios para ligarmos um somador ao outro. 2les ser!o declarados na ar-uitetura do somador8bits.
Figura 3: somador8bits.vhd
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
;iremos, ent!o, como se comportam as portas dos componentes dentro do somador8bits. 2las ser!o declaradas no be&in:
Figura 4: somador8bits.vhd
@ o4erf)ow funciona e#atamente como uma porta 4ou e#clusivo6 entre os dois ,ltimos sinais. Preste aten !o (ue o ,out de cada somador estsendo ligado no si&na) (ue por sua vez est se ligando na entrada do outro somador, sendoessa ,in. 2st feito nosso componente somador8bits. @bserve na imagem a seguir (ue vrios outros componentes somador foram criados dentro do componente somador8bits.
(u)ti5)exador
:riaremos um New Source tal (ual na imagem a seguir, e nome5lo5emos mux. @ multiple#ador possuir trs entradas e uma sa&da.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
Figura 5: mux.vhd
= fun !o do multiple#ador nesse caso ) quando a seleo for igual a zero, a sada vir do caminho busX, seno do busY.
Inversor
;a mesma forma (ue no multiple#ador, criaremos o inversor. 1alvaremos o componente com o nome 4in4erter6. 2le possui uma entrada e uma sa&da.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
2 o c.digo:
Figura : i!verter.vhd
Pronto. G implementamos todos os componentes (ue precisaremos. =gora podemos come ar a construir o 1omador"1ubtrator de 8 bits.
Somador6Subtrator
:riaremos um novo Source. :'amaremos de addsub e declararemos as portas de entrada: bus*, bus+ e o5, e as portas de sa&da: busS e o4erf)ow.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
%a entidade addsubpossuiremos dois si&na)s3(ue, como dito anteriormente, s!o fios internos (ue ligam os componentes7. @ fio 7 liga o busF do in4erter ao bus+ do mux, e o fio ' (ue liga o busS do mux ao bus+ do somador8bits. 1abendo disso, vamos implementar a ar(uitetura do somador"subtrator 3addsub7. Vamos declarar os componentes e os sinais, tal (ual ilustra a figura abai#o:
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
=p.s isso, diremos como os componentes declarados na ar(uitetura funcionam dentro do do somador"subtrator 3implementaremos isso dentro do be&inno c.digo5fonte7.
Figura 8: addsub.vhd
Pronto, temos o somador"subtrator implementado. 8$9 H poss&vel visualizar uma ilustra !o do es(uemtico dele. Para isso, primeiro clicaremos no bot!o Im5)ement :o5 (odu)e na barra de ferramentas.
1e tudo tiver sido implementado corretamente, na 0anela Sources devemos clicar 3selecionar7 o &cone do somador"subtrator 3addsub7. 8ogo ap.s isto, observaremos a 0anela Processes 3abai#o de Sources7 e navegaremos at) S;nt<eti=e $ *S: >> iew >:L Sc<ematic. :li(ue duplo em View I/8 1c'ematic para visualizar. =parecer esta imagem:
Figura #: addsub.!gr
2ste ) o nosso addsub em sua visualiza !o mais ampla. J medida em (ue dermos um cli(ue duplo dentro da ilustra !o es(uemtica deste c'ip, visualizaremos toda a sua estrutura interna 3os componentes e os sinais (ue implementamos anteriormente7. %a figura abai#o, podemos ver os componentes in4erter, mux e somador8bits, respectivamente.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
:estes
:riaremos um 1ource teste para testar o 1omador51ubtrator. %avegue at) 1ource for e mude de Im5)ementation para 0e<a4iora) Simu)ation.
:rie um New Source. ;esta vez faremos diferente, n!o selecionaremos a op !o HDL (odu)e e sim HDL :est 0enc<. %omeie5o 4t?addsub6 e cli(ue Next at) finalizar. :riamos o ar(uivo de teste. Por)m, para os testes (ue n.s realizaremos, precisaremos importar bibliotecas adicionais.
@ -12 gera tamb)m, dentro do 0e&in, uma varivel c)oc@. %o entanto, ela n!o ser utilizada no nosso teste, ent!o tudo (ue for implementado 0unto a essa varivel deve ser comentado ou e#clu&do do c.digo. Para comentar uma lin'a de c.digo em linguagem VK;8, use 4$$4 3dois '&fens 0untos7.
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
H esperado (ue, ap.s a e#ecu !o destes testes, ten'amos uma tabela contendo estes dados de entrada e sa&da:
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
Para e#ecutar a simula !o, v at) a 0anela Processes, navegue at) *i)inx ISE Simu)ator >> Simu)ate 0e<a4iora) (ode) 3com o t?addsub selecionado7.
8ogo ap.s o -12 simular a e#ecu !o do somador5subtrator, ir aparecer uma 0anela assim:
Desenvolvendo um somador e subtrator de 8 bits com ISE 10.1 Autor: Alezy Oliveira Lima Universidade Federal de Alagoas, am!us Ara!iraca. Sistemas Digitais Ano "010 Distribui#$o livre.
@s valores foram apresentados desta forma pelo fato de estarem em 'e#adecimal. H poss&vel visualiz5los em valores decimais. Para isso, cli(ue com o bot!o direito no valor e 'abilite a op !o Decima) 8Si&nedA, como na figura a seguir:
:onfira os dados obtidos no somador com os dados esperados na tabela e#ibida anteriormente neste tutorial. 1e os dados conferem, nosso 1omador51ubtrator foi implementado com sucessoL