?? xc2v_ram16xn_s.v
字號(hào):
//
// Module: XC2V_RAM16XN_S
//
// Description: Distributed SelectRAM example
// Single Port 16 x N-bit
// Use template "SelectRAM_16S.v"
// and registered outputs (optional)
//
// Device: VIRTEX-II Family
//---------------------------------------------------------------------------------------
module XC2V_RAM16XN_S (DATA_IN, ADDRESS, WRITE_EN, CLK, O_DATA_OUT);
parameter data_width = 8;//Replace with desired data-bus width
input [data_width-1:0]DATA_IN;
input [3:0] ADDRESS;
input WRITE_EN;
input CLK;
output [data_width-1:0]O_DATA_OUT;
reg [data_width-1:0]O_DATA_OUT;
wire [data_width-1:0]DATA_OUT;
/*Remember to Instantiate a Distributed SelectRAM block for each Data port
and to give each instance a unique name...The following is an example of instantiation
for a 16 X 8-bit RAM. */
//Distributed SelectRAM Instantiation - Data-Port 0
RAM16X1S U_RAM16X1S_0( .D(DATA_IN[0]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[0]) //insert output signal
);
//Distributed SelectRAM Instantiation - Data-Port 1
RAM16X1S U_RAM16X1S_1( .D(DATA_IN[1]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[1]) //insert output signal
);
//Distributed SelectRAM Instantiation - Data-Port 2
RAM16X1S U_RAM16X1S_2( .D(DATA_IN[2]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[2]) //insert output signal
);
//Distributed SelectRAM Instantiation - Data-Port 3
RAM16X1S U_RAM16X1S_3( .D(DATA_IN[3]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[3]) //insert output signal
);
//Distributed SelectRAM Instantiation - Data-Port 4
RAM16X1S U_RAM16X1S_4( .D(DATA_IN[4]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[4]) //insert output signal
);
//Distributed SelectRAM Instantiation - Data-Port 5
RAM16X1S U_RAM16X1S_5( .D(DATA_IN[5]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[5]) //insert output signal
);
//Distributed SelectRAM Instantiation - Data-Port 6
RAM16X1S U_RAM16X1S_6( .D(DATA_IN[6]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[6]) //insert output signal
);
//Distributed SelectRAM Instantiation - Data-Port 7
RAM16X1S U_RAM16X1S_7( .D(DATA_IN[7]), //insert input signal
.WE(WRITE_EN), //insert Write Enable signal
.WCLK(CLK), //insert Write Clock signal
.A0(ADDRESS[0]), //insert Address 0 signal
.A1(ADDRESS[1]), //insert Address 1 signal
.A2(ADDRESS[2]), //insert Address 2 signal
.A3(ADDRESS[3]), //insert Address 3 signal
.O(DATA_OUT[7]) //insert output signal
);
//Registered outputs / Synchronous read
always @(posedge CLK)
O_DATA_OUT <= DATA_OUT;
endmodule
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -