RAM Parameter HDL Verilog dengan Port Input & Output Terpisah

author-image

Oleh

Contoh ini menunjukkan cara meng-instantiate blok memori menggunakan fungsi LPM lpm_ram_dq. Variabel ram menggunakan fungsi lpm_ram_dq dari pustaka LPM. Port awalnya didefinisikan dan kemudian dipetakan ke port LPM, seperti yang ditunjukkan dalam teks merah. Nilai parameter kemudian dilewati dengan kata kunci defparam. Dalam contoh ini, blok RAM 16 x 256 diinisiasi; Anda dapat menggunakan proses serupa untuk menginisiasi blok RAM dengan ukuran lain.

Parameter lpm_file mengacu pada Berkas Inisialisasi Memori (.mif) yang menentukan konten awal blok memori (RAM atau ROM). MIF adalah berkas teks ASCII dapat dibuat secara manual atau disimpan dari keluaran simulasi. Dalam MIF, Anda harus menentukan nilai kedalaman dan lebar memori dan secara opsional Anda dapat menentukan radix yang digunakan untuk menampilkan dan menafsirkan alamat dan nilai data. Nilai ini ditampilkan dalam teks merah dalam ekstrak dari file sampel, map_lpm_ram.mif, yang disertakan di bawah ini. MIF digunakan sebagai berkas masukan untuk inisialisasi memori di MAX+PLUS II Compiler dan Simulator.

Untuk informasi lebih lanjut tentang penggunaan contoh ini dalam proyek Anda, kunjungi:

Cara menggunakan Contoh 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

 

Ekstrak dari Berkas MIF

Unduh 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;

Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.