Versions Compared

Key

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

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 consent of NanoXplore.

Introduction

Aim of document

This document is intended to guide users on Training Package testcases.

In order to be more familiar with the Training Package environment, please refer to TrainingPackage_UserManual. For any kind of help, please contact NanoXplore support team at support@nanoxplore.com.

Content

For each testcase of the Training Package, an application note informing about implemented NanoXplore python methods (cf Impulse User Manual) and NanoXplore primitives (cf https://nanoxplore-wiki.atlassian.net/wiki/spaces/SANDBOX/pages/202244165) is provided in this document.

Test plan

List of categories

Testcases are grouped by category depending on the aim of the testcase (python method, primitive, …).

...

  • Attribute: Attributes can be inserted in the design in order to add a constraint on a register, a memory, …

  • Board: Designs to program NanoXplore evaluation boards (DevKit / BringUp).

  • Component: Multiple configurations for NanoXplore primitives.

  • Design: Various types of designs without any specific IP.

  • Init: Memory initialization

  • Ip: Designs implementing NanoXplore Ips.

  • MappingDirective:Directive of elements mapping in NanoXplore primitives.

  • Pad: Pad configurations.

  • PlacingConstraint: Constraints for manual placing of NanoXplore primitives.

  • ProcessingSystem: Communication between Programmable Logic and Processing System.

  • StaConstraint: Constraintsfor static time analysis.


List of testcases

Hereafter the list of all available testcases for each category:

  • 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

 


Testcase content

Each testcase of this application note contains the following fields:

...

  • Option: Project can be launched with or without an option when launching the python script in order to stress the difference if option is set or not. Please have a look at the https://nanoxplore-wiki.atlassian.net/wiki/spaces/SANDBOX/pages/202244782 for more information.

  • NanoXmap check: What the user can observe after launching the NanoXmap project.

  • Simulation check: What the user can observe after launching the Modelsim simulation in case of available simulation environment.

  • Board check: What the user can observe after programming the bitstream on an DevKit Evaluation Board.

Testcase Description

Attribute

NxInit

Description:

By using nx_init attribute, the user can initialize an inferred memory directly in the design code. It is an alternative way from using the addMemoryInitialization NXpython method in the python script. The syntax is the following one:

...

Board check: No board purpose for this testcase.


 

NxPort

Description:

By using nx_port attribute, the user can add parameters to the design top IOs directly in the design code. It is an alternative way from using the addPad NXpython method in the python script. The syntax is the following one:

...

Board check: No board purpose for this testcase.

 


NxUse

Description:

By using nx_use attribute, the user can add directive for inferred elements directly in the design code. It is an alternative way from using the addMappingDirective NXpython method in the python script. The syntax is the following one:

...

Board check: No board purpose for this testcase.

 


SynKeep

Description:

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:

...

Board check: No board purpose for this testcase.

 


SynPreserve

Description:

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:

...

Board check: No board purpose for this testcase.

 


Board

Scope

Description:

The user can use NxScope IP by implementing it in the design code in order to check signals on a NanoXplore Evaluation board.

...

For NG-ULTRA, NxScopeV2 IP Core is used instead of NxScope.

Description:

The user can program a NanoXplore Evaluation board (DevKit) with a simple bitstream using switches and LEDs.

...

-> Make sure all this check points are OK.


ThermalSensor

Description:

The user can interface with the internal thermal sensor in order to retrieve the junction temperature.

...

Board check: Temperature bus is displayed on LEDs.

 


Component

ClockSwitch

Description:

The user can gate and mux clocks using NanoXplore macro cells in the design code.

...

Board check: No board purpose for this testcase.

 

Ddfr

Description:

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

...

Board check: No board purpose for this testcase.

DspConfig

Description:

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

...

Board check: No board purpose for this testcase.

 


IoConfig

Description:

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

...

Board check: No board purpose for this testcase.

 

 


PllConfig

Description:

The user can generate clocks using NanoXplore PLL macro cells in the design code.

...

Board check: No board purpose for this testcase.

 


RamConfig

Description:

The user can store data using NanoXplore RAM macro cells in the design code.

...

Board check: No board purpose for this testcase.

 


RfbConfig

Description:

The user can store data using NanoXplore Register File macro cells in the design code.

...

Board check: No board purpose for this testcase.


Service

Description:

The user can interface with the Bitstream Manager and the Service bank using NanoXplore Service macro cell in the design code.

...

Board check: No board purpose for this testcase.

 


Soc

Description:

The user can interface with the Soc using NanoXplore SOC_INTERFACE macro cell in the design code.

...

Board check: No board purpose for this testcase.

 

 


WfgConfig

Description:

The user can generate clocks using NanoXplore WFG macro cells in the design code.

...

Board check: No board purpose for this testcase.


Design

DelayIo

Description:

The user can drive delays on IO statically or dynamically using NanoXplore macro cells in the design code.

...

Board check: No board purpose for this testcase.

 


 

DspCascaded

Description:

The user can cascade DSP using NanoXplore DSP macro cells in the design code in order to compute large operations.

...

Board check: No board purpose for this testcase.

 


DspMultAcc

Description:

The user can infer a 12*16+36 operations mapped in DSP.

...

Board check: No board purpose for this testcase.

 


DspTranspose

Description:

The user can implement a 6-tap transpose Finite Impulsion Response filter.

...

Board check: No board purpose for this testcase.

 


LowskewManagement

Description:

The user can interface with the low-skew network through several ways.

...

Board check: No board purpose for this testcase.

 


MemInfer

Description:

The user can infer memories without instantiating NanoXplore macro cells in the design code.

...

Board check: No board purpose for this testcase.

 


Init

Ram

Description:

The user can initialize a memory using the addMemoryInitialization NXpython method in the python script. The syntax is the following one:

...

Board check: No board purpose for this testcase.


Ip

CrossDomain

Description:

The user can cross clock domain properly thanks to NanoXplore IP. Implemented IP are:

...

Board check: No board purpose for this testcase.


 

Ddr2Dfi

Description:

The user can interface with a DDR2 memory thanks to the NanoXplore DDR2 DFI IP.

...

Board check: Switches and leds allow to control and receive data.


HsslEsistream

Description:

The user can interface with HSSL links thanks to the NanoXplore HSSL macro cell.

...

  • ERROR FLAG deactivated on J15 PIN1

  • HSSL_CLK at 48MHz on J15 PIN3

  • ESISTREAM SYNC RX/TX activated on J15 PIN 5

  • RX_PLL_LOCKED activated on J15 PIN7

  • PMA RX CLOCK on on J15 PIN13


R5AxiMaster

Description:

The user can interface with R5 Core thanks to the NanoXplore R5 interface macro cell.

...

Board check: No board purpose for this testcase.


R5AxiSlave

Description:

The user can interface with R5 Core thanks to the NanoXplore R5 interface macro cell.

...

Board check: No board purpose for this testcase.


R5Jtag

Description:

The user can interface with R5 Core thanks to the NanoXplore R5 interface macro cell.

...

Board check: No board purpose for this testcase.


Serdes

Description:

The user can send and receive data at high speed thanks to the NanoXplore SERDES macro cells.

...

Board check: No board purpose for this testcase.


SpacewireLoopback

Description:

The user can communicate with Spacewire link thanks to the NanoXplore SpaceWire macro cell.

...

3- Check data is displayed on LED.


SpacewireRoadmap

Description:

The user can communicate with Spacewire link and Roadmap protocol thanks to the NanoXplore SpaceWire macro cell.

...

Board check: No board purpose for this testcase.

SpacewireRx

Description:

The user can retrieve data from a Spacewire Link generating the recovery clock.

...

Board check: Data are routed to output LED (falling edge data on LED1 + rising edge data on LED2).


MappingDirective

BlackBox

Description:

The user can declare a component which is a blackbox and map it into the desired NanoXplore macro cell using addBlackbox NXpython method.

...

Board check: No board purpose for this testcase.


Memory

Description:

The user can map inferred operations into the desired NanoXplore macro cell using addMappingDirective NXpython method.

...

Board check: No board purpose for this testcase.

 

Operator

Description:

The user can map inferred operations into the desired NanoXplore macro cell using addMappingDirective NXpython method.

...

Board check: No board purpose for this testcase.


Pad

Parameter

Description:

The user can configure pads with many parameters using addPad or modifyPad NXpython method.

...

Board check: No board purpose for this testcase.


Registered

Description:

The user can map registers, mapped by default in NX_DFF and located in tiles, into NX_DFR located in the pad using addPad NXpython method and registered parameter.

...

Board check: No board purpose for this testcase.

 


PlacingConstraint

Aperture

Description:

The user can focus its design into a defined area using setAperture NXpython method.

...

Board check: No board purpose for this testcase.


ConstrainPath

Description:

The user can confine the path between registers in a region using constrainpath NXpython method.

...

Board check: No board purpose for this testcase.


DspLocation

Description:

The user can place manually a DSP using addDSPLocation NXpython method.

...

Board check: No board purpose for this testcase.

ExportSites

Description:

The user can export placing constraints (setSite, addRAMLocation,…) using exportSites NXpython method.

...

Board check: No board purpose for this testcase.

Focus

Description:

The user can focus its design around a point using setFocus NXpython method.

...

Board check: No board purpose for this testcase.

Obstruction

Description:

The user can remove regions from available area in the tool using createObstruction NXpython method.

...

Board check: No board purpose for this testcase.

PreplaceIp

Description:

The user can preplace an IP and declare IP as a blackbox using addBlackBox NXpython method.

...

Board check: No board purpose for this testcase.


RamLocation

Description:

The user can place manually a RAM using addRAMLocation NXpython method.

...

Board check: No board purpose for this testcase.


Region

Description:

The user can confine a module in a region using addModule, createRegion and confineModule or directly constrainModule NXpython methods.

...

Board check: No board purpose for this testcase.


RingLocation

Description:

The user can place manually PLL and WFG into a CKG using respectively addPLLLocation and addWFGLocation NXpython methods. The method addRingLocation can be used too in both cases.

...

Board check: No board purpose for this testcase.


Site

Description:

The user can place manually a register into a tile using setSite NXpython method.

...

Board check: No board purpose for this testcase.

ProcessingSystem

Interruptions

Description:

The user can generate interruptions from the Fabric to the SoC through SoC interface.

...

Board check: Check interruptions are received by the SoC when using switches.

Watchdog

Description:

The user can use watchdogs from processing system cores.

...

Board check: Check LED associated to the programmed watchdog is switched when watchdog counter limit is reached.

StaConstraint

CaseAnalysis

Description:

The user can specify a case analysis for the STA using setCaseAnalysis NXpython method.

...

Board check: No board purpose for this testcase.

ClockGroup

Description:

The user can specify unrelated clocks using setClockGroup NXpython method or calling SDC constraint.

...

Board check: No board purpose for this testcase.


DelayPath

Description:

The user can specify path delays between registers by using addMinDelayPath, addMaxDelayPath and addMulticyclePath NXpython methods or calling SDC constraints.

...

Board check: No board purpose for this testcase.


FalsePath

Description:

The user can specify path to be ignored by the STA by using addFalsePath, NXpython method or calling SDC constraint.

...

Board check: No board purpose for this testcase.


GeneratedClock

Description:

The user can create a clock directly or specifying its relationship with another clock using respectively createClock and createGenerateClock NXpython method.

...

Board check: No board purpose for this testcase.


InputOutputDelay

Description:

The user can apply a minimum and a maximum data arrival time on inputs and outputs using respectively setInputDelay and setOutputDelay NXpython methods.

...

Board check: No board purpose for this testcase.

ReportPath

Description:

The user can generate timing reports between two pins or two registers with respectively reportPath or addReportPath and reportTiming or addReportTimingPath NXpython methods.

...

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.

...