Download Xilinx XST User Guide

Transcript
R
Chapter 2: HDL Coding Techniques
Specify initial contents for a single-port RAM using the following Verilog code.
These coding examples are accurate as of the date of publication. You can download any
updates to these examples from
ftp://ftp.xilinx.com/pub/documentation/misc/examples_v7.zip.
//
// Initializing Block RAM (Single-Port BRAM)
//
module v_rams_20a (clk, we, addr, di, do);
input clk;
input we;
input [5:0] addr;
input [19:0] di;
output [19:0] do;
reg [19:0] ram [63:0];
reg [19:0] do;
initial begin
ram[63] =
ram[60] =
ram[57] =
ram[54] =
ram[51] =
ram[48] =
ram[45] =
ram[42] =
ram[39] =
ram[36] =
ram[33] =
ram[30]
ram[27]
ram[24]
ram[21]
ram[18]
ram[15]
ram[12]
ram[9]
ram[6]
ram[3]
ram[0]
=
=
=
=
=
=
=
=
=
=
=
20'h0200A;
20'h04000;
20'h00300;
20'h0203B;
20'h08201;
20'h02500;
20'h04002;
20'h00500;
20'h04003;
20'h00102;
20'h00301;
ram[62]
ram[59]
ram[56]
ram[53]
ram[50]
ram[47]
ram[44]
ram[41]
ram[38]
ram[35]
ram[32]
=
=
=
=
=
=
=
=
=
=
=
20'h00300;
20'h08601;
20'h08602;
20'h08300;
20'h00500;
20'h00340;
20'h08300;
20'h08101;
20'h0241E;
20'h02122;
20'h00102;
ram[61]
ram[58]
ram[55]
ram[52]
ram[49]
ram[46]
ram[43]
ram[40]
ram[37]
ram[34]
ram[31]
=
=
=
=
=
=
=
=
=
=
=
20'h08101;
20'h0233A;
20'h02310;
20'h04002;
20'h04001;
20'h00241;
20'h08201;
20'h00602;
20'h00301;
20'h02021;
20'h02222;
20'h04001;
20'h00900;
20'h04002;
20'h02023;
20'h00301;
20'h00102;
20'h00301;
20'h04004;
20'h02500;
20'h0030D;
20'h0400D;
ram[29]
ram[26]
ram[23]
ram[20]
ram[17]
ram[14]
ram[11]
ram[8]
ram[5]
ram[2]
=
=
=
=
=
=
=
=
=
=
20'h00342;
20'h00302;
20'h00900;
20'h00303;
20'h04004;
20'h02137;
20'h00102;
20'h00304;
20'h02500;
20'h02341;
ram[28]
ram[25]
ram[22]
ram[19]
ram[16]
ram[13]
ram[10]
ram[7]
ram[4]
ram[1]
=
=
=
=
=
=
=
=
=
=
20'h0232B;
20'h00102;
20'h08201;
20'h02433;
20'h00301;
20'h02036;
20'h02237;
20'h04040;
20'h02500;
20'h08201;
end
always @(posedge clk)
begin
if (we)
ram[addr] <= di;
do <= ram[addr];
end
endmodule
232
www.xilinx.com
XST User Guide
8.1i