Impulse 23.3 Application Note : Preplaced_IP method
Table of Contents
Â
Document History
Revision | Date | Modification |
1.0.0 | 29/04/2022 | Initial Document |
Related documentation
Reference | Description | Version |
RD1 | NanoXplore_Nxmap_User_Manual_v3.0.5 | V3.0.5 |
RD2 | training package | Â |
RD3 | training package user manual |
Summary
This document describes how to instantiate an IP into a TOP design using Impulse flow.
Introduction
After compiling a design on Impulse, it is possible to instantiate this compiled design as an IP into a top design. Impulse placement engine uses the compiled IP in an other design.
How to use preplaced IP
An example is provided in the training package environment. Please refer to RD3.
The preplaced IP testcase is stored to the path below
cd $WORKDIR/trainingpackage/test/PlacingConstraint/Preplace |
Please launch the following commands
nxpython nxpython_script.py --argument Preplace |
The command compiles the switch_counter design that it is used as an IP and a top level design, the switch design, that instantiates the switch counter.
The aperture of the IP has to be smaller than possible.
To add the preplaced IP into the design, add in constraints file (project_constraints.py) the line below:
p.addBlackBox('switch_counter(*)', 'IP', '../switch_counter_preplaced_NG-MEDIUM.nym', 'g_inst.i_switch_counter_0:2x6') |
switch_counter(*) : VHDL entity name
IP : parameter to indicate that is an IP
switch_counter_preplaced_NG-MEDIUM.nym : it is the file of the IP placement (placed-auto.nym) generated by Impulse. In the example, it is copied to switch_counter_preplaced_NG-MEDIUM.nym into the workdir of the TOP level design where the IP is preplaced
g_inst.i_switch_counter_0:2x6 : instantiated name of the IP and the coordinate of the anchor (column 2 x row 6). Please check that the anchor of the preplaced IP is instantiated correctly, it means that the placement is using the same resources.
The preplaced IP could be instantiated several times.
p.addBlackBox('switch_counter(*)', 'IP', '../switch_counter_preplaced_NG-MEDIUM.nym', 'g_inst.i_switch_counter_0:2x6;g_inst.i_switch_counter_1:3x6') |
The code source of the preplaced IP has to be removed from the project (project_files.py).
def add_files(p,sources_files_directory,variant,argument): |
Notes:
It is allowed to superpose preplaced IP but the resources have to be sufficient to avoid placement or routing issues
Several instances are not supported yet: CDC, CKS, FIFO, XFIFO, CSC, GCK, PLL, WFG, SOC interface, HSSL
IOB and BFR are converted into buffer
The constraintPath is not used with elements into preplaced IP, please make sure that the preplaced IP is optimally constrained
© NanoXplore 2022