Skip to content

mfkiwl/ula32bits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

ULA de 32 bits

O problema baseia-se na implementação, usando a linguagem VHDL, de uma ULA(Unidade Lógica e Aritmética) capaz de receber duas entradas de 32 bits (cujos valores binários​ ​ estão​ ​ representados​ ​ em​ ​ complemento​ ​ de​ ​ 2)​ ​ e ​ ​ realizar​ ​ as​ ​ seguintes​ ​ instruções:

  • Soma​ ​ ( ​ ​ saída​ ​ = ​ ​ entrada1​ ​ + ​ ​ entrada2​ ​ );
  • Subtração​ ​ ( ​ ​ saída​ ​ = ​ ​ entrada1​ ​ - ​ ​ entrada2​ ​ );
  • AND​ ​ ( ​ ​ saída​ ​ = ​ ​ entrada1​ ​ AND​ ​ entrada2);
  • OR​ ​ ( ​ ​ saída​ ​ = ​ ​ entrada1​ ​ OR​ ​ entrada2);
  • SLT​ ​ ( ​ ​ SE​ ​ entrada1​ ​ < ​ ​ entrada2​ ​ ENTÃO​ ​ saída​ ​ = ​ ​ 1;​ ​ SENÃO​ ​ saída​ ​ = ​ ​ 0 ​ ​ ). A ULA tem como interface, duas entradas de dados de 32 bits(entrada 1 e entrada2), uma saída de resultado de 32 bits(saída) e uma entrada de controle de 3 bits que define a operação​ ​ a ​ ​ ser​ ​ realizada.

Para​ ​ as​ ​ operações​ ​ foram​ ​ escolhidas​ ​ as​ ​ seguintes​ ​ entradas​ ​ de​ ​ controle:

  • 000​ ​ = ​ ​ Soma;
  • 001​ ​ = ​ ​ Subtração;
  • 010​ ​ = ​ ​ AND;
  • 011​ ​ = ​ ​ OR;
  • 100​ ​ = ​ ​ SLT;
  • 101,​ ​ 110​ ​ e ​ ​ 111​ ​ = ​ ​ Foi​ ​ convencionado​ ​ fazer​ ​ a ​ ​ soma.

Existem 2 portas acrescentadas, slt1 e slt2, feitas somente para teste de saída sem o complemento de 2 na operação slt, elas não influenciam a lógica proposta pelo problema inicial, exceto no teste do slt para a verificação correta de qual número é menor ou maior, posteriormente​ ​ a ​ ​ isto,​ ​ funciona​ ​ apenas​ ​ para​ ​ exibição.

A conclusão foi feita a partir das simulações de cada uma das operações do código VHDL implementado, usando o programa ModelSim, simulando no Wave e imprimindo o circuito​ ​ em​ ​ Dataflow.

About

Implementation of a 32-bit ULA using VHDL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages