Unidade de Execução
Topologia
Interface genérica
DATA_WIDTH GENERIC
Largura dos vetores de dados.
- Tipo:
natural - Padrão:
XLEN
FUNCTION_WIDTH GENERIC
Largura da função usada como seletor.
- Tipo:
natural - Padrão:
4
Interface de portas
select_source_1 INPUT
Entrada do seletor primário do valor a ser usado pela ULA.
- Tipo:
std_logic_vector - Largura:
2
select_source_2 INPUT
Entrada do seletor secundário do valor a ser usado pela ULA.
- Tipo:
std_logic_vector - Largura:
2
select_function INPUT
Entrada do vetor de seleção da operação a ser realizada na ULA.
- Tipo:
std_logic_vector - Largura: variável
(FUNCTION_WIDTH - 1) downto 0
address_program INPUT
Entrada do valor do PC.
- Tipo:
std_logic_vector - Largura: variável
(DATA_WIDTH - 1) downto 0
source_1 INPUT
Entrada do valor do registrador primário.
- Tipo:
std_logic_vector - Largura: variável
(DATA_WIDTH - 1) downto 0
source_2 INPUT
Entrada do valor do registrador secundário.
- Tipo:
std_logic_vector - Largura: variável
(DATA_WIDTH - 1) downto 0
immediate INPUT
Entrada do valor do Imediato.
- Tipo:
std_logic_vector - Largura: variável
(DATA_WIDTH - 1) downto 0
overflow OUTPUT
Saída de sinal que indica se houve overflow na ULA.
- Tipo:
std_logic
destination OUTPUT
Saída da ULA.
- Tipo:
std_logic_vector - Largura: variável
(DATA_WIDTH - 1) downto 0
Usagem
vhdl
MODULE_EXECUTION_UNIT : entity WORK.MODULE_EXECUTION_UNIT(RV32I)
port map (
select_source_1 => source_0.control_ex.select_source_1,
select_source_2 => source_0.control_ex.select_source_2,
select_function => select_function,
address_program => source_0.address_program,
source_1 => data_source_1,
source_2 => data_source_2,
immediate => source_0.data_immediate,
destination => destination.data_destination
);Diagrama RTL
Casos de teste
TO DO
md
### Caso 1 <Badge type="info" text="tb_module_execution_unit_case_1" />
Forma de onda:
<pan-container :grid="false">

