RAM paramètre HDL Verilog avec ports d’entrée et de sortie séparés

author-image

Par

Cet exemple montre comment activer instantanément un bloc mémoire en utilisant la fonction LPM lpm_ram_dq. La ram variable utilise la fonction lpm_ram_dq de la bibliothèque LPM. Les ports sont initialement définis, puis mis en mappés sur les ports LPM, comme indiqué dans le texte rouge. Les valeurs des paramètres sont ensuite transmises avec le mot-clé defparam. Dans cet exemple, un bloc de RAM 16 x 256 est instantané ; vous pouvez utiliser un processus similaire pour instantanéiser les blocs de RAM d’autres tailles.

Le paramètre lpm_file fait référence au fichier d’initialisation de la mémoire (.mif) qui spécifie le contenu initial d’un bloc mémoire (RAM ou ROM). Un MIF est un fichier texte ASCII qui peut être créé manuellement ou enregistré à partir de la sortie d’une simulation. Dans un MIF, vous êtes tenu de spécifier les valeurs de profondeur et de largeur de la mémoire et, en option, vous pouvez spécifier les radixes utilisés pour afficher et interpréter les adresses et les valeurs de données. Ces valeurs sont indiquées en texte rouge dans l’extrait du fichier d’échantillons, map_lpm_ram.mif, qui est inclus ci-dessous. Un MIF est utilisé comme fichier d’entrée pour l’initialisation de la mémoire dans le compilateur et le simulateur MAX+PLUS II.

Pour plus d’informations sur l’utilisation de cet exemple dans votre projet, consultez :

Comment utiliser les exemples de Verilog HDL ›

RAMvmvmv.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

Extraire du fichier MIF

Télécharger 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;

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.