...
The provided nXmap archive contains the following directories:
bin folder contains binary files for each supported Linux distribution
doc folder contains documentation files in pdf format
example folder contains several examples of different projects with design sources in VHDL
lib64 folder contains dynamic libraries and Python modules for each supported Linux distribution and associated Python version
share folder contains additional files (vhdl libraries, simulation libraries, etc...)
...
Méthod | Project | Synthesize | Place & Route | Bitstream | STA | Simulation |
addBank |
|
|
| X |
|
|
addBanks |
|
|
| X |
|
|
addBlackBox |
| X |
|
|
|
|
addDSPLocation |
|
| X |
|
|
|
addFalsePath |
|
|
|
| X | X |
addFile | X |
|
|
|
|
|
addFiles | X |
|
|
|
|
|
addHSSLLocation | ||||||
addIP | X |
|
|
|
|
|
addMappingDirective |
| X |
|
|
|
|
addMaxDelayPath |
|
|
|
| X | X |
addMemoryInitialization |
|
|
| X |
|
|
addMinDelayPath |
|
|
|
| X | X |
addModule |
| X |
|
|
|
|
addMulticyclePath |
|
|
|
| X | X |
addPLLLocation |
|
| X |
|
|
|
addPad |
| X | X |
|
|
|
addPads |
| X | X |
|
|
|
addParameter | X |
|
|
|
|
|
addParameters | X |
|
|
|
|
|
addPin |
| X | X |
|
|
|
addPins |
| X | X |
|
|
|
addRAMLocation |
|
| X |
|
|
|
addRingLocation |
|
| X |
|
|
|
addRingLocations |
|
| X |
|
|
|
addVerilogIncludeDirectories | X |
|
|
|
|
|
addVerilogIncludeDirectory | X |
|
|
|
|
|
addVlogDefine | X |
|
|
|
|
|
addVlogDefines | X |
|
|
|
|
|
addWFGLocation |
|
| X |
|
|
|
adjustAperture |
|
| X |
|
|
|
applySdcFile | X |
|
|
|
|
|
clearBanks | X |
|
|
|
|
|
clearPLLs | X |
|
|
|
|
|
clearPads | X |
|
|
|
|
|
clearPins | X |
|
|
|
|
|
clearWFGs | X |
|
|
|
|
|
confineModule |
|
| X |
|
|
|
constrainModule |
| X | X |
|
|
|
constrainPath |
| X | X |
|
|
|
createAnalyzer |
|
|
|
| X |
|
createClock |
|
|
|
| X |
|
createGeneratedClock |
|
|
|
| X |
|
createObstruction |
|
| X |
|
|
|
createRegion |
|
| X |
|
|
|
createSimulator |
|
|
|
|
| X |
destroy | X |
|
|
|
|
|
destroyObstruction | X |
|
|
|
|
|
destroyRegion | X |
|
|
|
|
|
developCKGs |
|
|
|
| X |
|
exportAsIPCore | X |
|
|
|
|
|
exportRegions | X |
|
|
|
|
|
exportSites | X |
|
|
|
|
|
generateBitstream |
|
|
| X |
|
|
generateSTANetlist | X |
|
|
|
|
|
getAnalyzer | X | |||||
getDirectory | X |
|
|
|
|
|
getErrorCount | X | |||||
getHierInfo | X | |||||
getLowskewSignals | X |
|
|
|
|
|
getProject | X | |||||
getRemarkCount | X | |||||
getTimingUnit | X |
|
|
|
|
|
getTopCellName | X |
|
|
|
|
|
getVariantName | X |
|
|
|
|
|
getWarningCount | X | |||||
initRegister |
|
|
| X |
|
|
limitLowskew |
|
| X |
|
|
|
listAvailableLocations | X |
|
|
|
|
|
load | X |
|
|
|
|
|
modifyRegion |
|
| X |
|
|
|
place | X |
|
|
|
|
|
progress | X |
|
|
|
|
|
printError | X | |||||
printHierInfo | X | |||||
printRemark | X | |||||
PrintText | X | |||||
PrintWarning | X | |||||
rejectLowskew | X |
| X |
|
|
|
removeFile | X |
|
|
|
|
|
removeFiles | X |
|
|
|
|
|
removeSoftModules | X | |||||
reportInstances | X |
|
|
|
|
|
reportLowskewSignals | X |
|
|
|
|
|
reportPorts | X |
|
|
|
|
|
reportRegions | X |
|
|
|
|
|
reportRegisters | X |
|
|
|
|
|
resetTimingConstraints | X |
|
|
|
|
|
route | X |
|
|
|
|
|
save | X |
|
|
|
|
|
setAnalysisConditions |
|
|
|
| X |
|
setAperture |
|
| X |
|
|
|
setCaseAnalysis |
|
|
|
| X |
|
setClockGroup |
|
|
|
| X |
|
setDescription | X |
|
|
|
|
|
setDeviceID |
|
|
| X |
|
|
setDirectory | X |
|
|
|
|
|
setFalsePath |
|
|
|
| X |
|
setFocus |
|
| X |
|
|
|
setGCKCount |
|
| X |
|
|
|
setInputDelay |
|
|
|
| X |
|
setMaxDelay |
|
|
|
| X |
|
setMinDelay |
|
|
|
| X |
|
setMulticyclePath |
|
|
|
| X |
|
setOption | X |
|
|
|
|
|
setOptions | X |
|
|
|
|
|
setOutputDelay |
|
|
|
| X |
|
setSite |
|
| X |
|
|
|
setTopCellName | X |
|
|
|
|
|
setVariantName | X |
|
|
|
|
|
synthesize | X |
|
|
|
|
|
translateAperture |
|
| X |
|
|
|
...
This function returns the number of errors issued during Synthesize, Place and Route flow steps.
This function takes no argument.
...
This function returns the number of remarks issued during Synthesize, Place and Route flow steps.
This function takes no argument.
...
This function returns the number of warnings issued during Synthesize, Place and Route flow steps.
This function takes no argument.
...
Note |
---|
Space character is not allowed in interface argument |
When setting ROM value for type argument, the nxpython interface is:
...
This functionality has some important limitations :
Variant
The variant on which the IP design is prepared must be strictly identical to the variant used for the design. For example, NG-MEDIUM in both cases.
Aperture
It is necessary that the IP design is placed/routed using minimal aperture.
addBlackBox
The method addBlackBox
should be called only once by an entity in the top design.
For instance, it is not allowed to use the following lines :
Code Block | ||
---|---|---|
| ||
project.addBlackBox('m4000', 'IP', 'm4000_preplaced1.nym', 'M1:1x2') project.addBlackBox('m4000', 'IP', 'm4000_preplaced2.nym', 'M2:6x2') |
Fabric instances
Among the instances of the ring, some are not supported yet :CDC
, CKS
, FIFO
, XFIFO
Ring instances
Among the instances of the ring, some are not supported yet :PLL
, WFG
, CR5
, SOC_IF
, HSSL
...
This method is used to select the spot in which a DSP should be placed before launching Place step execution.
Arguments:
...
This method is used to add a mapping directive for Synthesis flow step which overrides the default nxpython mapping behavior for a specific HDL module or instance.
...
Type | Format |
NX | NanoXplore Proprietary format |
The name parameter must match the following pattern: TOPCELLNAME_INSTANCENAME
...
Name | Type | Description |
name | string | the HDL input/output name. |
parameters | dictionary | the keys are the parameters names and the values are the parameters values. |
The parameters argument is a dictionary which can take the following keys:
...
Note |
---|
In case of parameters are set by NX_IOB or NX_IOB_I or NX_IOB_O and by the addPad method, addPad method get the priority except for ‘location’ and ‘termination’ if ‘locked’ is enabled in the IOB primitive. |
The standard key must respect the following values:
...
Note |
---|
Check chip datasheet to see differential feature availability on different IO banks. |
The drive key must respect the following values:
...
drive | LVCMOS | LVDS | SSTL 2.5V | SSTL 1.8V | HSTL |
2mA | Fmax = 50MHz | - | - | - | - |
4mA | Fmax = 100MHz | - | - | - | - |
8mA | Fmax = 200MHz | - | - | - | - |
16mA | Fmax = 300MHz | - | - | - | - |
I | - | - | 8mA, Fmax=300MHz | 8.6mA, Fmax=400MHz | 8mA, Fmax=400MHz |
II | - | - | 16mA, Fmax=300MHz | 13.4mA, Fmax=400MHz | 16mA, Fmax=400MHz |
undefined | - | 3.5mA, Fmax=400MHz | - | - | - |
The weakTermination key must respect the following values:
...
Note |
---|
Note that only ‘None’ and ‘PullUp’ values for weakTermination are allowed in NG-MEDIUM. |
The slewRate key must respect the following values:
Slow
Medium (Default)
Fast
The termination key specifies the output impedance of the pad in Ohms. In differential mode, the impedance is two times the value. It’s specified in Ohms, in the range 30 to 80 Ohms (Default is set to minimum value).
...
Note |
---|
Can only be set if terminationReference is set. |
The inputDelayLine and outputDelayLine keys should be between 0 (Default) and 63. This number correspond to a number of step. Values are applied only if inputDelayOn and outputDelayOn are set to True.
The terminationReference key is used only if termination is set (Default '-'). It must respect the following criteria to be set to ‘Floating’ value otherwise it should always be defined as ‘VT’.
...
Note |
---|
Check chip datasheet to see differential feature availability on different IO banks. |
Unit of inputSignalSlope key is V/ns in the range [0.5;20] (Default 0).
Unit of ouputCapacity key is pF in the range [0;40] (Default 0).
When set to ‘True”, the turbo key (Default False) specifies that the input buffer of the pad is in turbo mode. As an example for NG-Large variant, the following array gives a trade-off between the maximum frequency reachable and power consumption:
Standard | Turbo enabled (True) | Turbo disabled (False) |
LVCMOS 3.3V | Fmax = 200MHz | Fmax = 100MHz |
LVCMOS 2.5V | Fmax = 300MHz | Fmax = 200MHz |
LVCMOS 1.8V | Fmax = 300MHz | Fmax = 150MHz |
LVCMOS 1.5V | Fmax = 300MHz | Fmax = 150MHz |
LVDS | Fmax = 400MHz | Fmax = 100MHz |
SSTL 2.5V | Fmax = 300MHz | Fmax = 150MHz |
SSTL 1.8V | Fmax = 400MHz | Fmax = 150MHz |
The registered key (Default '') allows user to merge registers into Input/Output pads. This key can take the following values:
...
This method allow user to configure an input/output of the HDL module into specific pin of the embedded FPGA. This method is reserved to embedded variants of FPGA.
Arguments
Name | Type | Description |
name | string | the HDL input/output name. |
location | string | the location of the input/output. |
...
This method allow user to configure inputs/outputs of the HDL module into specific pins of the embedded FPGA. This method is reserved to embedded variants of FPGA.
Arguments:
Name | Type | Description |
pins | dictionary | the keys are the HDL input/output names and the values are the locations. |
...
This method is used to select the spot in which a RAM should be placed. This method must be used and declared before launching Place step execution.
Arguments:
...
This method constrains a HDL module into a specific region. The aim of constrainModule is to provide a unique and simple function to perform the whole region driven flow described in Creating and handling regions section.
Signatures:
constrainModule(hierarchy, moduleName, leftCol, topRow, width, height, regionName)
...
This constraint is used by timing driver algorithms and static timing analysis. This method takes no argument.
developCKGs() allows the user to create generated clocks for CKGs' output pins. For example, before activating a generated clock whose base clock is driven by a WFG, user needs to launch this method for generating the base clock.
Without this method, nxmap automatically derives a clock on each output of the CKGs after activating all the given timing constraints.
...
Name | Default | Description | ||||
'Autosave' | 'Yes' | Enable automatic protect save after each flow step. | ||||
'BypassingEffort' | 'Medium' | Specify the DFF load and reset spreading level into the low-skew network (can be 'Low', 'Medium' or 'High'): Low: all Load and Resetare sent in low skew Medium: NXmap choose an effective balance High: all Load and Reset are routed in common parts ( high routing constraint) | ||||
'CongestionEffort' | 'High' | Specify the routing resources limit per tile (can be 'Low', 'Medium' or 'High'):
| ||||
'Dynamic' | 'No' | Refresh view while algorithms are running. | ||||
'DefaultFSMEncoding' | 'OneHot' | Default encoding of finite state machine (can be 'OneHot', 'OneHotSafe', 'OneHotSafeExtra' or 'Binary'):
| ||||
'DefaultRAMMapping' | 'AUTO' | Default mapping of RAM (can be 'AUTO', 'RF', 'RAM' or 'RAM_ECC'). | ||||
'DefaultROMMapping' | 'AUTO' | Default mapping of ROM (can be 'AUTO', 'LUT', 'RF', 'RAM' or 'RAM_ECC'). | ||||
'DensityEffort' | 'Low' | Specify the instance resources allowed per tile (can be 'Low', 'Medium' or 'High'):
| ||||
'DisableAdderBasicMerge' | 'No' | Disable carry optimization around adders and subtractors. | ||||
'DisableAdderTreeOptimization' | 'No' | Disable adder mux reordering and adder tree balancing. | ||||
'DisableAdderTrivialRemoval' | 'No' | Disable simplification of adder that could fit in 1 or 2 LUTs. | ||||
'DisableAssertionChecking' | 'No' | Deactivate VHDL assertions. | ||||
'DisableDSPAluOperator' | 'No' | Disable merge of ALU within inferred DSP. | ||||
'DisableDSPFullRecognition' | 'No' | Disable inference of DSP. | ||||
'DisableDSPPreOperator' | 'No' | Disable merge of pre-operator within inferred DSP. | ||||
'DisableDSPRegisters' | 'No' | Disable merge of registers within inferred DSP. | ||||
'DisableRegisterMergeInDspForAdd' | ‘No’ | Disable merge of registers in DSP when used as adder | ||||
'DisableKeepPortOrdering' | 'No' | Disable keep port ordering used in source files when generating HDL netlists. | ||||
'DisableLoadAndResetBypass' | 'No' | Disable load and reset signal bypass on DFF. | ||||
'DisableRAMAlternateForm' | 'No' | Disable recognition of registered address read port. | ||||
'DisableROMFullLutRecognition' | 'No' | Disable merge of ROM recognized as LUT with logic. | ||||
'DisableRAMRegisters' | 'No' | Disable merge of registers within inferred RAM. | ||||
‘ExhaustiveBitstream’ | ‘No’ | Can be used to force generation of all configurations and contexts in bitstream (can be ‘No’, ‘Config’, ‘Context’ or ‘ConfigContext’). | ||||
'GenerateBitstreamCMIC' | 'No' | Generate bitstream with CMIC. | ||||
'IgnoreRAMFlashClear' | 'No' | Do not output error when recognizing a RAM with flash clear. | ||||
'ManageAsynchronousReadPort' | 'No' | If 'Yes', detect asynchronous read port in memories and repair it in synchronous read port. The read port receive the reversed write clock. It can slow down the design and sometimes may cause invalid behavior. | ||||
'ManageUnconnectedOutputs' | 'Error' | Undriven outputs of HDL modules are treated as 'Error', 'Ground' or 'Power'. | ||||
'ManageUnconnectedSignals' | 'Error' | Undriven internal signals of HDL modules are treated as 'Error', 'Ground' or 'Power'. | ||||
'ManageUninitializedLoops' | 'No' | Remove reset-less looped DFF causing extra-mapping and 'X' values in simulation (can be 'No', 'Power, ''Ground'). | ||||
'MappingEffort' | 'Low' | Effort for an optimized mapping (can be 'Low', 'Medium' or 'High'):
| ||||
'MaxRegisterCount' | '2500' | Maximum number of registers handled per HDL module (not the whole design) by the synthesizer. | ||||
‘OptimizedMux’ | ‘Yes’ | If set to 'Yes', nxmap will identify and convert every mux in the corresponding optimized 4-LUT structure. | ||||
'PartitioningEffort' | 'Medium' | Define the size of the netlist subset which will be further optimized for timing goals achievement (can be 'Low', 'Medium' or 'High') :
| ||||
'PolishingEffort' | 'Medium' | It allows to regenerate locally a signal in TILE which in normal way should be provide by an others TILE in order to reduce utilization of routing resources.
| ||||
'ReadyOffWithSoftReset' | ‘Yes’ | Only available for NG-ULTRA variant. It links the ready falling edge to soft reset enabling during the power off reset sequence. | ||||
‘ReplicationApproval’ | ‘Yes’ | Allow replication in a close TILE if not possible in the current TILE.
| ||||
'RoutingEffort' | 'Medium' | Routing Optimization level (can be 'Low', 'Medium' or 'High'):
| ||||
‘Seed’ | ‘1789’ | Seed for placing algorithm start. Depending on the seed, instances are created in a different order and placed so. Can be used in order to generate several Place & Route with the same synthesized project. | ||||
‘SimplifyRegions’ | ‘Yes’ | Clear module and region database:
| ||||
‘SytemOutputDriven’ | 'No' | Increase placing close to the ring for instances communicating with.
| ||||
'TimingEffort' | ‘High’ | Indicates level of iterations for TimingDriven algorithm.
| ||||
'UnusedPads' | 'Floating' | State in which the pads must be set when not used. Values can be 'Floating','WeakPullUp', 'WeakPullDown'. Note that when the state is different from 'floating', all the pads are serialized in the bitstream. Note that ‘WeakPulldown’ value is not available on NX1H35S component. | ||||
‘VariantAwareSynthesis’ | ‘Yes’ | If set to ‘Yes’ synthesis will automatically map to equivalent resource when specific resource is depleted. For example using DSP when there are no more CY available (can be ‘Yes’ or ‘No’). |
...
Date | Version | Revision |
2020-04-02 | 3.0.1 | Initial draft datasheet. |
2020-12-18 | 3.0.3 | Various corrections for IO names to respect ballout syntaxe now used in NXmap3 software. |
2021-04-02 | 3.0.4 | constrainPath() and constrainModule() descriptions introduced. Updated addPad() description to clarify the applications of several options and provide trade-off examples. |
2021-07-23 | 3.0.5 | addMappingDirective() supports the mapping of ADD into LUT. addPad() additional precisions:
setLogDirectory() function implemented. addFile() supports VHDL_93, VERILOG_95, VERILOG_2K language identifiers for synthesis through NXmap3. bestcase, worstcase and typical scenarios supported for sdf file generation. Overview of expected expression (full path, wildcard or regular expressions or for NXpython methods) is provided in section 5.2.2 List of NXpython methods expecting expressions. |