Skip to content

[pull] master from verilog-to-routing:master #565

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9,954 commits into
base: master
Choose a base branch
from

Conversation

pull[bot]
Copy link

@pull pull bot commented Dec 2, 2020

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

vaughnbetz and others added 30 commits June 4, 2025 10:47
…-task

[CI] Added Quick Titanium S10 Tests
The primitive vector class was assumed to be quite sparse, and as such
used an unordered map as its internal data structure.

Found through experimentation that most of the time in the partial
legalizer was being spent in the operations of the primitive vector
class. Also, while improving the mass abstraction, I found a need to
separate logical models from the dimensions of the primitive vector to
allow multiple models to point to the same dimension in the primitive
vector.

This PR kills two birds with one stone by turning the unordered map into
a VTR vector map and creating a new PrimitiveVectorDim which can allow
the models to be separate from the dimensions.

Future PRs will make use of this feature to improve the mass
abstraction.
…ctor

[AP] Optimized Primitive Vector Class
[VPR][Utils] Add helper function to get RRNodeId from AtomPinId
vpr command line doc: add --read_initial_place_file and clarify file formats for place options
Found that we were regressing on many features in VTR due to tasks being
added to the appropriate test suite directory, but not being included in
the necessary task list. As such, it appeared as though the tests were
being run, but in reality they were not.

Added a script which will be run by the CI which will verify that all of
the test suites that we care about have all their tasks in the
appropriate task list.

From this tool, found many tasks which were not in the task lists.
Marked these tasks as "ignored" for now. These should be handled in a
separate PR.
…ecker

[CI] Added Test Suite Verification to CI
The new test suite verifying tool showed that a few tasks from the
strong tests were not actually being tests. Some of these tests worked
without issue.

Revived the tests which worked without issue.
Within the partial legalizer of the AP flow, a mass abstraction was used
to abstract the complex logical block constraints of the device.
Originally, this abstraction created a primitive vector which kept a
count of each model used by the atom and the capacity of each model in a
given tile. This worked well, but it was very innacurate due to not
capturing differences between models with different numbers of
inputs/outputs.

Updated the mass abstraction in three ways:

1) Used the number of bits stored in a memory as the mass for memory
   primitives.

2) Used the number of pins used for all other types of primitives
   (clamped by the capacity of pins for the given logical block).

3) Created the concept of "one-hot" primitives to assign multiple models
   to the same dim if they are part of a primitive which can only every
   implement one of them.

These changes improved the ability of the partial legalizer to
understand the details of the complex blocks in the architecture such
that it can better legalize during analytical placement.

From experimentation, found that this greatly improved the post-FL
quality of the placement with practically no cost in run time (since
this does not change the complexity of the legalizer, just spends
slightly more time deciding the mass of the atoms / tiles).
…ecker

[CI] Revived Simple Missing Strong Tests
…tion

[AP][Legalization] Updated the Mass Abstraction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.