⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xc2v_ramb_1_port.v

📁 本人正在学习vhdl语言
💻 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 + -