...
The needed minimum version is modelsim Modelsim 10.6d
Design simulation
Simulation
...
There is one file per variant so for instance, the file to compile is stored in each release in the following path:
Code Block |
---|
nxmapimpulse-<version_number>/share/modelsim/nxLibrary-<variant_name>.vhdp |
For instance, for NG-MEDIUM or NG-MEDIUM-EMBEDDED target, with nxmap 22.1.0.1 release, the path is:
Code Block |
---|
nxmapimpulse-dbg-2223.13.0.12/share/modelsim/nxLibrary-Medium.vhdp |
Info |
---|
Only components and entities are declared in the clear part. Architecture models are private and encrypted so. |
Hereafter an example of TCL script to compile and simulate a design:
Code Block |
---|
#Compile nx file vlib nx vcom -work nx -2008 nxmapimpulse-dbg-2223.13.0.12/share/modelsim/nxLibrary-Medium.vhdp #Compile design file vlib work vcom -work work -2008 sub_module1.vhd vcom -work work -2008 sub_module2.vhd vcom -work work -2008 top.vhd #Compile testbench vcom -work work -2008 tb_top.vhd #Simulate vsim -t 1ps -lib work work.tb_top |
...
For instance, the netlist can be generated after the final routing step like the following example:
Code Block |
---|
from nxmapnxpython import * #Project creation p=createProject('') p.setVariantName("NG-MEDIUM") p.setTopCellName("work", "top") p.addFile('work','sub_module1.vhd') p.addFile('work','sub_module2.vhd') p.addFile('work','top.vhd.vhd') #Project steps p.synthesize() p.place() p.route() p.save('top_routed.vhd') |
...
Code Block |
---|
#Compile nx file vlib nx vcom -work nx -2008 nxmapimpulse-dbg-2223.13.0.12/share/modelsim/nxLibrary-Medium.vhdp #Compile design file vlib work vcom -work work -2008 top_routed.vhd #Compile testbench vcom -work work -2008 tb_top.vhd #Simulate vsim -t 1ps -lib work work.tb_top |
...
It can be useful in order to detect a timing violation in the design and it its consequence.
Netlist and SDF generation
In addition of the netlist, a Standard Delay Format (SDF) output file must be generated using NXmap tool in the NXmap Impulse flow as follows:
Code Block |
---|
p.save('<file_name>.sdf','<conditions>) |
...
For instance, the netlist can be generated after the final routing step like the following example:
Code Block |
---|
from nxmapnxpython import * #Project creation p=createProject('') p.setVariantName("NG-MEDIUM") p.setTopCellName("work", "top") p.addFile('work','sub_module1.vhd') p.addFile('work','sub_module2.vhd') p.addFile('work','top.vhd.vhd') #Project steps p.synthesize() p.place() p.route() p.save('top_routed.vhd') p.save('top_routed.sdf','worstcase') |
A SDF file described describes each path with a minimum, a maximum and an optional typical delay time.
Note |
---|
NanoXplore SDF file contain contains only minimum and maximum values so only -sdfmin and -sdfmax arguments are allowed. |
Simulation
Instead of the modelsim file, the backannoted file must be compileCompiling an SDF file is necessary in order to proceed to a backannoted simulation.
There is one file per variant so for instance, the file to compile is stored in each release in the following path:
Code Block |
---|
nxmapimpulse-<version_number>/share/modelsim/nxLibrary-<variant_name>.vhdp |
For instance, for NG-MEDIUM or and NG-MEDIUM-EMBEDDED target, with nxmap 22Impulse 23.13.0.1 2 release, the path is:
Code Block |
---|
nxmapimpulse-dbg-2223.13.0.12/share/backannoted/nxLibrary-Medium.vhdp |
...
Code Block | ||
---|---|---|
| ||
#Compile nx file vlib nx vcom -work nx -2008 nxmapimpulse-dbg-2223.13.0.12/share/backannoted/nxLibrary-Medium.vhdp #Compile design file vlib work vcom -work work -2008 top_routed.vhd #Compile testbench vcom -work work -2008 tb_top.vhd #Simulate vsim +nowarn8888 -t 1ps -lib work work.tb_top -sdfmax sim/:tb_top:i_top_0=top_routed.sdf |
...
+nowarn8888 argument is used in order to remove all warning warnings related to negative timing delay.
...