Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagepy
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'):

  •         Low : less routing constraints but may need further more tiles and CGBs

  •         Medium : balanced routing constraints but may need more tiles and CGBs

  •         High : all routing resources

'Dynamic'

'No'

Refresh view while algorithms are running.

'DefaultFSMEncoding'

'OneHot'

Default encoding of finite state machine (can be 'OneHot', 'OneHotSafe', 'OneHotSafeExtra' or 'Binary'):

  •         OneHot: only one bit changes per state

  •         OneHotSafe: detects invalid state where all bits are ‘0’ and returns to others case

  •         OneHotSafeExtra: detects invalid combinations where there is more than one bit to ‘1’ at a time

'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'):

  • Low: less resources (less routing constraints but may need more tiles and CGBs)

  • Medium: well suited resources

  • High: more resources (more routing constraints)

'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'):

  •         Low: almost no optimization

  •         Medium: balanced optimizations

  •         High: almost all optimizations

'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') :

  •         Low: small part

  •         Medium: medium part

  • · High: huge part

Info

Option is activated only if TimingDriven option is enabled.

'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.

  • Low: deactivate

  • Medium: can replicate LUT

  • High: can replicate LUT and DFF

'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.

  •         No: Do not allow replication

  •         Yes: Allow replication

'RoutingEffort'

'Medium'

Routing Optimization level (can be 'Low', 'Medium' or 'High'):

  •         Low: no optimization

  •         Medium: balanced optimizations

  •         High: further optimizations but time consuming

‘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:

  • delete modules without instance

  • delete regions without module

  • merge identical regions

‘SytemOutputDriven’

'No'

Increase placing close to the ring for instances communicating with.

  •         No: No priority for these instances in algorithm

  •         Yes: Allow priority for these instances in alogrithm

'TimingEffort'

‘High’

Indicates level of iterations for TimingDriven algorithm.

  •         Low: no iteration

  •         Medium: a few iteration

  •         High: more iterations

Info

Option is activated only if TimingDriven option is enabled.

Note

For heavy designs, runtime can increase drastically depending on number of iterations.

'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:

  • termination specified in Ohms within a range 30 to 80

  • weakTermination values ‘None’ and ‘PullUp’ not allowed for NG-MEDIUM

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.