Versions Compared

Key

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

...

This document is intended to guide users of NanoXplore NXmap graphical software interface through all the steps involved in the design flow options and the options possibilities available to perform floorplanning exploration. This document is an addition to the NXmap User manual Design flow which focus exclusively on the NXmap graphical interface.

Package description

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

Installation

To install NXmap, the user needs to unpack nxmap-VERSION.tar.gz file into the installation directory (e.g. /opt/NanoXplore) using the following command:

Code Block
$> tar xzf nxmap-VERSION.tar.gz -C /opt/NanoXplore

To set the license, it is required to export the following shell variable:

Code Block
$> export LM_LICENSE_FILE=27000@servername

Where servername is the hostname of the server running the license daemon and 27000 is the port the daemon listens to.

Run Nxmap

To run nxmap, use the following command:

Code Block
$> /opt/NanoXplore/nxmap/VERSION/bin/nxmap

project creation and flow execution through NXmap graphical interface.

Anchor
nxmapgui
nxmapgui
NXmap graphical exploration

...

This section of the menu provides access to various options also available in the horizontal toolbar given user preferences.

Anchor
Figure13Figure14Figure13
Figure14

...

Anchor
Figure14Figure15Figure14
Figure15

...

About section provides release information regarding current NXmap release with associating features enabled by the license with the validity date.

Anchor
Figure15Figure16Figure15
Figure16

...

Toolbar

Through six categories of widgets, the horizontal toolbar menu presents:

  • File :

  • Tools

  • Display

  • Zoom

  • Scroll

  • Docks

Docks widgets

...

Interpreter widget allows to write and execute python methods in command lines

...

Dashboard widget shows a reduction of the global floorplan view to easily zoom in and out of the design

...

Selection widget opens a pop up tab in which is reported all elements bound by Select nets, Select instances, Select Edges & Select paths commands with associated filter options

Select paths provides STA information on the selected paths

Select instances provides:

Hierarchy level, Region and Module information

Source file and TILE/CGB location

Input/output net name

Configuration information

Dynamic setSite management is available at Place 1/5 step through Locking button

  • Regions widget

Shows all Regions and Modules with utilization details

Creates/Resizes/Deletes Region dynamically

Assigns Module to a new Region dynamically

Clipboards and generates python file with all Region/Module/SetSIte/(DSP/RAM) Location

  • Information given by NXmap can be copy/paste from the GUI

  • Command updates

Select paths improvements:

Longest/Shortest path selection

New clock domain selection

Detail STA report on selected path

  • Floorplanning overview (Prepared):

Refresh fabric element dispatch after Region/Module modification in order to visualized new floorplanning

Until Place 1/5 step, regions can be manually edited though the floorplan view using Edit regions command.

...

To do so, select a defined regions among the listed ones and it will be highlighted in blank into the floorplan, allowing to expand or decrease left, right corners dimensions of the region at top and bottom.

...

Once the region has been edited, don’t forget to validate the changes by clicking on Tools → Apply constraints.

Docks

and selection commands

User can mask/show Interpreter widget, which allows to write and execute python methods in using command lines.

Anchor
Figure15Figure17Figure15
Figure17

...

The Dashboard widget shows a reduction of the global floorplan view to easily zoom in and out of the design.

Anchor
Figure15Figure18Figure15
Figure18

...

Selection widget opens a pop up tab in which is reported all elements bound by Select nets, Select instances, Select Edges & Select paths commands with associated filter options:

  • Select nets displays detailed information on single or multiple nets selected through the floorplan (fanout, id, number of instances connected to the net in user-defined regions)

Anchor
Figure15Figure19Figure15
Figure19

...

  • Select paths provides STA information on the selected paths and allows to select / show into the floorplan multiple paths by playing with Select with longest/shortest path plus clock domain selection and Single/Extended option to highlight several paths at the same time

Anchor
Figure15Figure20Figure15
Figure20

...

  • Select instances provides:

    • Hierarchy level, Region and Module information

    • Source file and TILE/CGB location

    • Input/output net name

    • Configuration information

    • Dynamic setSite management is available at Place 1/5 step through Locking button

Anchor
Figure15Figure21Figure15
Figure21

...

Select instances allows to dynamically move and place instance through Locking button.

Anchor
Figure15Figure22Figure15
Figure22

...

Select an instance to be moved in the floorplan, click on Locking to access the following possibilities:

  • Lock in target allows to select a target for the resource to be placed directly into the floorplan

    • In the above example, the instance selected is LOGIC|lut_2, originally placed by default into the TILE[17x6] as seen on the location field near the instace in the left menu of Selection widget

    • In the right menu of Selection widget, dedicated to Locking actions, the target location is dynamically adjusted as the cursor is moved into the floorplan

    • Once the target location is set for example in TILE[18x6], click on it through the floorplan and the instance will be automatically moved into the targeted resource and the location information in the instance list will be automatically updated as shown below

Anchor
Figure15Figure23Figure15
Figure23

...

  • The target for a resource previously placed can be edited and modified using Unlock button:

    • the previous target placement will be relaxed

    • you can reuse Lock in target to change the target resource as desired

  • When you want to fix a target resource for an instance already defined by the tool in order to be kept through the whole Place & Route flow, click on Lock in place to permanently fix the target for the selected instance

Until Place 1/5 step flow, called Prepared, regions constraints can be manually edited though the floorplan view using Edit regions command.

Anchor
Figure24
Figure24

...

To do so, select a defined regions among the listed ones and it will be highlighted in blank into the floorplan, allowing to expand or decrease left, right corners dimensions of the region at top and bottom.

Anchor
Figure25
Figure25

...

Once the region dimensions have been edited, don’t forget to validate the changes by clicking on Tools → Apply constraints.

NXmap now provides a dedicated Regions dock widget giving the possibility to perform through graphical view the following actions:

  • Shows all Regions and Modules with utilization details

  • Creates/Resizes/Deletes Region dynamically

  • Assigns Module to a new Region dynamically

  • Clipboards and generates python file with all Region/Module/SetSIte/(DSP/RAM) location

Anchor
Figure15Figure26Figure15
Figure26

...

It can also be useful to combine Edit regions command with Regions widget to edit regions.

Anchor
Figure15Figure27Figure15
Figure27

...

You can parse a list of Regions/Obstructions using this pop up menu.

...

  • outside existing regions, the logic is scattered into the fabric (identified as top level element with ‘~') and a right click on this gives access to General and Region '~’ menus

    • General allows to Edit Fabric dimensions inside which logic should be mapped, Create a Region or Create an Obstruction from scratch

    • Region ‘~’ allows to edit the dimensions of the top level '~’ region of the design, which represents by default the top level design and the logic inside it which is not constrained within user-defined regions

Anchor
Figure15Figure28Figure15

...

Figure28

...

→ Select GeneralEdit Fabric to open the labelled editor and edit the dimensions of the fabric '~' as well as the relative focus point in order to modify the size of the matrix used by default to map resources

Anchor
Figure29
Figure29

...

→ Select GeneralCreate obstruction to open the labelled editor and create a user-defined obstruction with desired coordinates

Anchor
Figure30
Figure30

...

→ If coordinates are missing or out of bounds, NXmap will issue a red warning message and won’t be able to validate the obstruction creation until the coordinates are corrected

→ Select GeneralCreate Region to open the labelled editor and create a user-defined region with desired Name, color Tone, choose if the region is exclusive or not, set Aperture coordinates to define the location and size of the region, set Anchor coordinates for the focus point (placed in the middle of the fabric by default when inherit focus is picked)

Anchor
Figure31
Figure31

...

Anchor
Figure32
Figure32

...

  • Moving the mouse cursor on an existing region or module will give you access to the following menu using right click, you can edit characteristics of existing regions

Anchor
Figure33
Figure33

...

  • For existing regions that have been declared though nxpython methods in a dedicated script, logic instances have been constrained into these regions via module identification:

    • project.constrainModule(hierarchy, moduleName, type, leftCol, topRow, width, height, regionName)

    • user has the possibility through Right click → Module → Edit to move instance logic attached to a module from one region to another one

Anchor
Figure34
Figure34

...

→ for the associated module, select which region will used to constrain the associated logic instances

Anchor
Figure35
Figure35

...

→ click on accept when the destination region is selected and you will observe in the floorplan that the logic instances colour identification will be modified to match the destination region color

Anchor
Figure36
Figure36

...

→ don’t forget to click on Refresh button for the modifications to be taken into account into the graphical floorplan view

Anchor
Figure37
Figure37

...

  • user also has the possibility to import any constraint change performed into NXmap graphical into python equivalent commands for a python script view : click on Copy constraints andpaste the commands into the script

Anchor
Figure38
Figure38

...

Note

Copy constraints can only import modifications of existing regions into contrainModule() commands.

If regions have been created through nxpython old methods (createRegion(), addModule(), confineModule()), NXmap won’t be able to make a Copy constraints and will generate an error.

Once you created or modified a region or an obstruction constraint, don’t forget to click on Apply constraints to save the changes into the nym database file.

Anchor
Figure15Figure39Figure15
Figure39

...