vtr-verilog-to-routing
vtr-verilog-to-routing copied to clipboard
WIP: Stratix 10 architecture description
Description
In this PR, an architecture description of Stratix 10 will be created and integrated into the Titan flow. The architecture capture of Stratix 10 consists of the following steps:
- Capture of FPGA blocks and primitives including logic blocks, DPSs, RAMs, IO blocks, PLLs, etc.
- Capture of the grid structure
- Capture of the routing architecture
- Providing timing estimates for primitives, routing network, and connections within the block
- Comprehensive testing in order to make sure all the benchmark designs can successfully go through the Titan flow and be mapped by VPR.
Motivation and Context
The current version of the Titan flow comes with an architecture description of Stratix IV, a device family released over a decode ago, in order to facilitate performance comparison between VTR and Quartus. The newer FPGA families, such as Stratix 10 and Aglilex are built in more advanced process technology and include new features in order to fit in with modern FPGA application designs. This PR is created to add support for Stratix 10 as one of the modern family of FPGAs.
How Has This Been Tested?
Along with the capture of Stratix 10 architecture, small unit tests consisting of a few primitives will be developed to ensure the validity of the gradual changes. The architecture file in this PR is being built from the scratch and it won’t be functional until a good amount of details have been added. To maintain the ability to test, the changes committed to this pull request will also be locally applied on top of the fully developed Stratix IV architecture file. This modified architecture capture will be used along with the unit tests. Each unit test will mainly target a small part of the architecture file that has been modified the most recently. For now these tests will be running on a local machine but once the architecture file has been completed, they will be committed to this PR and finally integrated with the VTR repository.
Types of changes
- [ ] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
- [ ] My change requires a change to the documentation
- [ ] I have updated the documentation accordingly
- [ ] I have added tests to cover my changes
- [ ] All new and existing tests passed