|
237 | 237 | <col type="memory" startx="2" starty="1" repeatx="8" priority="20"/> |
238 | 238 | <col type="EMPTY" startx="2" repeatx="8" starty="1" priority="19"/> |
239 | 239 | </auto_layout> |
| 240 | + <!-- |
| 241 | + This architecture is commonly used for the VTR Benchmark Suite. Below |
| 242 | + are a set of fixed layouts which were found to work well for these |
| 243 | + benchmarks. They were found by finding the minimum device size for each |
| 244 | + benchmark and categorizing the benchmarks into the different fixed |
| 245 | + layouts. Each fixed layout was chosen to be around 1.5x larger than the |
| 246 | + previous. |
| 247 | + --> |
| 248 | + <fixed_layout name="vtr_extra_small" width="20" height="20"> |
| 249 | + <!--Perimeter of 'io' blocks with 'EMPTY' blocks at corners--> |
| 250 | + <perimeter type="io" priority="100"/> |
| 251 | + <corners type="EMPTY" priority="101"/> |
| 252 | + <!--Fill with 'clb'--> |
| 253 | + <fill type="clb" priority="10"/> |
| 254 | + <!--Column of 'mult_36' with 'EMPTY' blocks wherever a 'mult_36' does not fit. Vertical offset by 1 for perimeter.--> |
| 255 | + <col type="mult_36" startx="6" starty="1" repeatx="8" priority="20"/> |
| 256 | + <col type="EMPTY" startx="6" repeatx="8" starty="1" priority="19"/> |
| 257 | + <!--Column of 'memory' with 'EMPTY' blocks wherever a 'memory' does not fit. Vertical offset by 1 for perimeter.--> |
| 258 | + <col type="memory" startx="2" starty="1" repeatx="8" priority="20"/> |
| 259 | + <col type="EMPTY" startx="2" repeatx="8" starty="1" priority="19"/> |
| 260 | + </fixed_layout> |
| 261 | + <fixed_layout name="vtr_small" width="30" height="30"> |
| 262 | + <!--Perimeter of 'io' blocks with 'EMPTY' blocks at corners--> |
| 263 | + <perimeter type="io" priority="100"/> |
| 264 | + <corners type="EMPTY" priority="101"/> |
| 265 | + <!--Fill with 'clb'--> |
| 266 | + <fill type="clb" priority="10"/> |
| 267 | + <!--Column of 'mult_36' with 'EMPTY' blocks wherever a 'mult_36' does not fit. Vertical offset by 1 for perimeter.--> |
| 268 | + <col type="mult_36" startx="6" starty="1" repeatx="8" priority="20"/> |
| 269 | + <col type="EMPTY" startx="6" repeatx="8" starty="1" priority="19"/> |
| 270 | + <!--Column of 'memory' with 'EMPTY' blocks wherever a 'memory' does not fit. Vertical offset by 1 for perimeter.--> |
| 271 | + <col type="memory" startx="2" starty="1" repeatx="8" priority="20"/> |
| 272 | + <col type="EMPTY" startx="2" repeatx="8" starty="1" priority="19"/> |
| 273 | + </fixed_layout> |
| 274 | + <fixed_layout name="vtr_medium" width="42" height="42"> |
| 275 | + <!--Perimeter of 'io' blocks with 'EMPTY' blocks at corners--> |
| 276 | + <perimeter type="io" priority="100"/> |
| 277 | + <corners type="EMPTY" priority="101"/> |
| 278 | + <!--Fill with 'clb'--> |
| 279 | + <fill type="clb" priority="10"/> |
| 280 | + <!--Column of 'mult_36' with 'EMPTY' blocks wherever a 'mult_36' does not fit. Vertical offset by 1 for perimeter.--> |
| 281 | + <col type="mult_36" startx="6" starty="1" repeatx="8" priority="20"/> |
| 282 | + <col type="EMPTY" startx="6" repeatx="8" starty="1" priority="19"/> |
| 283 | + <!--Column of 'memory' with 'EMPTY' blocks wherever a 'memory' does not fit. Vertical offset by 1 for perimeter.--> |
| 284 | + <col type="memory" startx="2" starty="1" repeatx="8" priority="20"/> |
| 285 | + <col type="EMPTY" startx="2" repeatx="8" starty="1" priority="19"/> |
| 286 | + </fixed_layout> |
| 287 | + <fixed_layout name="vtr_large" width="65" height="65"> |
| 288 | + <!--Perimeter of 'io' blocks with 'EMPTY' blocks at corners--> |
| 289 | + <perimeter type="io" priority="100"/> |
| 290 | + <corners type="EMPTY" priority="101"/> |
| 291 | + <!--Fill with 'clb'--> |
| 292 | + <fill type="clb" priority="10"/> |
| 293 | + <!--Column of 'mult_36' with 'EMPTY' blocks wherever a 'mult_36' does not fit. Vertical offset by 1 for perimeter.--> |
| 294 | + <col type="mult_36" startx="6" starty="1" repeatx="8" priority="20"/> |
| 295 | + <col type="EMPTY" startx="6" repeatx="8" starty="1" priority="19"/> |
| 296 | + <!--Column of 'memory' with 'EMPTY' blocks wherever a 'memory' does not fit. Vertical offset by 1 for perimeter.--> |
| 297 | + <col type="memory" startx="2" starty="1" repeatx="8" priority="20"/> |
| 298 | + <col type="EMPTY" startx="2" repeatx="8" starty="1" priority="19"/> |
| 299 | + </fixed_layout> |
| 300 | + <fixed_layout name="vtr_extra_large" width="105" height="105"> |
| 301 | + <!--Perimeter of 'io' blocks with 'EMPTY' blocks at corners--> |
| 302 | + <perimeter type="io" priority="100"/> |
| 303 | + <corners type="EMPTY" priority="101"/> |
| 304 | + <!--Fill with 'clb'--> |
| 305 | + <fill type="clb" priority="10"/> |
| 306 | + <!--Column of 'mult_36' with 'EMPTY' blocks wherever a 'mult_36' does not fit. Vertical offset by 1 for perimeter.--> |
| 307 | + <col type="mult_36" startx="6" starty="1" repeatx="8" priority="20"/> |
| 308 | + <col type="EMPTY" startx="6" repeatx="8" starty="1" priority="19"/> |
| 309 | + <!--Column of 'memory' with 'EMPTY' blocks wherever a 'memory' does not fit. Vertical offset by 1 for perimeter.--> |
| 310 | + <col type="memory" startx="2" starty="1" repeatx="8" priority="20"/> |
| 311 | + <col type="EMPTY" startx="2" repeatx="8" starty="1" priority="19"/> |
| 312 | + </fixed_layout> |
240 | 313 | </layout> |
241 | 314 | <device> |
242 | 315 | <!-- VB & JL: Using Ian Kuon's transistor sizing and drive strength data for routing, at 40 nm. Ian used BPTM |
|
0 commit comments