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

Choice of bel pins for a cell pin #55

Open
gatecat opened this issue May 18, 2021 · 1 comment
Open

Choice of bel pins for a cell pin #55

gatecat opened this issue May 18, 2021 · 1 comment

Comments

@gatecat
Copy link
Collaborator

gatecat commented May 18, 2021

Consider a Xilinx CARRY8. The DI[i] cell pins (i≠4) can map either to an 'aX' bel pin or a DIi bel pin:

Screenshot from 2021-05-18 11-43-59
(set_property LOCK_PINS {DI[1]:DI1} [get_cells carry_i])

Screenshot from 2021-05-18 11-44-32

(set_property LOCK_PINS {DI[1]:BX} [get_cells carry_i])

Currently, although multiple bel pins can map to a single cell pin, there is no way to specify that the site router is free to choose any of them (except for LUTs which are implicitly assumed to be permutable based on the LUT bel info). If one cell pin maps to multiple bel pins at the moment, all of them will be routed (as is needed for BRAM, for example).

I see three ways of solving this:

  • not supporting it, and adding virtual site pips to implement the choice of routing, with conversion necessary when generating a DCP or otherwise interfacing with the Xilinx ecosystem
  • adding it as an explicit special case in its own right
  • treating it as a special case of the parameter bel pin mapping rules (basically saying that the site router is free to change this parameter and hence the mapping as it likes).
@gatecat
Copy link
Collaborator Author

gatecat commented May 18, 2021

A similar situation exists with the CASC bel pin of Versal LUTs that can be used as a LUT input in some cases, which might create some interesting interactions with the current implicitly permutable LUTs...

Screenshot from 2021-05-18 12-23-23

set_property LOCK_PINS {I0:CASC} [get_cells lut_i]

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