NXmap graphical exploration

 

Copyright

All the contents of this document are protected by the copyright law. They may not be disclosed to third parties or copied or duplicated in any form without the written consent of NanoXplore.

 

Introduction

This document is intended to guide users of NanoXplore NXmap graphical software interface through all the the options and possibilities available to perform floorplanning exploration. This document is an addition to the NXmap Design flow which focus exclusively on project creation and flow execution through NXmap graphical interface.

 

NXmap graphical exploration

 

Main window

Launching NXmap opens the main window of the tool within the graphical interface (following figure).

NXmap main window

This new interface at start is organized around:

  • a horizontal Menu presenting rolling options managed by File, Tools, Report, View & Help buttons

  • a horizontal Toolbar which allows to export several options from the menu to have direct access through a dedicated graphical icon

 

Menu

The horizontal menu presents:

  • File for creating and editing the current project

  • Tools for setting, editing and validating various constraints of the project

  • Report for printing various reports concerning the project

  • View to enable or mask widgets for dedicated section of the horizontal toolbar

  • Help to edit NXmap default setting and check release and license features information

File

File rolling menu

File rolling menu disposes classic actions for management of the current project:

  • New project → action also possible through a dedicated New project clic button in the main window

  • Open project → action also possible through a dedicated Load project clic button in the main window

  • Close project

  • Edit project → allows to modify infrastructure elements of the current project such as the path directory used, the choice of the FPGA variant, which HDL source files are to be compiled, setting or not a sdc file, define HDL parameters

  • Save project → save a database version of the project at .nym format

  • Export bitstream → generate a bitstream file at .nxb format

  • Export placement constraint → allows to export placement constraints in a dedicated python file, useful to generate constrainModule() python command lines based on regions created or edited through NXmap graphical interface

  • Quit

 

Tools

Tools rolling menu
Tools rolling menu

Tools rolling menu allows to edit certain constraints for the implementation of the project:

  • Configure ring provides options to configure bank & IO parameters (voltage, location, Standard, Drive, Weak Termination, SlewRate, Termination, Turbo, etc…)

Configure ring

→ Configure ring can only be edited before launching Place 1/5 step (Prepare); after Prepare step is done, the IO & bank mapping cannot be modified

  • Synthesis constraints allows to check the constraints declared for the project by script (new constraints cannot be declared through the graphical interface)

Synthesis constraints
  • Apply constraints validates every constraint change (such as creation of a new region, coordinate change of a region) performed through the graphical interface in order to be taken into account by NXmap during the flow execution

  • Run static timing analysis launches a STA run

Run static timing analysis

Report

This rolling menu provides select reporting generation options.

  • Report instances prints in the prompted terminal where NXmap has been launched an array of the resources used to map the design

Report instances
  • Report ports prints in the prompted terminal where NXmap has been launched an array of the ports used to map the inputs & outputs of the design

Report ports
  • Report regions prints in the prompted terminal where NXmap has been launched an array of the resources used to map the design for every region constrain created and used by the tool

Report regions
  • Report registers command lists a summary of all registers implemented in the HDL hierarchy of the design

Report registers
  • Report domains, which can be launched once the definitive placement of design elements is finished, provides a reporting of existing group paths based on existing clock constraints

Report domains

View

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

View rolling menu

The View rolling menu is organized into several categories:

  • Display allows to select which element to show or hide in the floorplan among Lobes, Aperture, Focus, Obstructions, Regions, Net name on pin, Anchors and Instance color

Net name on pin can be used to identify the hierarchy level of a net connected to a specific instance.

Showing net name on pin

Activating Instance color is useful to have a visual organization on how the logic mapped on fabric resources is split between user-defined regions and what is automatically placed by NXmap outside of regions. It is also practical to get a quick view on the amount of logic mapped into the fabric corresponding to specific region constraints.

Color instances on mapped resources
  • Zoom sub-menu provides commands to zoom in, zoom out, zoom full, zoom back and refresh through the floorplan view

  • Scroll sub-menu provides commands to scroll left, scroll right, scroll up and scroll down through the floorplan view

  • Docks widgets are dedicated to graphical exploration & edition of the floorplan: Interpreter, Dashboard, Selection & Regions:

    • 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 through the Command menu which action to perform

      • Select paths provides STA information on the selected paths

      • Select instances provides various information as hierarchy level, Region and Module detailed information; source file and TILE/CGB location; Input/Output name; dynamic setSite() management is available at Place 1/5 step through Locking button

    • Regions widget shows all user-defined regions and modules with the associated repartition of constrained resources

  • Tool bars allows to show/mask dedicated sections of the horizontal toolbar among File, Tools, Display, Zoom, Scroll and Dock widgets

Help

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

Help rolling menu

Settings help section

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

About help section

 

Docks widgets and selection commands

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

Interpreter dock widget

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

Dashboard widget enable

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)

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

Select 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

Select instances command applied into Selection widget

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

Lock in target to move an instance

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

Lock in target instance placed into another resource
  • 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.

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.

Editing regions into the floorplan

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

Regions pop up widget

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

Command Edit regions combined with Regions dock widget

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

The Regions widget offers various actions through several right click dynamic menus:

  • 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

Regions General right click menu

→ 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

Edit fabric dimensions and focus point

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

Create obstruction

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

Create region

Focus point placement when creating a region
  • 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

Region Edit menu
  • 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

Module Edit menu

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

Edit module to change related logic region assignment

→ 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

Logic instances moved into another region

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

Refresh floorplan view once constraints and module are moved
  • 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 and paste the commands into the script

Copy constraints in a python script

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.

Validate changes with Apply constraints

 

© NanoXplore 2022