Ram do parâmetro HDL Verilog com portas de entrada e saída separadas

author-image

Por

Este exemplo mostra como instautar um bloco de memória usando a função LPM lpm_ram_dq. A ram variável usa a função lpm_ram_dq da biblioteca LPM. As portas são definidas inicialmente e, em seguida, mapeadas para as portas LPM, conforme mostrado no texto vermelho. Os valores dos parâmetros são então passados com a palavra-chave defparam. Neste exemplo, um bloco de RAM 16 x 256 é instaurou; você pode usar um processo semelhante para instautar blocos de RAM de outros tamanhos.

O parâmetro lpm_file refere-se ao Arquivo de inicialização de memória (.mif) que especifica o conteúdo inicial de um bloco de memória (RAM ou ROM). Um MIF é um arquivo de texto ASCII que pode ser criado manualmente ou salvo da saída de uma simulação. Em um MIF, você é obrigado a especificar os valores de profundidade e largura da memória e, opcionalmente, você pode especificar os radixes usados para exibir e interpretar endereços e valores de dados. Esses valores são mostrados no texto vermelho no extrato do arquivo de amostra, map_lpm_ram.mif,que está incluído abaixo. Um MIF é usado como um arquivo de entrada para inicialização de memória no compilador e simulador MAX+PLUS II.

Para obter mais informações sobre como usar este exemplo em seu projeto, acesse:

Como usar os exemplos de HDL verilog ›

RAMveri.v

// instantiation of lpm_ram_dq, 16-bit data, 256 address location

module map_lpm_ram (dataout, datain, addr, we, inclk, outclk);

// port instantiation

input   [15:0] datain;
input   [7:0] addr;
input   we, inclk, outclk;

output  [15:0] dataout;

// instantiating lpm_ram_dq

lpm_ram_dq ram (.data(datain), .address(addr), .we(we), .inclock(inclk), 
                .outclock(outclk), .q(dataout));

// passing the parameter values

defparam ram.lpm_width = 16;
defparam ram.lpm_widthad = 8;
defparam ram.lpm_indata = "REGISTERED"
defparam ram.lpm_outdata = "REGISTERED"
defparam ram.lpm_file = "map_lpm_ram.mif"

endmodule

 

Extrair do arquivo MIF

Baixe map_lpm_ram.mif

WIDTH = 16;
DEPTH = 256;

ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;

CONTENT BEGIN
   0   :   ffff;
   1   :   0000;
   2   :   bbf3;
   3   :   0000;
   4   :   0000;
   .
   .
   .
   fb   :   0000;
   fc   :   0000;
   fd   :   0000;
   fe   :   0000;
   ff   :   0000;
END;

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.