Tutorial de Verilog: Somador Completo (full adder)

Somador Completo

No post anterior expliquei um pouco sobre o meio somador de 1-bit (half adder). Esse circuito é importante para que possamos criar o circuito que será apresentado a seguir, o somador completo de 1-bit (1-bit full adder, em inglês). O circuito somador completo pode ser representado por três entradas, A, B e Carry de entrada, ou Carry In, que são somados e obtemos o resultado da soma, ou sinal S de saída, e Carry de Saída, ou Carry Out. A tabela verdade pode ser representada conforme a tabela a seguir para diferentes valores de entrada.

adder-2

Obtemos assim a função que melhor representa as saídas digitais desse circuito. As equações estão representadas abaixo. A soma é o resultado da operação de Ou Exclusivo, ou XOR entre A, B e Carry In. Carry Out é o resultado da operação OR de três diferentes resultados: da operação de (A.B), da operação (A.Cin) e (B.Cin). Para revisar a operação das portas lógicas, acesse o link.

for

Representação do Circuito Somador Completo em Diagrama de Bloco

Partindo-se então do circuito meio somador de 1-bit, percebemos que podemos conectar dois circuitos meio somador e utilizar uma porta OR para podermos obter o valor da saída Cout. Assim obtemos o circuito Somador Completo de 1-bit. Veja a figura a seguir:

Somador Completo

Representação do Circuito Somador Completo com portas lógicas simples:

Substituindo o circuito acima por portas lógicas, conforme o que foi visto no post sobre Meio Somador, obtemos o seguinte circuito com 5 portas lógicas, que representa o Somador completo de 1-bit.

Somador Completo com portas lógicas

Representação do Circuito Somador Completo em Verilog:

Implementei utilizando dois módulos. O módulo meio somador foi declarado e escrito conforme explicado no post anterior. O módulo somador foi implementado de forma estrutural, então utilizou dois meio somadores e uma porta OR conforme o diagrama de blocos acima.

Arquivo meio_somador.v

  

Arquivo SOMADOR.v

Testbench para o Circuito Somador Completo:

Para simular o circuito, injetei 8 sequências diferentes de sinais, para cobrir todos os casos da tabela verdade mostrada no começo do post.

Forma de onda resultante do teste:

A forma de onda resultante foi de acordo com o esperado.

Somador Completo: Resultado do testbench

Caso queira reproduzir o teste feito acima, faça Download do Projeto para o Quartus da Altera e aperte o play:

download_proteus_arduino_lcd

 

Circuito Somador Completo (Full Adder) com NANDs:

Vamos então apresentar o circuito Somador Completo projetado em Portas NAND. Este circuito é mais rápido, em termos de propagação da onda pelo circuito. Isso é explicado se compararmos com os outros circuitos para o mesmo circuito Somador Completo e sua construção em termos de transistors (CMOS). Substituindo as portas lógicas XOR por portas NANDs (para ver mais detalhes sobre como obter esse circuito, acesse o post onde explico sobre isso), é possível, a partir do circuito acima, substituir os componentes por portas NANDs e obter o seguinte circuito resultante:

Somador Completo com NANDs

 

Representação do Circuito Somador (Full Adder) com NANDs em Verilog:

Esse código não tem segredo, apenas representei as portas lógicas NANDs conforme o circuito acima em Verilog. Utilizei o mesmo testbench. O resultado também foi o mesmo. 

Caso queira reproduzir o teste feito acima, faça Download do Projeto para o Quartus da Altera e aperte o play:

download_proteus_arduino_lcd

 

O Esquemático que obtemos é o seguinte:

Somador Completo

Este Esquemático será utilizado para fazer somadores maiores, conforme veremos nos próximos artigos.

Deixem seus comentários e críticas abaixo.

Outros artigos da série

<< Tutorial de Verilog: Meio Somador (Half Adder)Tutorial de Verilog: Conversor de Código Binário para Código Gray >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

[wpseo_breadcrumb]
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries



Outros da Série

Menu
Privacy Settings saved!
Configurações de Privacidade

Entenda quais dados e informações usamos para ter melhor entrega de conteúdo personalizado para você.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Para usar este site, usamos os seguintes cookies tecnicamente exigidos

  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services