Impulse 23.1 Release Note

1 What's New

  • Enhanced Logs refactoring

  • STA execution now 3x times faster than before

  • STA constraints analysis now possible without launching STA

  • New Hierarchy Complexity reporting method

  • Now possible to modify Pad configuration after Routed Design

  • New DFF merged statistics reporting method

  • Improved Preplace IP methodology

 

2 GUI

  • Improved contextual help and tooltips

  • UI improvements including:

  • Reporting integration

  • Deeper Window Customization

  • Feedback integrated to each tool

  • New High Contrast Theme added to the Accessibility options

 

3 Python

3.1 Console

  • nxpython

    • New -i argument activates the Interactive Console mode which allows the user to navigate into a project after script execution

  • nxipython

    • Activates the Interactive Console mode which allows the user to navigate into a project after script execution

 

3.2 SetOption()
SharingFanout

  • Allows user to set a minimum fanout trigger in order to inject every signal above this value into lowskew, e.g.
    getProject().setOption('SharingFanout', '100')

3.3 Methods

  • reportHierarchyComplexity()

    • o Generates a report and a hierarchyComplexity.json file providing the logic cone complexity for each hierarchy level and by clock domain

  • • modifyPad()

    • Allows user to modify pad configuration at any step of Impulse Design Flow Please note that only part of the pad configuration can be changed
      getProject().modifyPad('input[0]', {'drive':'8', 'slewRate':'Medium', 'termination':'25', 'terminationReference':'VT', 'inputDelayOn':True, 'inputDelayLine':3, 'turbo':False, 'inputSignalSlope':0.4, 'outputCapacity':2 })

  • reportDFFStatistics()

    • Prints a table reporting DFF merging statistics
      getProject().reportDFFStatistics()

  • exportSites()

    • This method has been modified and now generates a .json file.

  • modifyAperture()

    • Modifies dimensions of the global aperture, deprecating the following:

      • setAperture(column1, row1, column2, row2)

      • adjustAperture(above, left, right, below)

      • translateAperture(horizontal, vertical)

      • addRegion()

    • Adds a new region with the specified name and dimensions and optionally sets the region to exclusive, deprecating the following:

      • createRegion(name, column1, row1, column2, row2[, exclusive])

      • modifyRegion()

    • Modifies dimensions of the specified region and optionally sets the region exclusive, deprecating the following:

      • setAperture(regionName, column1, row1, column2, row2)

      • removeRegion()

    • Removes specified region, deprecating the following:

      • destroyRegion(name)

      • addObstruction()

    • Adds a new obstruction with specified name and dimensions and optionally sets the obstruction for place and/or route, deprecating the following:

      • createObstruction(name, column1, row1, column2, row2[, place, route])

      • modifyObstruction()

    • Modifies dimensions of the specified region and optionally sets the obstruction for place and/or route

      • removeObstruction()

    • Removes specified region, deprecating the following:

      • destroyObstruction(name)

  • Preplace IP

    • Preplace IP methodology changed: The .nym file is no longer used. A .json and a .gcl file are now generated and used instead of .nym file to prevent version number conflicts

      • saveIP(‘PreplaceIPname.json’) generate .json

      • addBlackBox() use .json file

 

4 Static Timing Analysis (STA)
NanoXplore Design Constraints (NXDC)
preAnalyze()

  • Analyses all timing constraints without launching Static Timing Analysis (STA) and generates timingConstraints.rpt and timingConstraints.json files
    a = p.createAnalyzer() a.preAnalyze()

 

5 NXLibrary

5.1 NG-ULTRA

  • NX_SOC_INTERFACE_WRAP
    The following signal has been renamed:
    Impulse22.3:
    fabric_llpp1_arqos_s1_o: out std_logic_vector(3 downto 0);
    Becomes:
    Impulse23.1:
    fabric_llpp1_arqos_s_o: out std_logic_vector(3 downto 0);

  • NX_BD
    NX_BD default value mode changed to global lowskew

  • NX_DDFR_U
    Dual Data Rate deported DFF can be instantiated

 

6 Known Issues
ExportAsIPCore:

  • Multiple emitters can appear in generated synthesized netlist due to std_logic_vector name conflicts

6.1 Fixed Bugs

  • Substractor optimization

    • Bad logic could be generated by the AdderTreeOptimization option

  • Preplace IP

    • WFG are no longer replicated when instantiating several Preplace IP connected to the same clock/reset

    • Simplified input/output interfaces are now supported

  • DSP

    • Bad DSP inference has been corrected for: Z = (A * B) + (D concat C)

    • Reset could be connected but not activated

    • NX_XFIFO_64x18 was leading to placement issues

 

7 Requirements and Setup
Before installing Impulse, please ensure your system meets the following specifications:

Table 1: System Requirements

7.1 Supported Operating Systems
NanoXplore supports the following operating systems

  • RedHat Enterprise Linux 64-bit:

    • CentOS 7

    • CentOS 8

Note: If a 64-bit Linux machine is not available, you can install VirtualBox with CentOS 7 or CentOS 8 to use Impulse
Note: WSL on Windows is not supported yet
Python
Running Impulse requires Python 3.6 installed on a Linux 64-bit machine.
Warning: Other Python versions are not supported yet.

 

7.2 Supported Devices
The following sections list all supported architectures.

Table 2: Supported Architectures

 

7.3 Compatible Third-Party Tools

Table 3: Third-Party Tools

7.4 Accessing NX Product Licensing
Visit https://support.nanoxplore.com and sign-in.

  1. Request to sign a SLA and provide license information

  2. Download Impulse

  3. Install NX License Daemon

© NanoXplore 2022