Verilog HDL Parameter-RAM mit separaten Input- und Output-Ports

author-image

Von

Dieses Beispiel zeigt, wie Sie einen Speicherblock mithilfe der LPM-Funktion lpm_ram_dq instanziieren. Die Variable RAM verwendet die lpm_ram_dq Funktion aus der LPM-Bibliothek. Die Ports werden zunächst definiert und dann den LPM-Ports zugeordnet, wie im roten Text dargestellt. Die Parameterwerte werden dann mit dem Schlüsselwort defparam übertragen. In diesem Beispiel wird ein 16 x 256-RAM-Block instanziiert; Sie können einen ähnlichen Prozess verwenden, um RAM-Blöcke anderer Größen zu instanziieren.

Der lpm_file Parameter bezieht sich auf die Memory Initialization File (.mif), die den ursprünglichen Inhalt eines Speicherblocks (RAM oder ROM) angibt. Ein MIF ist eine ASCII-Textdatei, die manuell erstellt oder aus der Ausgabe einer Simulation gespeichert werden kann. In einem MIF müssen Sie die Werte für die Speichertiefe und -breite angeben. Optional können Sie die Radixen angeben, die für die Anzeige und Interpretation von Adressen und Datenwerten verwendet werden. Diese Werte werden im Extrahieren aus der Beispieldatei map_lpm_ram.mifin rotem Text angezeigt, der unten enthalten ist. Ein MIF wird als Eingabedatei zur Speicherinitialisierung im MAX+PLUS II Compiler und Simulator verwendet.

Weitere Informationen zur Verwendung dieses Beispiels in Ihrem Projekt siehe:

Beispiele für Verilog HDL ›

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

 

Extrahieren aus der MIF-Datei

map_lpm_ram.mif herunterladen

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;

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.