This document gives examples for the NX testcase template using argparser feature.
This template is used in TrainingPackage testcases.
You can download the template on the following link / Version 22.1.0.1-v0:
https://files.nanoxplore.com/f/defc884200414b059150/?dl=1
//Author : K.CHOPIER
//Company: NanoXplore
//Contact: support@nanoxplore.com
//Description
The aim of this package is to provide to NanoXplore user a script template in order to implement a design in a standard format.
The template is made to ease user implementation and ease NX support to debug a project.
//Commands
//Commands to manage package
nxpython nxmap_script.py -h : get help nxpython nxmap_script.py -i : get info about default values and allowed values nxpython nxmap_script.py -c : clean directory removing all generated directories and files nxpython nxmap_script.py -a : create a zip file of this archive after cleaning it
//Commands to launch test:
nxpython nxmap_script.py --variant NG-LARGE : Launch the script for NG-LARGE variant nxpython nxmap_script.py --variant NG-LARGE --argument USE_DSP : Launch the script for NG-LARGE variant with argument "USE_DSP" which is used in sub_scripts nxpython nxmap_script.py --variant NG-LARGE --progress synthesized : Launch the script for NG-LARGE variant reloading synthesized project from previous run with same variant and same argument nxpython nxmap_script.py --variant NG-LARGE --suffix try_1 : Launch the script for NG-LARGE variant adding a suffix in the project name. Useful in case of multiple tries changing scripts. nxpython nxmap_script.py --variant NG-LARGE --topcellname switch_counter --topcelllib work : Launch the script for NG-LARGE variant for a different top cell than the default one. Useful in case of unitary run before top run nxpython nxmap_script.py --variant NG-LARGE --timingdriven Yes : Launch the script for NG-LARGE variant with TimingDriven enabled nxpython nxmap_script.py --variant NG-LARGE --seed 3557 : Launch the script for NG-LARGE variant with a different seed nxpython nxmap_script.py --variant NG-LARGE --sta placed1_routed3 --stacondition typical_worstcase : Launch the script for NG-LARGE variant generating sta after Prepared and Routed steps in typical and worstcase conditions nxpython nxmap_script.py --variant NG-LARGE --bitstream Yes : Launch the script for NG-LARGE variant generating a bitstream at the end nxpython nxmap_script.py --variant NG-LARGE --options RoutingEffort.Low_MappingEffort.Medium : Launch the script for NG-LARGE variant with nxmap options RoutingEffort set to Low and MappingEffort set to Medium nxpython nxmap_script.py --variant NG-LARGE --constraints No : Launch the script for NG-LARGE variant without any synthesis, placing or routing constraints defined in project.constraints.py
//Tree
//Input folders and files
nxmap_script.py : script to launch by nxpython nxmap_script.py <options> project_variables.py: all variables used for the test are defined. src : all needed RTL sources. sub_scripts : all needed python files to create the project. project_ios.py : defined banks voltages and pads configurations. project_files.py : defined RTL files. project_parameters.py : defined top generic parameters. project_options.py : defined Nxmap options. project_constraints.py : defined constraints for synthesis or P&R. project_class.py : chip class. script.py : main script. [top_cell]_variant: created project once launched. logsPython : all logs and reports. *.nym : nxmap project files. *.vhd : netlists. *.sdf : Backannoted SDF files. bitstream.nxb : bitstream binary file.
Multi Seed
Heareafter a shell script in order to launch a test with multiple seed (random or user list)
#!/bin/bash #1st arg: number of tests #2nd arg: "random"/"list" #Example 1: ./multi_seed.sh 3 random => Generates 3 tests with random values in range [1;10000] #Example 2: ./multi_seed.sh 5 list => Generates 2 tests with values in list seed_list #To generate a CSV report launch the following command: #Example: python compare_sta.py switch_NG-MEDIUM_ Routed worstcase => Generates a CSV report for all folders containing "switch_NG-MEDIUM_" parsing STA files generated at Routed step in worstcase conditions nxpython_path=/home/groups/soft/nxdesignsuite/integration/nxmap-dbg/lastdevversion/lastdevbuild/bin/nxpython seed_list="13 19" for (( i=0; i< $1; i++)) do if [[ $2 == "random" ]] then seed=$(( RANDOM % 10000 )) $nxpython_path nxmap_script.py --seed $seed --suffix $seed elif [[ $2 == "list" ]] then seed_list_split=($seed_list) seed=${seed_list_split[$i]} $nxpython_path nxmap_script.py --seed $seed --suffix $seed else echo "Unrecognized mode $2. It must be random or list" fi done