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

Place constraints script ignores ROI #1517

Closed
rw1nkler opened this issue Jun 2, 2020 · 1 comment · Fixed by #1523
Closed

Place constraints script ignores ROI #1517

rw1nkler opened this issue Jun 2, 2020 · 1 comment · Fixed by #1523

Comments

@rw1nkler
Copy link
Contributor

rw1nkler commented Jun 2, 2020

The prjxray_create_place_constraints.py script does not use the ROI parameters. It tries to place the PLL instances from the BUFGMUX test, outside the region of interest:

  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 685, in <module>
    main()
  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 673, in main
    vpr_grid, loc_in_use, block_locs, blocks, grid_capacities):
  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 508, in place_clocks
    vpr_loc = vpr_locs[potential_loc]
KeyError: 'PLLE2_ADV_X1Y0'

The mentioned PLL is outside the region of interest. The solution is to restrict the script to not use tiles outside the ROI.

@rw1nkler
Copy link
Contributor Author

rw1nkler commented Jun 2, 2020

I was trying to lock all BUFG and PLL for this example, however, the script fails on this attempt:

Traceback (most recent call last):
  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 687, in <module>
    main()
  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 675, in main
    vpr_grid, loc_in_use, block_locs, blocks, grid_capacities):
  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 445, in place_clocks
    self.assign_cmts(vpr_grid, block_locs)
  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 437, in assign_cmts
    solutions = problem.getSolutions()
  File "/home/build/rwinkler/symbiflow-arch-defs/build/env/conda/lib/python3.7/site-packages/constraint/__init__.py", line 271, in getSolutions
    return self._solver.getSolutions(domains, constraints, vconstraints)
  File "/home/build/rwinkler/symbiflow-arch-defs/build/env/conda/lib/python3.7/site-packages/constraint/__init__.py", line 567, in getSolutions
    return list(self.getSolutionIter(domains, constraints, vconstraints))
  File "/home/build/rwinkler/symbiflow-arch-defs/build/env/conda/lib/python3.7/site-packages/constraint/__init__.py", line 544, in getSolutionIter
    if not constraint(variables, domains, assignments, pushdomains):
  File "/home/build/rwinkler/symbiflow-arch-defs/build/env/conda/lib/python3.7/site-packages/constraint/__init__.py", line 991, in __call__
    self.forwardCheck(variables, domains, assignments)
  File "/home/build/rwinkler/symbiflow-arch-defs/build/env/conda/lib/python3.7/site-packages/constraint/__init__.py", line 935, in forwardCheck
    if not self(variables, domains, assignments):
  File "/home/build/rwinkler/symbiflow-arch-defs/build/env/conda/lib/python3.7/site-packages/constraint/__init__.py", line 993, in __call__
    return self._func(*parms)
  File "/home/build/rwinkler/symbiflow-arch-defs/xc/common/utils/prjxray_create_place_constraints.py", line 427, in <lambda>
    source] == sink_bufg,
TypeError: unhashable type: 'dict'

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

Successfully merging a pull request may close this issue.

1 participant