Skip to content

RAM

Abrir arquivo fonte ⧉

Memória de acesso aleatório

Topologia

Diagram

Genericos

NomeTipoValorDescrição
DATA_WIDTHnatural8Largura dos vetores de dados
ADDRESS_WIDTHnatural8Largura do vetor de endereço
ADDRESSABLE_WIDTHnatural7Largura do vetor de endereço mapeado na memória

ATENÇÃO!

ADDRESSABLE_WIDTH deve ser menor ou igual a ADDRESS_WIDTH.

Portas

NomeDireçãoTipoDescrição
clockinputstd_logicSinal de clock
enableinputstd_logicHabilita a entidade
enable_readinputstd_logicHabilita leitura. Caso contrário, destination assume sinal de alta impedância
enable_writeinputstd_logicHabilita escrita
addressinputstd_logic_vector<ADDRESS_WIDTH>Vetor de endereço
sourceinputstd_logic_vector<DATA_WIDTH>Vetor de dados para escrita
destinationoutputstd_logic_vector<DATA_WIDTH>Vetor de dados endereçado para leitura

Processos

WRITE

Dependências: clock

Durante a borda de subida de clock, caso tanto enablecomo enable_write estejam habilitados, atribui o dado source ao buffer na posição codificada em address.

Usagem

vhdl
RAM : entity WORK.GENERIC_RAM
    generic map (
        DATA_WIDTH_0      => 32;
        ADDRESS_WIDTH     => 32;
        ADDRESSABLE_WIDTH => 8
    )
    port map (
        clock        => clock,
        enable       => signal_enable,
        enable_read  => signal_enable_read,
        enable_write => signal_enable_write,
        address      => signal_address,
        source       => signal_source,
        destination  => signal_destination
    );

Diagrama RTL

Diagrama de RTL da RAM

Casos de teste

Abrir arquivo fonte ⧉

tb_GENERIC_RAM_case_1

Forma de onda do caso de teste 1 da RAM

Publicado sob a Licença MIT.