-
Notifications
You must be signed in to change notification settings - Fork 415
XDC placement constraints support for interchange #2021
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
kboronski-ant
wants to merge
38
commits into
verilog-to-routing:master
Choose a base branch
from
antmicro:kbor/xdc-interchange-upstream
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
XDC placement constraints support for interchange #2021
kboronski-ant
wants to merge
38
commits into
verilog-to-routing:master
from
antmicro:kbor/xdc-interchange-upstream
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Maciej Dudek <[email protected]>
Signed-off-by: Maciej Dudek <[email protected]>
Signed-off-by: Maciej Dudek <[email protected]>
Code refactor Signed-off-by: Maciej Dudek <[email protected]>
Small improvements to RR graph generation Signed-off-by: Maciej Dudek <[email protected]>
Signed-off-by: Maciej Dudek <[email protected]>
…on step Combine node forest to single tree Signed-off-by: Maciej Dudek <[email protected]>
Update to new mainline Signed-off-by: Maciej Dudek <[email protected]>
Signed-off-by: Maciej Dudek <[email protected]>
…208f3 54f6208f3 Merge pull request SymbiFlow#69 from antmicro/mdudel/fix_annotations d8a0567a5 Fix annotations in DeviceResources git-subtree-dir: libs/EXTERNAL/libinterchange git-subtree-split: 54f6208f32e20b746863da6ea54e3051fc9a830e
Signed-off-by: Maciej Dudek <[email protected]>
Signed-off-by: Maciej Dudek <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Maciej Dudek <[email protected]>
Also fixes RR Graph generation with alternative site types Signed-off-by: Maciej Dudek <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
…ations and bind them to selected ports Signed-off-by: Krzysztof Boronski <[email protected]>
…from XDC command implementation Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
…perty: handle lists of ports. Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Signed-off-by: Krzysztof Boronski <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
build
Build system
external_libs
infra
Project Infrastructure
lang-make
CMake/Make code
lang-shell
Shell scripts (bash etc.)
libarchfpga
Library for handling FPGA Architecture descriptions
libvtrutil
scripts
Utility & Infrastructure scripts
VPR
VPR FPGA Placement & Routing Tool
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
DEPENDS ON #1999 (I will rebase this branch to exclude commits from #1999 once it gets merged).
Parse XDC placement constraints using TCL interpreter.
libtclcpp
- C++ wrapper liblrary for TCL C API.xdc_constraints.h/cpp
- createVprConstraints
and modify netlist from a TCL script using XDC commands.Supported commands:
get_ports
set_property
PACKAGE_PIN
(for single port)IOSTANDARD
(for any number of ports)To read XDC files:
See antmicro#15 for another discussion about those changes.
About libtclcpp:
This is mostly header-based library for exposing C++ interfaces in TCL.
Currently it allows "exporting methods from
TclClient
-derived classes as callable Tcl commands. A class needs to be added to an activeTclContext
(which represents the currently active interpreter) throughTclCtx::add_client
to register its methods. It also introduces a mechanism for wrapping C++ types in a generic way and imposing some compile-time type-safety when managing objects those types. Additionally it offers a C++ wrapper for typed and untyped Tcl lists (of course Tcl is a dynamically typed language, so typing restrictions apply only in C++ and are enforced through language constructs and extra runtime checks).Caveats
Severe incompatibility with
libsdcparse
.Using timing constraints commands would require porting the interface for SDC commands from
libsdcparse
tolibtclcpp
. To handle more complex commands with optional arguments a Tcl argument parser would be useful. That's why at this moment only placement constraints are handled in this PR and SDC commands are not supported.Another thing is that it works only for the interchange format at the moment.
phys_grid_mapping
field that was added tot_arch
needs to be populated when loading an architecture definition and so far I've implemented it only for interchange. This field contains mappings from physical pins to grid locations so it shouldn't be hard to get that information when loading a VPR (XML) architecture definition.Related Issue
#932
Motivation and Context
The current constrain system doesn't allow constraining IOs without knowing exactly what blocks are the going to be. It is also specific to VPR, while XDC seems to be a much more universal format.
How Has This Been Tested?
Manually constraining testarch IOs for LUT design from fpga-interchange-tests and checking results in GUI.
Types of changes
Checklist: