APPLICATION NOTE #3

Errors due to Actmaps' naming of instances.

Abstract

During the EE 552 labs many software quirks are encountered.  One that our group encountered was the way that Actmap names instances of objects within the netlists that it produces.  It appears that if the 'Naming - Match Instance' option is selected in Actmap, Actmap will produce some instances with the same names as signals in your design.   Edn2vhdl will correct this problem, but the data in the .SDF files created before edn2vhdl was run will now be corrupt in a sense.  This application note describes one solution to this problem.

Author: McDermott, Ashley. Koziar, Kory. Stangeland, Duane.


After running Actmap as directed to do so in the labs, you are asked to run edn2vhdl.   In some cases you will receive error messages from the edn2vhdl software stating that "Duplicate VHDL name exists".  These errors appear to be caused by the "Names - Matched Port Instance" option in Actmap.  This option appears to configure Actmap so that it will name some instances of components with the same names as signals in your design.  These duplicate names are what edn2vhdl is having problems with.  The error messages that one of the members of our group received are shown in Figure 1.

edn2vhdl.gif (11129 bytes)

Figure 1: edn2vhld error messages.

 

At later steps in the lab you are instructed to use qhsim with the command line, "qhsim -sdfmax chiptest_str.sdf", or something similar.  You will now receive error messages from qhsim due to the fact that the .SDF file was created using the information from the netlist that Actmap created.  The edn2vhdl program run previously has renamed some of the instances in the .VHDL file to another name to avoid signal/instance naming conflicts.  Therefore, qhsim cannot match timing information from the .SDF file to the .VHDL file.  It appears that when any error of this type occurs, qhsim ignores all .SDF data and the simulation will using the standard time delay of 1 ns.  Examples of the error messages received from qhsim are given in Figure 2.

qhsim.gif (12389 bytes)

Figure 2: Example error messages from qhsim.

 

The solution to this problem is to close qhsim, and edit the .SDF file for the code that you are trying to simulate.  Locate one of the instances mentioned in the error messages produced by qhsim or edn2vhdl.  Once an instance has been located, replace the name shown, i.e. "CLOCK" in Figure 3, with "CLOCK_1".  Do this for each instance that was renamed by edn2vhdl.  

chiptest_sdf.gif (8929 bytes)

Figure 3: Example of a line to change in a .SDF file.

 

Once you have renamed all the instances in the .SDF file that were renamed by edn2vhdl, save the .SDF file and restart qhsim.  If you edited the .SDF file correctly you will not receive any error messages from qhsim for the same problem.