Features
[Constraint] setSite() command : compliance with LUT DFF and CY / Constraint can be set at any moment before Placing 1/5 (included)
[Constraint] constrainPath: DSP, RF, RAM and CY recognized. Distinction between Hard constrainPath (only instances in path are constrained) and Soft constrainpath (registers connected to all instances in path are constrained too).
[Primitive] NX_GCK: ‘MUX’ mode with input generated into the fabric
[Constraint] NxRegExp: Check Appendix “NxRegExp”
User Constrained Path Detection (small example here)
[Reporting] https://project.nanoxplore.local/issues/1742
[Logging] Options table for bitstreaming in logs
[Reporting] Added GCK to reportInstances table
[Constraint]: addBlackbox (IP): Preplacing IP and implement the routed project in the top project. All TILE and CGB instances are supported.
[Logging] Termination values: https://project.nanoxplore.local/issues/2103
Bug fix
[Netlist] NX_IOB: generics set by addpad are now passed through the macro cell
Appendix
NxRegExp
Impacted methods:
The following methods allow regular expressions / wildcard formats in order to match with multiple instances:
· addDSPLocation
· addModule
· addRAMLocation
· constrainPath
· getInstances
· getModels
· getRegisters
· setSite
· …
Maintainability:
It is no longer necessary to escape (with the ‘\’ character) special characters for these methods.
Affected special characters are:
· ‘[‘
· ‘]’
· ‘(‘
· ‘)’
· ‘|’
For instance, the constraint:
addModule('timing_pipe\(X2A98C8C6\)', 'GEN_HIER0.GEN_COL\[0\].COL_PIPE', 'GEN_HIER0_COL-%')
can be replaced by:
addModule('timing_pipe(X2A98C8C6)', 'GEN_HIER0.GEN_COL[0].COL_PIPE', 'GEN_HIER0_COL-%')
However, the old format is still compliant and still operates.
User use:
In a usual way, a copy/paste of a path from a log file works for the constraint.
In addition, it is comfortable to use ‘*’ and ‘+’ characters to match several paths.
‘*’ matches with any character: can be very useful to match with all paths beginning with a specified path.
‘+’ matches with any character but ‘|’: can be very useful to match with all paths beginning with a specified path without matching with lower hierarchy levels.
Hereafter an example with existing paths and constraints:
Existing Path \ Path in constraint | start_path|mycell_* | start_path|mycell_+ |
start_path|mycell_12 | Match | Match |
start_path|mycell_12|some_sub_cell | Match | No match |
Note:
If the user needs to use regular expressions ignoring auto-escaping of special characters, it is possible to set the constraint under quotes as follow:
addMappingDirective("getModels('add_[1-2][0-9]u_.*')", …)