Skip to content
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

repacker seems underconstrained and fully constrained would be simpler and easier to work with #1673

Open
rs-dhow opened this issue May 16, 2024 · 0 comments

Comments

@rs-dhow
Copy link

rs-dhow commented May 16, 2024

In the pb_type_annotations section of openfpga.xml, there is a property physical_pb_type_index_offset which can be used as follows.

An FLE may have a 2xLUT5 mode with 2 physical FFs. When it is in 1xLUT6 mode, only one FF may be available. This property indicates which FF is to be used.

This pins down the repacker and forces it to use a particular FF. This means it has no choice which hardware subblocks to use during repacking.

Why is a similar idea not used with the muxes? Muxes in the physical mode can have the following relationships to a logical mode mux visible to VPR's packer in the selected mode:

  1. The physical mux is not on any path used in the logical mode. Its setting is don't-care.
  2. The physical mux must be configured to a particular fixed setting in the logical mode. Its setting matters, but it's not alterable in this mode.
  3. The physical mux's setting must follow the setting of a mux in the logical mode. The logical mux may have settings 0 and 1, selecting two different signals, and the physical mux may have settings 0, 1, 2, and 3, selecting four different signals. Say, when the logical is 0, the physical must be 2, and when the logical is 1, the physical must be 3. This mapping of mux selects is 0-->2, 1-->3, logical-->physical, in this particular logical mode.

Every logical mode would directly force some muxes via (2) (like logical modes can now force mode bits). The combination of a logical mode and that logical mode's mux selects would then force other muxes via (3).

This seems to entirely avoid any surprises from the repacker, like those reported in #1670, #1671, and #1672.

Thanks.

To Reproduce
Steps to reproduce the behavior:

  1. Clone OpenFPGA repository and checkout commit id:
  2. Execute OpenFPGA task or your own example:
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Enviornment (please complete the following information):

  • OS:
  • Compiler:
  • Version:

Additional context
Add any other context about the problem here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant