📄 xc2v_ramb_1_port.v
字号:
//
// Module: XC2V_RAMB_1_PORT
//
// Description: 18Kb Block SelectRAM example
// Single Port 512 x 36 bits
// Use template "SelectRAM_A36.v"
//
// Device: VIRTEX-II Family
//-------------------------------------------------------------------------------------------------------
module XC2V_RAMB_1_PORT (CLK, SET_RESET, ENABLE, WRITE_EN, ADDRESS, DATA_IN, DATA_OUT);
input CLK;
input SET_RESET;
input ENABLE;
input WRITE_EN;
input [35:0] DATA_IN;
input [8:0] ADDRESS;
output [35:0] DATA_OUT;
wire CLK_BUFG;
wire INV_SET_RESET;
wire [3:0]DATA_IN_PARITY;
wire [3:0]DATA_OUT_PARITY;
//Use of the free inverter on SSR pin
assign INV_SET_RESET = ~SET_RESET;
//Assign Parity bits to maintain correct port numbering
assign DATA_IN_PARITY[3:0] = DATA_IN[35:32];
assign DATA_OUT[35:32] = DATA_OUT_PARITY[3:0];
// initialize block ram for simulation
// synopsys translate_off
defparam
//"Read during Write" attribute for functional simulation
U_RAMB16_S36.WRITE_MODE = "READ_FIRST", //WRITE_FIRST(default)/ READ_FIRST/ NO_CHANGE
//Output value after configuration
U_RAMB16_S36.INIT = 36'h000000000,
//Output value if SSR active
U_RAMB16_S36.SRVAL = 36'h012345678,
//Plus bits initial content
U_RAMB16_S36.INITP_00 = 256'h0123456789ABCDEF000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INITP_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INITP_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INITP_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INITP_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
//Regular bits initial content
U_RAMB16_S36.INIT_00 = 256'h0123456789ABCDEF000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_28 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_29 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_2A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_2B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_2C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_2D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_2E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_2F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_30 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_31 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_32 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_33 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_34 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_35 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_36 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_38 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_39 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_3A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_3B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_3C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_3D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_3E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
U_RAMB16_S36.INIT_3F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
// synopsys translate_on
//Instantiate the clock Buffer
BUFG U_BUFG ( .I(CLK), .O(CLK_BUFG));
//Block SelectRAM Instantiation
RAMB16_S36 U_RAMB16_S36 ( .DI(DATA_IN[31:0]),
.DIP(DATA_IN_PARITY[3:0]),
.ADDR(ADDRESS),
.EN(ENABLE),
.WE(WRITE_EN),
.SSR(INV_SET_RESET),
.CLK(CLK_BUFG),
.DO(DATA_OUT[31:0]),
.DOP(DATA_OUT_PARITY[3:0])
);
// synthesis attribute declarations
/* synopsys attribute
WRITE_MODE "READ_FIRST"
INIT "000000000"
SSVAL "012345678"
INITP_00 "0123456789ABCDEF000000000000000000000000000000000000000000000000"
INITP_01 "0000000000000000000000000000000000000000000000000000000000000000"
INITP_02 "0000000000000000000000000000000000000000000000000000000000000000"
INITP_03 "0000000000000000000000000000000000000000000000000000000000000000"
INITP_04 "0000000000000000000000000000000000000000000000000000000000000000"
INITP_05 "0000000000000000000000000000000000000000000000000000000000000000"
INITP_06 "0000000000000000000000000000000000000000000000000000000000000000"
INITP_07 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_00 "0123456789ABCDEF000000000000000000000000000000000000000000000000"
INIT_01 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_02 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_03 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_04 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_05 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_06 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_07 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_08 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_09 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_0A "0000000000000000000000000000000000000000000000000000000000000000"
INIT_0B "0000000000000000000000000000000000000000000000000000000000000000"
INIT_0C "0000000000000000000000000000000000000000000000000000000000000000"
INIT_0D "0000000000000000000000000000000000000000000000000000000000000000"
INIT_0E "0000000000000000000000000000000000000000000000000000000000000000"
INIT_0F "0000000000000000000000000000000000000000000000000000000000000000"
INIT_10 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_11 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_12 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_13 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_14 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_15 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_16 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_17 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_18 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_19 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_1A "0000000000000000000000000000000000000000000000000000000000000000"
INIT_1B "0000000000000000000000000000000000000000000000000000000000000000"
INIT_1C "0000000000000000000000000000000000000000000000000000000000000000"
INIT_1D "0000000000000000000000000000000000000000000000000000000000000000"
INIT_1E "0000000000000000000000000000000000000000000000000000000000000000"
INIT_1F "0000000000000000000000000000000000000000000000000000000000000000"
INIT_20 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_21 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_22 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_23 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_24 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_25 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_26 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_27 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_28 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_29 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_2A "0000000000000000000000000000000000000000000000000000000000000000"
INIT_2B "0000000000000000000000000000000000000000000000000000000000000000"
INIT_2C "0000000000000000000000000000000000000000000000000000000000000000"
INIT_2D "0000000000000000000000000000000000000000000000000000000000000000"
INIT_2E "0000000000000000000000000000000000000000000000000000000000000000"
INIT_2F "0000000000000000000000000000000000000000000000000000000000000000"
INIT_30 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_31 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_32 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_33 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_34 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_35 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_36 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_37 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_38 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_39 "0000000000000000000000000000000000000000000000000000000000000000"
INIT_3A "0000000000000000000000000000000000000000000000000000000000000000"
INIT_3B "0000000000000000000000000000000000000000000000000000000000000000"
INIT_3C "0000000000000000000000000000000000000000000000000000000000000000"
INIT_3D "0000000000000000000000000000000000000000000000000000000000000000"
INIT_3E "0000000000000000000000000000000000000000000000000000000000000000"
INIT_3F "0000000000000000000000000000000000000000000000000000000000000000"
*/
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -