/* SLICEM at the following: SLICE_XxY* Where Y any value x Always even (ie 100, 102, 104, etc) In our ROI x = 6, 8, 10, 12, 14 SRL16E: LOC + BEL SRLC32E: LOC + BEL RAM64X1S: LOCs but doesn't BEL (or maybe I'm using the wrong BEL?) */ module top(input clk, stb, di, output do); localparam integer DIN_N = 256; localparam integer DOUT_N = 256; reg [DIN_N-1:0] din; wire [DOUT_N-1:0] dout; reg [DIN_N-1:0] din_shr; reg [DOUT_N-1:0] dout_shr; always @(posedge clk) begin din_shr <= {din_shr, di}; dout_shr <= {dout_shr, din_shr[DIN_N-1]}; if (stb) begin din <= din_shr; dout_shr <= dout; end end assign do = dout_shr[DOUT_N-1]; roi roi ( .clk(clk), .din(din), .dout(dout) ); endmodule /* Using UG474 recommended primitives */ module roi(input clk, input [255:0] din, output [255:0] dout); my_RAM32X1S #(.LOC("SLICE_X12Y100")) c0(.clk(clk), .din(din[ 0 +: 8]), .dout(dout[ 0 +: 8])); my_RAM32X1D #(.LOC("SLICE_X12Y101")) c1(.clk(clk), .din(din[ 8 +: 8]), .dout(dout[ 8 +: 8])); my_RAM32M #(.LOC("SLICE_X12Y102")) c2(.clk(clk), .din(din[ 16 +: 8]), .dout(dout[ 16 +: 8])); my_RAM64X1S #(.LOC("SLICE_X12Y103")) c3(.clk(clk), .din(din[ 24 +: 8]), .dout(dout[ 24 +: 8])); my_RAM64X1D #(.LOC("SLICE_X12Y104")) c4(.clk(clk), .din(din[ 32 +: 8]), .dout(dout[ 32 +: 8])); my_RAM64M #(.LOC("SLICE_X12Y105")) c5(.clk(clk), .din(din[ 40 +: 8]), .dout(dout[ 40 +: 8])); my_RAM128X1S #(.LOC("SLICE_X12Y106")) c6(.clk(clk), .din(din[ 48 +: 8]), .dout(dout[ 48 +: 8])); my_RAM128X1D #(.LOC("SLICE_X12Y107")) c7(.clk(clk), .din(din[ 56 +: 8]), .dout(dout[ 56 +: 8])); my_RAM256X1S #(.LOC("SLICE_X12Y108")) c8(.clk(clk), .din(din[ 64 +: 8]), .dout(dout[ 64 +: 8])); //Multi-packing my_RAM32X1S_2 #(.LOC("SLICE_X12Y110")) m0(.clk(clk), .din(din[ 72 +: 8]), .dout(dout[ 72 +: 8])); my_RAM32X1S_3 #(.LOC("SLICE_X12Y111")) m1(.clk(clk), .din(din[ 80 +: 8]), .dout(dout[ 80 +: 8])); my_RAM32X1S_4 #(.LOC("SLICE_X12Y112")) m2(.clk(clk), .din(din[ 88 +: 8]), .dout(dout[ 88 +: 8])); my_RAM64X1D_2 #(.LOC("SLICE_X12Y113")) m3(.clk(clk), .din(din[ 96 +: 8]), .dout(dout[ 96 +: 8])); //next round my_RAM64X1S_2 #(.LOC("SLICE_X12Y114")) m4(.clk(clk), .din(din[ 104 +: 8]), .dout(dout[ 104 +: 8])); my_RAM64X1S_3 #(.LOC("SLICE_X12Y115")) m5(.clk(clk), .din(din[ 112 +: 8]), .dout(dout[ 112 +: 8])); my_RAM64X1S_4 #(.LOC("SLICE_X12Y116")) m6(.clk(clk), .din(din[ 120 +: 8]), .dout(dout[ 120 +: 8])); //...and out of bits my_RAM128X1S_2 #(.LOC("SLICE_X12Y117")) m7(.clk(clk), .din(din[ 200 +: 8]), .dout(dout[ 200 +: 8])); my_SRLC32E #(.LOC("SLICE_X14Y100"), .BEL("A6LUT")) s0(.clk(clk), .din(din[ 128 +: 8]), .dout(dout[ 128 +: 8])); my_SRLC32E #(.LOC("SLICE_X14Y101"), .BEL("B6LUT")) s1(.clk(clk), .din(din[ 136 +: 8]), .dout(dout[ 136 +: 8])); my_SRLC32E #(.LOC("SLICE_X14Y102"), .BEL("C6LUT")) s2(.clk(clk), .din(din[ 144 +: 8]), .dout(dout[ 144 +: 8])); my_SRLC32E #(.LOC("SLICE_X14Y103"), .BEL("D6LUT")) s3(.clk(clk), .din(din[ 152 +: 8]), .dout(dout[ 152 +: 8])); my_SRL16E #(.LOC("SLICE_X14Y104"), .BEL("A6LUT")) s4(.clk(clk), .din(din[ 160 +: 8]), .dout(dout[ 160 +: 8])); my_SRL16E #(.LOC("SLICE_X14Y105"), .BEL("B6LUT")) s5(.clk(clk), .din(din[ 168 +: 8]), .dout(dout[ 168 +: 8])); my_SRL16E #(.LOC("SLICE_X14Y106"), .BEL("C6LUT")) s6(.clk(clk), .din(din[ 176 +: 8]), .dout(dout[ 176 +: 8])); my_SRL16E #(.LOC("SLICE_X14Y107"), .BEL("D6LUT")) s7(.clk(clk), .din(din[ 184 +: 8]), .dout(dout[ 184 +: 8])); //my_SRL16E_8 #(.LOC("SLICE_X14Y108")) // s8(.clk(clk), .din(din[ 192 +: 8]), .dout(dout[ 192 +: 8])); endmodule //It created a LUT instead of aggregating using WA7MUX module my_RAM64X1S_2_mux (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; assign dout[0] = din[0] ? oa : ob; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM64X1S #( ) ramb ( .O(ob), .A0(din[0]), .A1(din[0]), .A2(din[0]), .A3(din[0]), .A4(din[0]), .A5(din[0]), .D(din[0]), .WCLK(clk), .WE(din[0])); (* LOC=LOC, KEEP, DONT_TOUCH *) RAM64X1S #( ) rama ( .O(oa), .A0(din[0]), .A1(din[0]), .A2(din[0]), .A3(din[0]), .A4(din[0]), .A5(din[0]), .D(din[0]), .WCLK(clk), .WE(din[0])); endmodule module my_SRL16E_4 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, BEL="D6LUT" *) SRL16E #( ) lutd ( .Q(dout[3]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .CE(din[4]), .CLK(din[5]), .D(din[6])); (* LOC=LOC, BEL="C6LUT" *) SRL16E #( ) lutc ( .Q(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .CE(din[4]), .CLK(din[5]), .D(din[6])); (* LOC=LOC, BEL="B6LUT" *) SRL16E #( ) lutb ( .Q(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .CE(din[4]), .CLK(din[5]), .D(din[6])); (* LOC=LOC, BEL="A6LUT" *) SRL16E #( ) luta ( .Q(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .CE(din[4]), .CLK(din[5]), .D(din[6])); endmodule module my_SRL16E_8 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, BEL="D6LUT" *) SRL16E #( ) lutd2 ( .Q(dout[7]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .CE(din[4]), .CLK(din[5]), .D(din[6])); (* LOC=LOC, BEL="D6LUT" *) SRL16E #( ) lutd1 ( .Q(dout[6]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .CE(din[4]), .CLK(din[5]), .D(din[6])); endmodule module my_SRLC32E_4 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, BEL="D6LUT", KEEP, DONT_TOUCH *) SRLC32E #( .INIT(32'h00000000), .IS_CLK_INVERTED(1'b0) ) lutd ( .Q(dout[3]), .Q31(), .A(din[4:0]), .CE(din[5]), .CLK(din[6]), .D(din[7])); (* LOC=LOC, BEL="C6LUT", KEEP, DONT_TOUCH *) SRLC32E #( .INIT(32'h00000000), .IS_CLK_INVERTED(1'b0) ) lutc ( .Q(dout[2]), .Q31(), .A(din[4:0]), .CE(din[5]), .CLK(din[6]), .D(din[7])); (* LOC=LOC, BEL="B6LUT", KEEP, DONT_TOUCH *) SRLC32E #( .INIT(32'h00000000), .IS_CLK_INVERTED(1'b0) ) lutb ( .Q(dout[1]), .Q31(), .A(din[4:0]), .CE(din[5]), .CLK(din[6]), .D(din[7])); (* LOC=LOC, BEL="A6LUT", KEEP, DONT_TOUCH *) SRLC32E #( .INIT(32'h00000000), .IS_CLK_INVERTED(1'b0) ) luta ( .Q(dout[0]), .Q31(), .A(din[4:0]), .CE(din[5]), .CLK(din[6]), .D(din[7])); endmodule module my_RAM32X1S_2 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC *) RAM32X1S #( ) lutd ( .O(dout[3]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); (* LOC=LOC *) RAM32X1S #( ) lutc ( .O(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); endmodule module my_RAM32X1S_3 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC *) RAM32X1S #( ) lutd ( .O(dout[3]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); (* LOC=LOC *) RAM32X1S #( ) lutc ( .O(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); (* LOC=LOC *) RAM32X1S #( ) lutb ( .O(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); endmodule module my_RAM32X1S_4 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC *) RAM32X1S #( ) lutd ( .O(dout[3]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); (* LOC=LOC *) RAM32X1S #( ) lutc ( .O(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); (* LOC=LOC *) RAM32X1S #( ) lutb ( .O(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); (* LOC=LOC *) RAM32X1S #( ) luta ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); endmodule module my_RAM64X1S_2 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC *) RAM64X1S #( ) lutd ( .O(dout[3]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); (* LOC=LOC *) RAM64X1S #( ) lutc ( .O(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); endmodule module my_RAM64X1S_3 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC *) RAM64X1S #( ) lutd ( .O(dout[3]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); (* LOC=LOC *) RAM64X1S #( ) lutc ( .O(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); (* LOC=LOC *) RAM64X1S #( ) lutb ( .O(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); endmodule module my_RAM64X1S_4 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC *) RAM64X1S #( ) lutd ( .O(dout[3]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); (* LOC=LOC *) RAM64X1S #( ) lutc ( .O(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); (* LOC=LOC *) RAM64X1S #( ) lutb ( .O(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); (* LOC=LOC *) RAM64X1S #( ) luta ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); endmodule module my_RAM64X1D_2 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM64X1D #( .INIT(64'h0), .IS_WCLK_INVERTED(1'b0) ) ramb ( .DPO(dout[1]), .D(din[0]), .WCLK(clk), .WE(din[2]), .A0(din[3]), .A1(din[4]), .A2(din[5]), .A3(din[6]), .A4(din[7]), .A5(din[0]), .DPRA0(din[1]), .DPRA1(din[2]), .DPRA2(din[3]), .DPRA3(din[4]), .DPRA4(din[5]), .DPRA5(din[6])); (* LOC=LOC, KEEP, DONT_TOUCH *) RAM64X1D #( .INIT(64'h0), .IS_WCLK_INVERTED(1'b0) ) rama ( .DPO(dout[0]), .D(din[0]), .WCLK(clk), .WE(din[2]), .A0(din[3]), .A1(din[4]), .A2(din[5]), .A3(din[6]), .A4(din[7]), .A5(din[0]), .DPRA0(din[1]), .DPRA1(din[2]), .DPRA2(din[3]), .DPRA3(din[4]), .DPRA4(din[5]), .DPRA5(din[6])); endmodule //BEL: yes module my_SRLC32E (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; parameter BEL="A6LUT"; wire mc31c; (* LOC=LOC, BEL=BEL, KEEP, DONT_TOUCH *) SRLC32E #( .INIT(32'h00000000), .IS_CLK_INVERTED(1'b0) ) lut ( .Q(dout[0]), .Q31(mc31c), .A(din[4:0]), .CE(din[5]), .CLK(din[6]), .D(din[7])); endmodule //BEL: yes module my_SRL16E (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; parameter BEL="A6LUT"; (* LOC=LOC, BEL=BEL, KEEP, DONT_TOUCH *) SRL16E #( ) SRL16E ( .Q(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .CE(din[4]), .CLK(din[5]), .D(din[6])); endmodule module my_RAM64M (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; parameter BEL="A6LUT"; (* LOC=LOC, BEL=BEL, KEEP, DONT_TOUCH *) RAM64M #( ) RAM64M ( .DOA(dout[0]), .DOB(dout[1]), .DOC(dout[2]), .DOD(dout[3]), .ADDRA(din[0]), .ADDRB(din[1]), .ADDRC(din[2]), .ADDRD(din[3]), .DIA(din[4]), .DIB(din[5]), .DIC(din[6]), .DID(din[7]), .WCLK(clk), .WE(din[1])); endmodule //Can't get BEL to work. Maybe can't since multiple? module my_RAM64X1S (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; parameter BEL="A6LUT"; (* LOC=LOC, BEL=BEL, KEEP, DONT_TOUCH *) RAM64X1S #( ) RAM64X1S ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); endmodule module my_RAM64X1S_1 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; parameter BEL="A6LUT"; (* LOC=LOC, BEL=BEL, KEEP, DONT_TOUCH *) RAM64X1S_1 #( ) RAM64X1S_1 ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D(din[6]), .WCLK(clk), .WE(din[0])); endmodule module my_RAM64X2S (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM64X2S #( ) RAM64X2S ( .O0(dout[0]), .O1(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .D0(din[6]), .D1(din[7]), .WCLK(clk), .WE(din[1])); endmodule module my_RAM64X1D (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM64X1D #( .INIT(64'h0), .IS_WCLK_INVERTED(1'b0) ) RAM64X1D ( .DPO(dout[0]), .D(din[0]), .WCLK(clk), .WE(din[2]), .A0(din[3]), .A1(din[4]), .A2(din[5]), .A3(din[6]), .A4(din[7]), .A5(din[0]), .DPRA0(din[1]), .DPRA1(din[2]), .DPRA2(din[3]), .DPRA3(din[4]), .DPRA4(din[5]), .DPRA5(din[6])); endmodule module my_RAM128X1D (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM128X1D #( .INIT(128'h0), .IS_WCLK_INVERTED(1'b0) ) RAM128X1D ( .DPO(dout[0]), .SPO(dout[1]), .D(din[0]), .WCLK(clk), .WE(din[2])); endmodule module my_RAM128X1S (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM128X1S #( ) RAM128X1S ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .A6(din[6]), .D(din[7]), .WCLK(din[0]), .WE(din[1])); endmodule module my_RAM128X1S_2 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM128X1S #( ) lutb ( .O(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .A6(din[6]), .D(din[7]), .WCLK(din[0]), .WE(din[1])); (* LOC=LOC, KEEP, DONT_TOUCH *) RAM128X1S #( ) luta ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .A5(din[5]), .A6(din[6]), .D(din[7]), .WCLK(din[0]), .WE(din[1])); endmodule module my_RAM256X1S (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM256X1S #( ) RAM256X1S ( .O(dout[0]), .A({din[0], din[7:0]}), .D(din[0]), .WCLK(din[1]), .WE(din[2])); endmodule module my_RAM32M (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM32M #( ) RAM32M ( .DOA(dout[1:0]), .DOB(dout[3:2]), .DOC(dout[5:4]), .DOD(dout[7:6]), .ADDRA(din[4:0]), .ADDRB(din[4:0]), .ADDRC(din[4:0]), .ADDRD(din[4:0]), .DIA(din[5:4]), .DIB(din[6:5]), .DIC(din[7:6]), .DID(din[1:0]), .WCLK(din[1]), .WE(din[2])); endmodule module my_RAM32X1D (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM32X1D #( ) RAM32X1D ( .DPO(dout[0]), .SPO(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .DPRA0(din[6]), .DPRA1(din[7]), .DPRA2(din[0]), .DPRA3(din[1]), .DPRA4(din[2]), .WCLK(din[3]), .WE(din[4])); endmodule /* Invalid It tries to place both at D6LUT module my_RAM32X1D_2 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM32X1D #( ) lutb ( .DPO(dout[3]), .SPO(dout[2]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .DPRA0(din[6]), .DPRA1(din[7]), .DPRA2(din[0]), .DPRA3(din[1]), .DPRA4(din[2]), .WCLK(din[3]), .WE(din[4])); (* LOC=LOC, KEEP, DONT_TOUCH *) RAM32X1D #( ) luta ( .DPO(dout[1]), .SPO(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .DPRA0(din[6]), .DPRA1(din[7]), .DPRA2(din[0]), .DPRA3(din[1]), .DPRA4(din[2]), .WCLK(din[3]), .WE(din[4])); endmodule */ module my_RAM32X1S (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; parameter BEL="A6LUT"; (* LOC=LOC, BEL=BEL, KEEP, DONT_TOUCH *) RAM32X1S #( ) RAM32X1S ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); endmodule module my_RAM32X1S_1 (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; parameter BEL="A6LUT"; (* LOC=LOC, BEL=BEL, KEEP, DONT_TOUCH *) RAM32X1S_1 #( ) RAM32X1S_1 ( .O(dout[0]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D(din[5]), .WCLK(din[6]), .WE(din[7])); endmodule module my_RAM32X2S (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; (* LOC=LOC, KEEP, DONT_TOUCH *) RAM32X2S #( ) RAM32X2S ( .O0(dout[0]), .O1(dout[1]), .A0(din[0]), .A1(din[1]), .A2(din[2]), .A3(din[3]), .A4(din[4]), .D0(din[5]), .D1(din[6]), .WCLK(din[7]), .WE(din[0])); endmodule