Features
Preplace IP : new feature that allows to call an IP already preplaced, then place it in another project. All TILE and CGB instances are supported. An example is available in the Nxmap User Manual.
Constraint
[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).
[Constraint] reportRegisters: report the list of all registers at any step of progress
[Constraint] NxRegExp: Check Appendix “NxRegExp”
Primitive
[Primitive] NX_GCK: ‘MUX’ mode with input generated into the fabric
[Primitive] NX_RAM: Support of Multi-Register Memory Read Port (case when no pipe at the output)
Logging
[Logging] Options table for bitstreaming in logs
[Logging] Added GCK to reportInstances table
Tool
[Tool] DSP_U : Inferred large multiplications allowed
[Tool] addVlogDefine command: command to override ‘Define’ in verilog file
Bug fix
Constraint
[Constraint] IO: Wrong IO name mustn’t reserve a pad
Logging
[Logging] Termination: TerminationReference only allowed for pads with termination
[Logging] Multiple Emitter: Name of the signal concerned by error is reported to user
[Logging] Termination: No termination for 3.3V for MEDIUM + LARGE / User IO name is reported in case of wrong termination value
Netlist
[Netlist] NX_IOB: generics set by addPad are now passed through the macro cell
[Netlist] NX_PLL_U: ‘use_cal’ set as integer instead of std_logic
Known issues
Changed behavior in Regioning due to new algorithms. It might have an impact on performance.
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 |
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_.*')", …)