Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: add removeSoftModules + modifyRegion to PlacingConstraint/Region

...

  • Attribute:

    • NxInit

    • NxPort

    • NxUse

    • SynKeep

    • SynPreserve

  • Board:

    • Scope

    • SwichBlink

    • ThermalSensor

  • Component

    • ClockSwitch

    • Ddfr

    • DspConfig

    • IoConfig

    • PllConfig

    • RamConfig

    • RfbConfig

    • Service

    • Soc

    • WfgConfig

  • Design

    • DelayIo

    • DspCascaded

    • DspMultAcc

    • DspTranspose

    • LowskewManagement

    • MemInfer

  • Init

    • Ram

  • Ip

    • CrossDomain

    • Ddr2Dfi

    • HsslEsistream

    • R5AxiMaster

    • R5AxiSlave

    • R5Jtag

    • Serdes

    • SpacewireLoopback

    • SpacewireRoadmap

    • SpacewireRx

  • MappingDirective

    • Adder

    • BlackBox

    • Memory

  • Pad

    • Parameter

    • Registered

  • PlacingConstraint

    • Aperture

    • ConstrainPath

    • DspLocation

    • ExportSites

    • Focus

    • Obstruction

    • PreplaceIp

    • RamLocation

    • Region

    • RingLocation

    • Site

  • ProcessingSystem

    • Interruptions

    • Watchdog

  • StaConstraint

    • CaseAnalysis

    • ClockGroup

    • DelayPath

    • FalsePath

    • GeneratedClock

    • InputOutputDelay

    • ReportPath

...

By using syn_keep attribute, the user can avoid any optimization of a combinatorial signal directly in the design code. syn_keep attribute can be replaced by syn_noprune attribute with exactly the same impact. The syntax is the following one:

VHDL:

Code Block
attribute syn_keep: boolean;
attribute syn_keep of s_keep_it_0: signal is true;
attribute syn_noprune: boolean;
attribute syn_noprune of s_keep_it_1: signal is true;

  Verilog:

Code Block
(*synthesis,syn_keep="true"*)    reg s_keep_it_0;
(*synthesis,syn_noprune="true"*) reg s_keep_it_1;

Environment:

Here after the table of compliances for this testcase.

...

By using syn_preserve attribute, the user can avoid any optimization of a register signal directly in the design code. The syntax is the following one:

VHDL:

Code Block
attribute syn_preserve: boolean;

attribute syn_preserve of hier_in_row_p2: signal is true;

Verilog:

Code Block
(*synthesis,syn_preserve="true"*) wire hier_in_row_p2;

Environment:

Here after the table of compliances for this testcase.

...

Board check: No board purpose for this testcase.

 

...

Ddfr

Description:

The user can make operations use double data rate input/output using NanoXplore DSP macro cells in the design code.

Hereafter the list of available configurations:

...

NAME

...

Description

...

ADD36

...

36 bits adder

...

SUB36

...

36 bits subtractor

...

SMUL18

...

18 bits signed multiplicator

...

UMUL18

...

18 bits unsigned multiplicator

...

.

For input double data rate, macro cell NX_IDDFR generates 2 single data rate from 1 double data rate.

For output double data rate, macro cell NX_ODDFR generates 1 double data rate from 1 single data rate.

Environment:

Here after the table of compliances for this testcase.

Variant

NG-ULTRA

Embedded

No

Simulation

Yes

Attributes

 

IP

NX_IDDFR NX_ODDFR

Methods

 

Table: Component Ddfr environment

Option: No option is available for this testcase.

 

NanoXmap check: After project launching, the user can check in the GUI the DDFR cells close to the pad.

...

Simulation check: NanoXplore macro cells manage double data rate

 

Board check: No board purpose for this testcase.

DspConfig

Description:

The user can make operations using NanoXplore DSP macro cells in the design code.

Hereafter the list of available configurations:

NAME

Description

ADD36

36 bits adder

SUB36

36 bits subtractor

SMUL18

18 bits signed multiplicator

UMUL18

18 bits unsigned multiplicator

ADD36_PIPE

36 bits adder with input/output pipe stages

SUB36_PIPE

36 bits subtractor with input/output pipe stages

SMUL18_PIPE

18 bits signed multiplicator with input/output pipe stages

UMUL18_PIPE

18 bits unsigned multiplicator with input/output pipe stages

...

  • Using a low-skew dedicated complex pad (highly recommended)

  • Using a simple/complex pad and buffer in global_lowskew modeCommon to System Converter (CSC)

  • Using a simple/complex pad and buffer in local_lowskew modeUsing a simple/complex pad connected to a WFG (not recommended)

Using low-skew dedicated pads reduces clock skew delays in order to reach best performances during Static Timing Analysis.

GlobalFor NG-MEDIUM/NG-LARGE, CSC is instantiated thanks to NX_BD in global_lowskew mode has to be used in case of registers from different tiles are on low-skew signal destination. Otherwise, if registers are in the same tile, it is enough to use local_lowskew .

For NG-ULTRA, CSC is instantiated thanks to NX_GCK in CSC mode.

Environment:

Here after the table of compliances for this testcase.

Variant

NG-MEDIUM NG-LARGE NG-ULTRA

Embedded

No

Simulation

No

Attributes

 

IP

NX_BD NX_GCK NX_WFG

MethodsaddModule createRegion confineModule

Table: Design LowskewManagement environment

...

NanoXmap check: After project launching, the user can check in progresslowskew.rpt that 2 clock buffers and 2 WFG are counted. Routing ways are observable in the GUI.

...

 

Simulation check: No simulation environment is available for this testcaseand in the GUI that clocks are inserted in the lowskew through multiple ways.

 

...

Simulation check: Clocks go through different ways without impact.

 

Board check: No board purpose for this testcase.

...

Variant

NG-MEDIUM NG-LARGE NG-ULTRA

Embedded

Yes

Simulation

No

Attributes

 

IP

 

Methods

createRegion modifyRegion addModule confineModule constrainModule removeSoftModules

Table: PlacingConstraint Region environment

...

Interruptions

Description:

The user can place manually a register into a tile using setSite NXpython method.Only a tile can be set, not a precise spot into this tilegenerate interruptions from the Fabric to the SoC through SoC interface.

Environment:

Here after the table of compliances for this testcase.

Variant

NG-ULTRA

Embedded

No

Simulation

No

Attributes

 

IP 

 NX_SOC_INTERFACE

Methods

Table: ProcessingSystem Interruptions environment

...

Simulation check: No simulation environment is available for this testcase.

Board check: No board purpose for this testcase Check interruptions are received by the SoC when using switches.

Watchdog

Description:

The user can place manually a register into a tile using setSite NXpython method.Only a tile can be set, not a precise spot into this tileuse watchdogs from processing system cores.

There are 1 watchdogs containing 2 signals by CPU Core.

When watchdog counter limit is reached, associated signal from SoC interface is raised.

Environment:

Here after the table of compliances for this testcase.

Variant

NG-ULTRA

Embedded

No

Simulation

No

Attributes

 

IP 

 NX_SOC_INTERFACE

Methods

Table: ProcessingSystem Interruptions environment

...

Simulation check: No simulation environment is available for this testcase.

Board check: No board purpose for this testcase Check LED associated to the programmed watchdog is switched when watchdog counter limit is reached.

StaConstraint

CaseAnalysis

...

Code Block
        | Summary of DOMAIN_clk_main_to_clk_main
        |   +---------------------------------------+--------------------------+-------------------------------------------+--------------------------------------------+
        |   |                 Domain                |         Frequency        |            Hold/Removal Summary           |           Setup/Recovery Summary           |
        |   +-------------------+-------------------+------------+-------------+---------+--------------+------------------+----------+--------------+------------------+
        |   |       Source      |       Target      |  Required  |   Maximum   |  Slack  | Minimum Data | Minimum Required |   Slack  | Maximum Data | Maximum Required |
        |   |                   |                   |            |             |         | Arrival Time |   Relationship   |          | Arrival Time |   Relationship   |
        |   +-------------------+-------------------+------------+-------------+---------+--------------+------------------+----------+--------------+------------------+
        |   | clk_main (Rising) | clk_main (Rising) | 25.000 MHz | 368.460 MHz | 1.588ns |      1.588ns |              0ps | 37.286ns |      2.714ns |         40.000ns |
        |   +-------------------+-------------------+------------+-------------+---------+--------------+------------------+----------+--------------+------------------+
        |   | Total                                 |                                                                                                                 1 |
        |   +---------------------------------------+-------------------------------------------------------------------------------------------------------------------+
        | 

Simulation check: No simulation environment is available for this testcase.

 

Board check: No board purpose for this testcase.

SpacewireTiming

Description:

The user must be able to get all needed timing in case of recovery clock like Spacewire one.

Spacewire recovery clock is generated by a XOR between DIN and SIN, data and strobe input signals.

The architecture looks like the following:

...

Spacewire clock creation must be done as follows as the tool will separate it in 2 clock signals with one inverted.

Code Block
breakoutModewide
        p.createClock(target=getRegisterClock('din_r_reg'), name='input_xor_rising', period=10.0, rising=0.0, falling=5.0)
        p.createClock(target=getRegisterClock('din_f_reg'), name='input_xor_falling', period=10.0, rising=0.0, falling=5.0)

However, in order to get timings before the XOR output, STA must be launched without these clock creation constraints.

Environment:

Here after the table of compliances for this testcase.

Variant

NG-MEDIUM NG-LARGE NG-ULTRA

Embedded

Yes

Simulation

No

Attributes

 

IP

 

Methods

createClock

Table: StaConstraint SpacewireTiming environment

Option: There is one option to check the impact of this constraint:

  • No option: no clock creation.

  • CreateClock: Both clocks are created.

 

NanoXmap check: After project launching, the user can get all needed timing paths in timing log files.

  • No option: no clock creation.

For Input to DIN:

Code Block
breakoutModefull-width
        |       Clock network delay to destination register:
        |         +-----------------------------------------+----------------------------------------+---------------+----------------+-----------------+
        |         |                  Source                 |               Target/Net               | Routing delay | Internal delay | Cumulated delay |
        |         +-----------------------------------------+----------------------------------------+---------------+----------------+-----------------+
        |         | Pin: spw_din.O                          | Net: spw_din                           |       7.329ns |              - |         7.329ns |
        |         | Pin: LOGIC|lut_1[D]~csc~lut~exp[6:1].I2 | Pin: LOGIC|lut_1[D]~csc~lut~exp[6:1].O |             - |          318ps |         7.647ns |
        |         | Pin: LOGIC|lut_1[D]~csc~lut~exp[6:1].O  | Net: input_xor                         |       1.078ns |              - |         8.725ns |
        |         +-----------------------------------------+----------------------------------------+---------------+----------------+-----------------+
        |         | Total                                                                            |       8.407ns |          318ps |         8.725ns |
        |         +----------------------------------------------------------------------------------+---------------+----------------+-----------------+
  • CreateClock: Both clocks are created.

For Input to falling edge clock DFF:

Code Block
breakoutModefull-width
        |       RPath summary:
        |         +---------+----------------+------------------+------------+-------------------+--------------+--------+--------+
        |         |  Slack  |     Source     |      Target      | Data Delay | Latch Clock Delay | Hold/Removal |  Depth |  Note  |
        |         +---------+----------------+------------------+------------+-------------------+--------------+--------+--------+
        |         | 6.764ns | Pin: spw_din.O | Pin: din_f_reg.I |    7.647ns |           1.167ns |       -284ps |      1 |   (-R) |
        |         +---------+----------------+------------------+------------+-------------------+--------------+--------+--------+
        |         
        |       Clock network delay to destination register:
        |         +-------------------------------+------------+---------------+----------------+-----------------+
        |         |             Source            | Target/Net | Routing delay | Internal delay | Cumulated delay |
        |         +-------------------------------+------------+---------------+----------------+-----------------+
        |         | Pin: LOGIC|lut_0[D]~csc~lut.O | Net: n15   |       1.167ns |              - |         1.167ns |
        |         +-------------------------------+------------+---------------+----------------+-----------------+
        |         | Total                                      |       1.167ns |            0ps |         1.167ns |
        |         +--------------------------------------------+---------------+----------------+-----------------+
        |       
        |       Data path detail:
        |         +------------------+-------------------+--------+--------+---------------+----------------+-----------------+--------------+-------------------+
        |         |      Source      |     Target/Net    | Module | Region | Routing delay | Internal delay | Cumulated delay | Hold/Removal | Latch Clock Delay |
        |         +------------------+-------------------+--------+--------+---------------+----------------+-----------------+--------------+-------------------+
        |         | Pin: spw_din.O   | Net: spw_din      |      ~ |      ~ |       7.647ns |              - |         7.647ns |              |                   |
        |         | Pin: din_f_reg.I | Pin: din_f_reg.CK |      ~ |      ~ |             - |              - |         7.647ns |       -284ps |                   |
        |         +------------------+-------------------+--------+--------+---------------+----------------+-----------------+--------------+-------------------+
        |         | Total                                                  |       7.647ns |            0ps |         7.647ns |              |           1.167ns |
        |         +--------------------------------------------------------+---------------+----------------+-----------------+--------------+-------------------+
        |       

For Input to rising edge clock DFF:

Code Block
breakoutModefull-width
        |       RPath summary:
        |         +--------+----------------+------------------+------------+-------------------+----------------+--------+--------+
        |         |  Slack |     Source     |      Target      | Data Delay | Latch Clock Delay | Setup/Recovery |  Depth |  Note  |
        |         +--------+----------------+------------------+------------+-------------------+----------------+--------+--------+
        |         |    0ps | Pin: spw_din.O | Pin: din_r_reg.I |    7.784ns |           1.078ns |          337ps |      1 |   (-R) |
        |         +--------+----------------+------------------+------------+-------------------+----------------+--------+--------+
        |         
        |       Clock network delay to destination register:
        |         +----------------------------------------+----------------+---------------+----------------+-----------------+
        |         |                 Source                 |   Target/Net   | Routing delay | Internal delay | Cumulated delay |
        |         +----------------------------------------+----------------+---------------+----------------+-----------------+
        |         | Pin: LOGIC|lut_1[D]~csc~lut~exp[6:1].O | Net: input_xor |       1.078ns |              - |         1.078ns |
        |         +----------------------------------------+----------------+---------------+----------------+-----------------+
        |         | Total                                                   |       1.078ns |            0ps |         1.078ns |
        |         +---------------------------------------------------------+---------------+----------------+-----------------+
        |       
        |       Data path detail:
        |         +------------------+-------------------+--------+--------+---------------+----------------+-----------------+----------------+-------------------+
        |         |      Source      |     Target/Net    | Module | Region | Routing delay | Internal delay | Cumulated delay | Setup/Recovery | Latch Clock Delay |
        |         +------------------+-------------------+--------+--------+---------------+----------------+-----------------+----------------+-------------------+
        |         | Pin: spw_din.O   | Net: spw_din      |      ~ |      ~ |       7.784ns |              - |         7.784ns |                |                   |
        |         | Pin: din_r_reg.I | Pin: din_r_reg.CK |      ~ |      ~ |             - |              - |         7.784ns |          337ps |                   |
        |         +------------------+-------------------+--------+--------+---------------+----------------+-----------------+----------------+-------------------+
        |         | Total                                                  |       7.784ns |            0ps |         7.784ns |                |           1.078ns |
        |         +--------------------------------------------------------+---------------+----------------+-----------------+----------------+-------------------+

Simulation check: No simulation environment is available for this testcase.

...