Informática, perguntado por lucas27484, 7 meses atrás

VHDL

Descrever em VHDL e simular no ModelSim uma entidade com três bits de entrada ( A, B e Cin) e dois bits de saída ( S e Cout) que implemente um somador completo,
descrito pelas seguintes funções lógicas.

S = A ⊕ B ⊕ Cin
Cout = A . B + A . Cin + B . Cin

A saída S é o resultado da soma binária dos bits de entrada, enquanto
que a saída Cout representa o chamado “vai-um”

Soluções para a tarefa

Respondido por GeBEfte
3

Vamos começar incluindo a biblioteca IEEE e declarar a utilização dos recursos inclusos no padrão 1164.

\sf library ~IEEE;\\use~IEEE.std\underline{~}logic\underline{~}1164.all;

Agora, vamos listar as entradas e saídas do somador completo no bloco chamado entity, ou seja, vamos descrever a interface desse circuito.

Sugere-se aqui que o nome dado à entity seja o mesmo que tenha sido dado ao projeto criado, dependendo do software, se estes nomes forem diferentes ocorrerá um erro ao tentarmos rodar as simulações.

O nome utilizado aqui foi FA, abreviação de Full Adder.

\sf entity~ FA~ is\\~~~~	port~ (\\~~~~~~~~          A,~ B,~ Cin:~ in~ std\underline{~}logic;\\~~~~~~~~        S, ~Cout:~ out~ std\underline{~}logic\\      ~~~~   );\\end~ FA;

Note que tanto as entradas quanto as saídas são std_logic's, isto é, são portas de 1 bit.

Prosseguindo, vamos agora descrever a arquitetura (architecture) do somador, como será o comportamento dessa entity. O exercício já nos forneceu as expressões lógicas, só precisamos escreve-las como é mostrado abaixo.

Obs.: o nome dado à architecture é de livre escolha, utilizei aqui "behavior".

\sf architecture ~behavior~of~FA:\\begin\\~~~~S~<=~(A~xor~B)~xor~Cin;\\~~~~Cout~<=~(A~and~B)~or~(A~and~Cin)~or~(B~and~Cin);\\end~ behavior;

Juntando as três partes:

\sf library ~IEEE;\\use~IEEE.std\underline{~}logic\underline{~}1164.all;\\\\\sf entity~ FA~ is\\~~~~	port~ (\\~~~~~~~~          A,~ B,~ Cin:~ in~ std\underline{~}logic;\\~~~~~~~~        S, ~Cout:~ out~ std\underline{~}logic\\      ~~~~   );\\end~ FA;\\\\\sf architecture ~behavior~of~FA:\\begin\\~~~~S~<=~(A~xor~B)~xor~Cin;\\~~~~Cout~<=~(A~and~B)~or~(A~and~Cin)~or~(B~and~Cin);\\end~ behavior;

Está pronto o código VHDL, basta agora utilizarmos um software para gerar  os diagramas de formas de onda. As simulações devem estar em acordo com a figura anexada a esta resolução.

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio

Anexos:
Perguntas interessantes