Skip to content

Arquivo de registradores

Topologia

alt text

Interface genérica

DATA_WIDTH

Largura dos vetores de entrada e saída de dados.

  • tipo: natural
  • padrão: XLEN

ADDRESS_WIDTH

Largura dos vetores de entrada e saída de endereços.

  • tipo: natural
  • padrão: 32

Interface de portas

clock INPUT

Entrada do sinal de clock.

  • Tipo: std_logic

enable INPUT

Entrada de sinal que ativa uso do banco de registradores para armazenar valor.

  • tipo: std_logic

address_destination INPUT

Entrada de endereço de registrador para armazenar valor.

  • tipo: std_logic_vector((ADDRESS_WIDTH - 1) downto 0)

address_source_1 INPUT

Entrada de endereço de registrador primária.

  • tipo: std_logic_vector((ADDRESS_WIDTH - 1) downto 0)

address_source_2 INPUT

Entrada de endereço de registrador secundária.

  • tipo: std_logic_vector((ADDRESS_WIDTH - 1) downto 0)

data_destination INPUT

Entrada de valor para armazenar em registrador.

  • tipo: std_logic_vector((DATA_WIDTH - 1) downto 0)

data_source_1 OUTPUT

Saída de valor de registrador primária.

  • tipo: std_logic_vector((DATA_WIDTH - 1) downto 0)

data_source_2 OUTPUT

Saída de valor de registrador secundária.

  • tipo: std_logic_vector((DATA_WIDTH - 1) downto 0)

Usagem

vhdl
REGISTER_FILE : entity WORK.RV32I_REGISTER_FILE
    port map (
        clock               => clock,
        clear               => clear,
        enable              => enable,
        address_destination => select_destination,
        address_source_1    => select_source_1,
        address_source_2    => select_source_2,
        data_destination    => data_destination,
        data_source_1       => data_source_1,
        data_source_2       => data_source_2
);

Diagrama RTL

Diagrama de RTL do arquivo de registradores

Casos de teste

Caso 1 tb_rv32i_register_file_case_1

Forma de onda:

Caso de teste 1 do Arquivo de Registradores

Publicado sob a Licença MIT.