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.

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.

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:

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.

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.

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 >>

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Home » Hardware » Sistemas Digitais » Tutorial de Verilog: Somador Completo (full adder)
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste: