Este projeto foi desenvolvido como parte da disciplina de Arquitetura de Computadores e tem como objetivo a implementação de blocos fundamentais de uma ULA (Unidade Lógica e Aritmética) utilizando a linguagem VHDL.
projeto/
├── And_Gate/
│ ├── and_gate.vhdl
│ ├── and_gate_tb.vhdl
│ └── .vscode/tasks.json
│
├── Half_Adder/
│ ├── half_adder.vhdl
│ ├── half_adder_tb.vhdl
│ └── .vscode/tasks.json
│
├── Arithmetic_Logic_Unit/
│ ├── alu.vhdl
│ ├── alu_tb_1bit.vhdl
│ ├── alu_tb_4bit.vhdl
│ └── .vscode/tasks.json
A porta AND recebe duas entradas binárias (a, b) e produz a saída y = a AND b.
Arquivos:
and_gate.vhdl: implementação da porta ANDand_gate_tb.vhdl: testbench para simulação
O meio somador realiza a soma de dois bits (a, b).
Entradas: a, b
Saídas:
- y = a XOR b
- carry_o = a AND b
Arquivos:
half_adder.vhdl: implementação do meio somadorhalf_adder_tb.vhdl: testbench para simulação
A ALU realiza operações lógicas e aritméticas de 1 bit, podendo ser instanciada para formar uma ALU de 4 bits.
Operações suportadas (definidas por um seletor de 2 bits):
- "00": AND
- "01": ADD (com carry_in)
- "10": SUB (com carry_in)
- "11": OR
Arquivos:
alu.vhdl: implementação da ALU de 1 bitalu_tb_1bit.vhdl: testbench da ALU de 1 bitalu_tb_4bit.vhdl: testbench da ALU de 4 bits
Execute os comandos na pasta do componente a ser testado.
- Analisar os arquivos VHDL:
ghdl -a arquivo.vhdl
- Elaborar o testbench:
ghdl -e nome_do_testbench
- Executar a simulação e gerar arquivo VCD:
ghdl -r nome_do_testbench --vcd=wave.vcd
- Visualizar no GTKWave:
gtkwave wave.vcd