?? xc2v_ram32xn_d.v
字號:
//
// Module: XC2V_RAM32XN_D
//
// Description: Distributed SelectRAM example
// Dual Port 32 x N-bit
// Use template "SelectRAM_32D.v"
// and registered outputs (optional)
//
// Device: VIRTEX-II Family
//---------------------------------------------------------------------------------------
module XC2V_RAM32XN_D (DATA_IN, ADDRESS, ADDRESS_DP, WRITE_EN, CLK, O_DATA_OUT, O_DATA_OUT_DP);
parameter data_width = 8;//Replace with desired data-bus width
input [data_width-1:0]DATA_IN;
input [4:0] ADDRESS;
input [4:0] ADDRESS_DP;
input WRITE_EN;
input CLK;
output [data_width-1:0]O_DATA_OUT_DP;
reg [data_width-1:0]O_DATA_OUT_DP;
output [data_width-1:0]O_DATA_OUT;
reg [data_width-1:0]O_DATA_OUT;
wire [data_width-1:0]DATA_OUT;
wire [data_width-1:0]DATA_OUT_DP;
/*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 32 X 8-bit RAM. */
//Distributed SelectRAM Instantiation - Data-Port 0
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[0]), //insert output signal SPO
.DPO(DATA_OUT_DP[0]) //insert output signal DPO
);
//Distributed SelectRAM Instantiation - Data-Port 1
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[1]), //insert output signal SPO
.DPO(DATA_OUT_DP[1]) //insert output signal DPO
);
//Distributed SelectRAM Instantiation - Data-Port 2
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[2]), //insert output signal SPO
.DPO(DATA_OUT_DP[2]) //insert output signal DPO
);
//Distributed SelectRAM Instantiation - Data-Port 3
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[3]), //insert output signal SPO
.DPO(DATA_OUT_DP[3]) //insert output signal DPO
);
//Distributed SelectRAM Instantiation - Data-Port 4
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[4]), //insert output signal SPO
.DPO(DATA_OUT_DP[4]) //insert output signal DPO
);
//Distributed SelectRAM Instantiation - Data-Port 5
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[5]), //insert output signal SPO
.DPO(DATA_OUT_DP[5]) //insert output signal DPO
);
//Distributed SelectRAM Instantiation - Data-Port 6
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[6]), //insert output signal SPO
.DPO(DATA_OUT_DP[6]) //insert output signal DPO
);
//Distributed SelectRAM Instantiation - Data-Port 7
RAM32X1D U_RAM32X1D_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 port SPO
.A1(ADDRESS[1]), //insert Address 1 signal port SPO
.A2(ADDRESS[2]), //insert Address 2 signal port SPO
.A3(ADDRESS[3]), //insert Address 3 signal port SPO
.A4(ADDRESS[4]), //insert Address 4 signal port SPO
.DPRA0(ADDRESS_DP[0]), //insert Address 0 signal dual port DPO
.DPRA1(ADDRESS_DP[1]), //insert Address 1 signal dual port DPO
.DPRA2(ADDRESS_DP[2]), //insert Address 2 signal dual port DPO
.DPRA3(ADDRESS_DP[3]), //insert Address 3 signal dual port DPO
.DPRA4(ADDRESS_DP[4]), //insert Address 4 signal dual port DPO
.SPO(DATA_OUT[7]), //insert output signal SPO
.DPO(DATA_OUT_DP[7]) //insert output signal DPO
);
//Registered outputs / Synchronous read
always @(posedge CLK)
begin
O_DATA_OUT <= DATA_OUT;
O_DATA_OUT_DP <= DATA_OUT_DP;
end
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -