byteman  1.3 (Build #225)
Bitstream relocation and manipulation tool
XUS_Fabric.h
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 "../XilinxConfigurationAccessPort.h"
18 
19 #ifndef XUS_FABRIC_H
20  #define XUS_FABRIC_H
21 
22  #define XUS_MAX_SLRS 3
23 
24  #define XUS_MAX_ROWS 15
25 
26  //max 581 cols in UltraScale
27  #define XUS_MAX_COLS 1024
28 
29  //max 21 bram cols in UltraScale
30  #define XUS_MAX_BRAM_COLS 32
31 
32 
33  #define XUS_BLOCKTYPE_MAX 2
34  #define XUS_BLOCKTYPE_LOGIC 0
35  #define XUS_BLOCKTYPE_BLOCKRAM 1
36 
37  #define XUS_WORDS_BEFORE_CLK 60
38  #define XUS_WORDS_AT_CLK 3
39  #define XUS_WORDS_AFTER_CLK 60
40  #define XUS_WORDS_PER_FRAME (XUS_WORDS_BEFORE_CLK + XUS_WORDS_AT_CLK + XUS_WORDS_AFTER_CLK)
41  #define XUS_FRAMES_PER_BRAM_CONTENT_COLUMN 128
42  #define XUS_CLB_PER_CLOCK_REGION 60
43  #define XUS_BRAM_PER_CLOCK_REGION 12
44 
45  #define XUS_EXTRA_FRAMES_PER_ROW 2
46 
47  #define XUS_USESTOPBOTTOM 0
48  #define XUS_TOPBOTTOM_SHIFT 0
49 
50  #define XUS_BLOCKTYPE_SHIFT 23
51  #define XUS_BLOCKTYPE_MASK 0x7
52  #define XUS_ROWADDRESS_SHIFT 17
53  #define XUS_ROWADDRESS_MASK 0x3F
54  #define XUS_COLUMNADDRESS_SHIFT 7
55  #define XUS_COLUMNADDRESS_MASK 0x3FF
56  #define XUS_MINORADDRESS_SHIFT 0
57  #define XUS_MINORADDRESS_MASK 0x7F
58 
59  #define archXUStemplate FABRIC_TEMPLATE(XUS_MAX_SLRS, XUS_MAX_ROWS, XUS_MAX_COLS, XUS_MAX_BRAM_COLS, XUS_BLOCKTYPE_MAX, XUS_BLOCKTYPE_LOGIC, XUS_BLOCKTYPE_BLOCKRAM, XUS_WORDS_BEFORE_CLK, XUS_WORDS_AT_CLK, XUS_WORDS_AFTER_CLK, XUS_WORDS_PER_FRAME, XUS_FRAMES_PER_BRAM_CONTENT_COLUMN, XUS_CLB_PER_CLOCK_REGION, XUS_BRAM_PER_CLOCK_REGION, XUS_EXTRA_FRAMES_PER_ROW, XUS_USESTOPBOTTOM, XUS_TOPBOTTOM_SHIFT, XUS_BLOCKTYPE_SHIFT, XUS_BLOCKTYPE_MASK, XUS_ROWADDRESS_SHIFT, XUS_ROWADDRESS_MASK, XUS_COLUMNADDRESS_SHIFT, XUS_COLUMNADDRESS_MASK, XUS_MINORADDRESS_SHIFT, XUS_MINORADDRESS_MASK)
60 
61 #endif//XUS_FABRIC_H