Arquivo de registradores
Topologia
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
Casos de teste
Caso 1 tb_rv32i_register_file_case_1
Forma de onda: