ID - Decodifica Instrução
Topologia
Interface genérica
GENERATE_REGISTERS
GENERIC
Define geração de registradores de pipeline.
- Tipo:
boolean
- Padrão:
TRUE
Interface de portas
clock
INPUT
Entrada do sinal de clock.
- Tipo:
std_logic
clear
INPUT
Entrada do sinal que limpa o(s) dado(s) do componente.
- Tipo:
std_logic
enable
INPUT
Entrada do sinal que ativa o componente.
- Tipo:
std_logic
enable_destination
INPUT
Entrada do sinal que ativa o banco de registradores.
- Tipo:
std_logic
select_destination
INPUT
Endereço do registrador de destino da etapa WB.
- Tipo:
t_REGISTER
data_destination
INPUT
Valor a ser armazenado no registrador de destino da etapa WB.
- Tipo:
t_DATA
forward
INPUT
Entrada de registro que contém dados encaminhados da etapa MEM.
- Tipo:
t_FORWARD_BRANCH
source
INPUT
Entrada de registro que contém os dados vindos da etapa IF do pipeline.
- Tipo:
t_SIGNALS_IF_ID
address_jump
OUTPUT
Saída de dados que contém o endereço para desvio na memória ROM.
- Tipo:
t_DATA
control_if
OUTPUT
Saída de registro que contém os sinais de controle da etapa IF.
- Tipo:
t_CONTROL_IF
signals_ex
OUTPUT
Saída de registro que contém os dados vindos da etapa ID do pipeline.
- Tipo:
t_SIGNALS_ID_EX
Usagem
vhdl
INSTRUCTION_DECODE : entity WORK.CPU_STAGE_ID(RV32I)
generic map (
QUARTUS_MEMORY => QUARTUS_MEMORY
)
port map (
clock => clock,
clear => NOT flag_stall,
enable => NOT (flag_hazzard OR (flag_stall AND control_if.enable_stall)),
enable_destination => stage_wb_enable_destination,
select_destination => stage_wb_select_destination,
data_destination => stage_wb_data_destination,
forward => stage_id_forward_branch,
source => signals_if_id,
address_jump => stage_id_address_jump,
control_if => control_if,
signals_ex => signals_id_ex
);
Diagrama RTL
Casos de teste
TO DO
md
### Caso 1 <Badge type="info" text="tb_stage_id_case_1" />
Forma de onda:
<pan-container :grid="false">
{.w-full .dark-invert}
</pan-container>