byteman  1.3 (Build #225)
Bitstream relocation and manipulation tool
XS7_Fabric.cpp
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2022 Kristiyan Manev, Joseph Powell (University of Manchester)
3  *
4  * Licensed under the Apache License, Version 2.0(the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 
17 #include<cstdint> //uint
18 #include<string>
19 
20 #include "XilinxSeries7.h"
21 
23  setFabricChar(char(0), 0, "EndedLine", true);
24  setFabricChar(char(1), XS7_EXTRA_FRAMES_PER_ROW, "EndOfLine", true);
25  //The Xilinx Series7 fabric in byteman is encoded in the following letters:
26 
27  //A-G are brams
28  setFabricChar('A', 28, "BRAM_R"); //"BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL/HCLK_BRAM";
29  setFabricChar('B', 28, "BRAM_L"); //"BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL/HCLK_BRAM";
30  setFabricChar('C', 28, "PCIE_NULL + BRAM_L"); //"PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL/HCLK_BRAM";
31  setFabricChar('D', 28, "L_TERM_INT_BRAM + BRAM_L"); //"L_TERM_INT_BRAM + L_TERM_INT_BRAM + L_TERM_INT_BRAM + L_TERM_INT_BRAM + L_TERM_INT_BRAM + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL/HCLK_BRAM";
32  setFabricChar('E', 28, "BRAM_L + L_TERM_INT_BRAM"); //"BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + L_TERM_INT_BRAM + L_TERM_INT_BRAM + L_TERM_INT_BRAM + L_TERM_INT_BRAM + L_TERM_INT_BRAM/HCLK_BRAM";
33  setFabricChar('F', 28, "BRAM_L + PCIE_NULL"); //"BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + BRAM_L + NULL + NULL + NULL + NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL/HCLK_BRAM";
34  setFabricChar('G', 28, "PCIE_BOT_LEFT + BRAM_R"); //"PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_BOT_LEFT + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_TOP_LEFT + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL + BRAM_R + NULL + NULL + NULL + NULL/HCLK_BRAM";
35 
36  //H-I are DSPs
37  setFabricChar('H', 28, "DSP_L"); //"DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL + DSP_L + NULL + NULL + NULL + NULL/HCLK_DSP_L";
38  setFabricChar('I', 28, "DSP_R"); //"DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL + DSP_R + NULL + NULL + NULL + NULL/HCLK_DSP_R";
39 
40  //L-Z are clb columns
41  setFabricChar('L', 36, "CLBLL_L"); //"CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L/HCLK_CLB";
42  setFabricChar('M', 36, "CLBLM_R"); //"CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R/HCLK_CLB";
43  setFabricChar('N', 36, "CLBLM_L"); //"CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L/HCLK_CLB";
44  setFabricChar('O', 36, "CLBLM_L"); //"CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R + CLBLL_R/HCLK_CLB";
45  setFabricChar('P', 36, "PCIE_INT_INTERFACE_R + CLBLM_R"); //"PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + PCIE_INT_INTERFACE_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R/HCLK_CLB";
46  setFabricChar('Q', 36, "PCIE_TOP + CLBLL"); //"PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_BOT + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_TOP + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L/HCLK_CLB";
47  setFabricChar('R', 36, "PCIE_NULL + CLBLM_R"); //"PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R/HCLK_CLB";
48  setFabricChar('S', 36, "CLBLM_R + PCIE3_INT_INTERFACE_R"); //"CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R/HCLK_CLB";
49  setFabricChar('T', 36, "CLBLL_L + PCIE3_BOT_RIGHT"); //"CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE3_BOT_RIGHT + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL/HCLK_CLB";
50  setFabricChar('U', 36, "CLBLM_R + PCIE_NULL"); //"CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL/HCLK_CLB";
51  setFabricChar('V', 36, "CLBLL_L + PCIE_NULL"); //"CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL/HCLK_CLB";
52  setFabricChar('W', 36, "PCIE3_INT_INTERFACE_R + CLBLM_R"); //"PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + PCIE3_INT_INTERFACE_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R + CLBLM_R/HCLK_CLB";
53  setFabricChar('X', 36, "PCIE3_RIGHT + CLBLL_L"); //"PCIE3_RIGHT + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE3_TOP_RIGHT + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L/HCLK_CLB";
54  setFabricChar('Y', 36, "PCIE_NULL + CLBLL_"); //"PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L + CLBLL_L/HCLK_CLB";
55  setFabricChar('Z', 36, "PCIE_INT_INTERFACE_LEFT_L + CLBLM_L"); //"PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + PCIE_INT_INTERFACE_LEFT_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L + CLBLM_L/HCLK_CLB";
56 
57  //a-z _' + J-K are I/O and misc
58  setFabricChar('a', 42, "LIOB33_SING"); //"LIOB33_SING + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33 + NULL + LIOB33_SING/HCLK_IOB";
59  setFabricChar('b', 30, "CMT_PMV"); //"CMT_PMV + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_R + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_R + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_R + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_R + NULL + NULL + NULL + NULL + NULL + CMT_PMV/HCLK_FIFO_L";
60  setFabricChar('c', 30, "CLK_PMV + CLK_FEED"); //"CLK_PMV + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_PMVIOB + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_PMV2_SVT + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_PMV2 + CLK_FEED + CLK_FEED + CLK_FEED + CLK_MTBF2 + CLK_BUFG_BOT_R + NULL + NULL + NULL/CLK_HROW_BOT_R";
61  setFabricChar('d', 36, "INT_FEEDTHRU_1"); //"INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1/HCLK_FEEDTHRU_1";
62  setFabricChar('f', 36, "CFG_CENTER_MID"); //"NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_CENTER_BOT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_CENTER_MID + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_CENTER_TOP + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL/NULL";
63  setFabricChar('g', 30, "VFRAME"); //"VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME + VFRAME/HCLK_VFRAME";
64  setFabricChar('h', 30, "CMT_PMV_L"); //"CMT_PMV_L + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_L + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_L + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_L + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CMT_FIFO_L + NULL + NULL + NULL + NULL + NULL + CMT_PMV_L/HCLK_FIFO_L";
65  setFabricChar('i', 42, "RIOB33_SING"); //"RIOB33_SING + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33 + NULL + RIOB33_SING/HCLK_IOB";
66  setFabricChar('j', 30, "CLK_FEED + CLK_PMV"); //"CLK_FEED + CLK_PMV + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_PMVIOB + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_PMV2_SVT + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_PMV2 + CLK_FEED + CLK_FEED + CLK_FEED + CLK_MTBF2 + CLK_BUFG_BOT_R + NULL + NULL + NULL/CLK_HROW_BOT_R";
67  setFabricChar('k', 36, "INT_FEEDTHRU_1 + MONITOR_BOT_FUJI2"); //"INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + MONITOR_BOT_FUJI2 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_MID_FUJI2 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_TOP_FUJI2 + NULL + NULL + NULL + NULL/HCLK_FEEDTHRU_1";
68  setFabricChar('l', 30, "CLK_FEED"); //"CLK_BUFG_TOP_R + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED/CLK_HROW_TOP_R";
69  setFabricChar('m', 32, "GTP_CHANNEL_0"); //"NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_0 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_1 + NULL + NULL + NULL + NULL + NULL + GTP_COMMON + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_2 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_3 + NULL + NULL + NULL + NULL + NULL/NULL";
70  setFabricChar('n', 36, "INT_FEEDTHRU_1 + MONITOR_BOT"); //"INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + MONITOR_BOT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_MID + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_TOP + NULL + NULL + NULL + NULL/HCLK_FEEDTHRU_1";
71  setFabricChar('o', 30, "CLK_FEED + CLK_BUFG_REBUF/CLK_HROW_TOP_R"); //"CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED/CLK_HROW_TOP_R";
72  setFabricChar('p', 30, "CLK_FEED + CLK_BUFG_REBUF/CLK_HROW_BOT_R"); //"CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED/CLK_HROW_BOT_R";
73  setFabricChar('q', 36, "GTP_CHANNEL_0_MID_LEFT"); //"NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_0_MID_LEFT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_1_MID_LEFT + NULL + NULL + NULL + NULL + NULL + GTP_COMMON_MID_LEFT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_2_MID_LEFT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_3_MID_LEFT + NULL + NULL + NULL + NULL + NULL/NULL";
74  setFabricChar('r', 36, "GTP_CHANNEL_0_MID_RIGHT"); //"NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_0_MID_RIGHT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_1_MID_RIGHT + NULL + NULL + NULL + NULL + NULL + GTP_COMMON_MID_RIGHT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_2_MID_RIGHT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTP_CHANNEL_3_MID_RIGHT + NULL + NULL + NULL + NULL + NULL/NULL";
75  setFabricChar('t', 36, "PSS0"); //"PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PSS0 + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PSS1 + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL/NULL";
76  setFabricChar('u', 36, "PSS2"); //"PSS2 + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PSS3 + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PSS4 + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL + PCIE_NULL/NULL";
77  setFabricChar('v', 36, "CFG_SECURITY_BOT_PELE1"); //"CFG_SECURITY_BOT_PELE1 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_SECURITY_MID_PELE1 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_SECURITY_TOP_PELE1 + NULL + NULL + NULL + NULL + MONITOR_BOT_PELE1 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_MID_PELE1 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_TOP_PELE1 + NULL + NULL + NULL + NULL/HCLK_FEEDTHRU_1_PELE";
78  setFabricChar('w', 32, "GTX_CHANNEL_0"); //"NULL + NULL + NULL + NULL + NULL + GTX_CHANNEL_0 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTX_CHANNEL_1 + NULL + NULL + NULL + NULL + NULL + GTX_COMMON + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTX_CHANNEL_2 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTX_CHANNEL_3 + NULL + NULL + NULL + NULL + NULL/NULL";
79  setFabricChar('x', 42, "RIOB18_SING"); //"RIOB18_SING + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18 + NULL + RIOB18_SING/HCLK_IOB";
80  setFabricChar('y', 42, "LIOB18_SING"); //"LIOB18_SING + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18 + NULL + LIOB18_SING/HCLK_IOB";
81  setFabricChar('z', 36, "CFG_CENTER_MID_SLAVE"); //"NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_CENTER_BOT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_CENTER_MID_SLAVE + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CFG_CENTER_TOP_SLAVE + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL/NULL";
82  setFabricChar('J', 30, "CLK_BALI_REBUF + CLK_FEED"); //"CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_BALI_REBUF + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED/CLK_HROW_BOT_R";
83  setFabricChar('K', 36, "INT_FEEDTHRU_1 + MONITOR_BOT_SLAVE"); //"INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + INT_FEEDTHRU_1 + MONITOR_BOT_SLAVE + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_MID + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + MONITOR_TOP + NULL + NULL + NULL + NULL/HCLK_FEEDTHRU_1";
84  setFabricChar('_', 32, "GTH_CHANNEL_0"); //"NULL + NULL + NULL + NULL + NULL + GTH_CHANNEL_0 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTH_CHANNEL_1 + NULL + NULL + NULL + NULL + NULL + GTH_COMMON + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTH_CHANNEL_2 + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + GTH_CHANNEL_3 + NULL + NULL + NULL + NULL + NULL/NULL";
85  setFabricChar('e', 30, "CLK_FEED + CLK_BALI_REBUF"); //"CLK_BUFG_TOP_R + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_BALI_REBUF + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED/CLK_HROW_TOP_R";
86  setFabricChar('s', 30, "CLK_FEED + CLK_BALI_REBUF_GTZ_TOP"); //"CLK_BUFG_TOP_R + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_BALI_REBUF_GTZ_TOP + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED/CLK_HROW_TOP_R";
87  setFabricChar('#', 30, "CLK_FEED + CLK_BALI_REBUF_GTZ_BOT"); //"CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_BALI_REBUF_GTZ_BOT + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + NULL + NULL + NULL + NULL + NULL + NULL + NULL + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_BUFG_REBUF + NULL + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED + CLK_FEED/CLK_HROW_BOT_R";
88 
89  //Also in the fabric exist frames that are mapped in bitstreams, but do not physically exist on the device. We encode these as follows:
90 
91  setFabricChar('0', 36, "EMPTY36", true);
92  setFabricChar('1', 28, "EMPTY28", true);
93  setFabricChar('2', 42, "EMPTY42", true);
94  setFabricChar('3', 30, "EMPTY30", true);
95  setFabricChar('4', 28, "EMPTYBRAM28", true);
96 }
#define XS7_EXTRA_FRAMES_PER_ROW
Definition: XS7_Fabric.h:46
void initFabric()
Definition: XS7_Fabric.cpp:22
void setFabricChar(char character, int frameNumber, std::string tileName, bool isUnused=false)