Skip to content

Unidade de Execução

Topologia

alt text

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

Diagrama de RTL da Unidade de Execução

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">

![Forma de onda do caso de teste 1 da Controlador da Unidade de Execução/images/reference/entities/tb_module_execution_unit_case_1.svg){.w-full .dark-invert}

</pan-container>

Publicado sob a Licença MIT.