Professional Documents
Culture Documents
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
About This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Finding Information in This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Related Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Related Manuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
SKILL Syntax Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
Introducing VHDL In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Uses for VHDL In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Other Cadence Products Used with VHDL In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Design Flow Using VHDL In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
VHDL In Software Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Starting Options and Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Starting Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Input Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Conversion Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2
Getting Started with VHDL In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Setting Up the Library Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Setting Up the cds.lib File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Using the Text Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Using the CIW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3
VHDL In Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
VHDL Import Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Import Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Schematic Generation Options Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4
Importing a Simple VHDL Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Introduction to the Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Checklist Before Importing a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Setting Up the Library Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Importing to VHDL Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Setting Up the VHDL Import Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Processing Generate Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Creating a New Target Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Viewing the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Importing to a Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Setting Up the VHDL Import Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Creating a New Target Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Viewing the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Importing to a Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Setting Up the VHDL Import Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Creating a New Target Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Viewing the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5
Importing a Complex VHDL Design (RISC Processor Unit) . 65
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
RPU Design Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Setting Up the VHDL Import Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Specifying Schematic Generation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Creating a Target Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Viewing Error and Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Viewing the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Accessing the Symbol Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Viewing the Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6
Conversion Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Binding Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
One Component, Multiple Entity/Architecture Pairs . . . . . . . . . . . . . . . . . . . . . . . . . . 82
One Entity, Multiple Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Case Sensitivity Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Possible VHDL Design Import Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Object Search in CDBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Other Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Signal Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Vector Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Noninteger Vector Indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Buffer Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Port Conversion Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Attribute Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Importing Generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Component Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Port Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Concurrent Assignment Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Behavioral View for Continuous Signal Assignment Statements . . . . . . . . . . . . . . . . 93
Power and Ground Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7
Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
File Name Does Not Exist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
No Target Library Name Specified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Library Name Not Found . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Import Completed Successfully . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Import Completed with Errors/Warnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Import Aborted When Reached Maximum Errors . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Text String Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Line Command Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Analyzer Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Parameter File Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Composer Design Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
General Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8
Creating a Parameter File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Parameter File Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Description of Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
9
VHDL In Standalone Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Getting Help on a VHDL In Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Displaying the Version Number of VHDL In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Suppressing Printing of the Copyright Banner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Hiding the Display of Schematic Extraction Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Specifying a cds.lib File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Compiling Functional Cellviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Specifying the VHDL WORK Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Ignore Extra Pins on Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Speeding Up Run Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Specifying a Schematic Parameter File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Specifying Multiple VHDL Source Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
TDM and Imported VHDL Design Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
VHDL In operation in TDM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Checking a Library into TDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Enabling VHDL93 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Enabling Vendor Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Index.............................................................................................................................. 138
Preface
Conventions
Boxes and arrows in a sequence like the one below show you the order in which you select a
command from a menu.
File ➾ Import . . .
Related Documents
For more information about VHDL In and other related products, you can consult the sources
listed below.
Related Manuals
You use VHDL In with other Cadence products during the design process. The following give
you more information about these products.
■ Composer: Design Entry Help describes the Composer design entry product.
■ Composer: VHDL Interface User Guide describes how to use the rest of the VHDL
Interface product, including the VHDL Tool Box, that supports using VHDL with
Composer™.
■ Leapfrog VHDL Simulator Reference describes the Leapfrog™ VHDL simulator.
■ Leapfrog VHDL Simulator User Guide describes the process of simulating a sample
design with Leapfrog.
■ Notebook User Guide describes how to use the Notebook graphical user interface to
start tools and run utilities, including VHDL In.
■ Team Design Manager User Guide describes how to use the Team Design Manager
to manage the process of updating VHDL design libraries.
Customer Support
There are several ways to obtain support when using Cadence products.
■ Cadence offers many classes. Ask your sales representative for more information.
■ The Cadence Customer Response Center (CRC) hotline telephone number operates
from 8 a.m. to 8 p.m. Eastern Time:
1-800-CADENC2 (1-800-223-3622)
■ You can also send e-mail to the CRC:
crc_customers@cadence.com
Syntax Conventions
This list describes the syntax conventions used for the SKILL™ functions specified in this
manual.
literal (LITERAL> Nonitalic (UPPERCASE) words indicate keywords that you must
enter literally. These keywords represent command (function,
routine) or option names.
argument (z_argument) Words in italics indicate user-defined arguments for which you
must substitute a name or a value. (The characters before the
underscore (_) in the word indicate the data types that this
argument can take. Names are case sensitive. Do not type the
underscore (z_) before your arguments.)
... Three dots (...) indicate that you can repeat the previous
argument. If you use them with brackets, you can specify zero or
more arguments. If they are used without brackets, you must
specify at least one argument, but you can specify more.
,... A comma and three dots together indicate that if you specify
more than one argument, you must separate those arguments by
commas.
If a command line or SKILL expression is too long to fit inside the paragraph margins of this
document, the remainder of the expression is put on the next line, indented. For example:
for all: and2 use entity CellsLib.MyAnd2(Structure2) port
map(Input1 => A, Input2 => B, Output => Y);
When writing the code, you should always put a backslash (\) at the end of any line that
continues on to the next line.
list Plain type indicates words that you must enter literally.
g_arg1 Words in italics indicate arguments for which you must substitute
a name or a value.
=> A right arrow points to the return values of the function. Also used
in code examples in SKILL manuals.
... Three dots indicate that the preceding item can appear any
number of times.
1
Introducing VHDL In
In every case, VHDL In imports the design from the VHDL format into a Design FrameworkII
database format—a data format that can be used by Cadence tools.
If you convert your VHDL design into schematics, you can edit the schematics with the
Composer schematic editing tool. A separate product is available that converts VHDL
structural architecture into schematics compatible with the Concept™ design entry product.
VHDL In is also available with the Composer and Synergy™ products. If you do not have
Composer and Synergy to generate schematics, you can buy the Composer Schematic
Generator product, which includes the VHDL In and Verilog In™ tools.
VHDL In uses the Leapfrog Analyzer and the dfIIbase software. All designs are analyzed by
Leapfrog Analyzer before they are brought into VHDL In.
Leapfrog Composer
Analyzer Schematic Entry
Structural Netlists (.ast files) VHDL In
into
from Synthesis
Tools such as Cadence
Synergy Netlist view Back End
VHDL Source Tools
Files (.vhd
files)
Text Editor VHDL Text View
The .ast (abstract syntax tree) file generated by Leapfrog Analyzer is an intermediate
representation of a VHDL design. The .cdb file generated by VHDL In is in CDBA (Cadence
database access) format, the design data storage format used by Cadence tools.
where
To find out where the Cadence software is installed, enter cds_root at the UNIX command
prompt.
cds_root is a utility that identifies the location of Cadence installation hierarchies. Startup
scripts typically use it to find the location of Cadence installation hierarchies before starting
tools.
cds_root uses the executableName argument to identify the installation hierarchy of the tool
and to check if it is a legal hierarchy. If you specify the full path to the executable, then
cds_root checks only that location to see if it is a legal hierarchy.
If the executable is not found in $PATH or is not located in the hierarchy, cds_root displays the
following error message:
Error! Cant determine installation root from PATH
Starting Options
You can start VHDL In in two ways:
■ From the menus in the Design Framework II Command Interpreter Window (CIW).
■ In the standalone mode Chapter 2, “Getting Started with VHDL In,” describes these
options in more detail.
Input Requirements
Before starting VHDL In in Design Framework II, you need these input elements:
■ The VHDL design files
■ The correct library environment
Conversion Limitations
Due to some fundamental differences between the text files used in VHDL and the structural
component files used in schematics and layout, VHDL In cannot convert some elements of
IEEE standard 1076 VHDL into Composer schematics or CDBA format netlists. VHDL In can
convert some elements of a VHDL design, but only after you modify them. VHDL In makes
certain assumptions when it converts VHDL elements into Cadence format.
Chapter 6, “Conversion Issues,” details the constructs in VHDL that can or cannot be
converted, as well as the limitations and by-products of the conversion process.
2
Getting Started with VHDL In
Introduction
You can start VHDL In two ways:
■ From the Command Interpreter Window (CIW), the Cadence graphical user interface for
Design Framework II
■ In standalone mode, at the command prompt
Either way, you must set up your library environment before you can use VHDL In.
■ The five required reference libraries: basic, sample, US_8ths, std, and ieee
■ Additional libraries you need
You can add the required reference libraries and additional libraries you need by using a text
editor or by using the Design Framework II CIW.
You can create a new library in the CIW without creating a cds.lib file beforehand. In this
case, the Library Manager tool creates a cds.lib file in the directory where you started
VHDL In. The Library Manager tool creates additional entries in the cds.lib file for each
library or design that you add or create in the CIW.
The syntax of entries for required and additional libraries in the cds.lib file is the same
whether the entries are created by you or by the Library Manager tool. The syntax for an entry
is
DEFINE library_name absolute_path/library_name
Be sure to enter the paths to the libraries in the same case as they occur, so that these
libraries can be found.
1. Use your text editor to create the cds.lib file and open it for editing.
This example shows the command for the vi editor.
vi cds.lib
2. Include the following set of reference libraries in your cds.lib file.(Use uppercase and
lowercase characters exactly as you see here.)
<your_install_dir> is a variable signifying the particular path you use for the
Cadence installation directory.
DEFINE basic <your_install_dir>/tools/dfII/etc/cdslib/basic
DEFINE sample <your_install_dir>/tools/dfII/samples/cdslib/sample
DEFINE US_8ths <your_install_dir>/tools/dfII/etc/cdslib/sheets/US_8ths
DEFINE std <your_install_dir>/tools/leapfrog/files/std
DEFINE ieee <your_install_dir>/tools/leapfrog/files/IEEE
If you create a new library in the New Library form without creating a cds.lib file
beforehand, the Library Manager tool creates a cds.lib file in the directory where you
started VHDL In. The Library Manager tool creates entries in the cds.lib file for each
library or design that you add or create in the CIW.
If you use other Cadence applications (and have more than one cds.lib file) in addition to
VHDL In, be sure that you start Design Framework II from a directory that contains the
cds.lib file you want to use for VHDL In.
2. In the Library and Path text fields, enter the library name and path for the required
reference libraries, or for additional libraries you want to use.
Use lowercase for the IEEE library name in the Library field, but use uppercase for the
IEEE library name in the Path field. This way, you accommodate the name mapping that
Leapfrog performs on the reference libraries when it analyzes a design you are
importing.
3. Select File – Exit .
You can use the New Library form (in addition to the Library Path Editor form) to add
additional design libraries to the cds.lib file.
1. Enter in an xterm window
icds &
You can use the scroll bar in the directory window to fill in the library path field. Click on
a directory name to enter it into the path field.
3. In the field below the Directory list box, enter the path to the new library.
<your_install_dir >/xyzdesign
<your_install_dir> is a variable signifying the particular path you use for the
Cadence installation directory.
4. Click Don’t need a techfile .
Because the library does not contain layout data, you do not need a technology file.
5. Click Apply.
The form stays open, so that you can create another library.
When you create the last new library, click OK instead of Apply, to close the New Library
form.
The new library is created.
6. In the CIW, select Tools – Library Manager.
The Library Manager window opens, displaying the name of the library you just created.
7. Click on the name of the new library.
The contents of the new library (ieee ) appear in the cell display window.
This example has Show Categories turned off, and shows the references to the five
required libraries (basic , sample , US_8ths , std , and ieee ) and to the one user-defined
library cdsDefTechLib.
Note: If the basic library does not contain a patch cod symbol, or the basic library is not
defined in cds.lib, VHDL In fails to create a schematic. It creates a behavioral view instead
of a schematic.
where
the -pfn argument to the -param function indicates the name of the file that contains
parameters. The contents of this file are described in detail in Chapter 8, “Creating a
Parameter File.”
The -fn argument to the -f function indicates the path and file name of the file that
contains the names of the VHDL design unit files
<vfn1, vfn2, ...>
Caution
If you have an NC set up for ToolBox, and want to run vhdlin from the
commandline, you need to ensure that while running import, your cds.lib
file should not have any reference to NC libraries. It should only refer to
Leapfrog libraries. To revert back to the NC set up for ToolBox, you
should remove the references to Leapfrog libraries and include
references to the NC libraries.
Caution
All VHDL users who use the ToolBox UI are transparent to these
changes.The ToolBox will take care of the cds.lib file.
File-Import-VHDL
➤ Go to the File menu on the CIW and select File – Import – VHDL
.
The Files List Box shows only files with a .vhd suffix and all directories in the local
directory.
All the different fields on the form are explained in Chapter 3, “The VHDL Import Form.
The other method of accessing the VHDL Import form through the CIW is with the VHDL Tool
Box form
Go to the Tools menu in the CIW and select Tools – VHDL Tool Box
.
Commands Setup
Check Cellview
Check Hierarchy
Simulate
Synthesis
Sim Compare
Create Test Bench...
Import...
Close
SKILL Function
vhdlHiImport()
Enter this SKILL function at the CIW command prompt to open the VHDL Import form
.
3
VHDL In Forms
The parameters corresponding to many options and fields in this form are described in
Chapter 8, “Creating a Parameter File.”
File Name is the field where you enter the name of a source file to import, a directory path
to select files from, or a file name pattern to match.
Files List box either lists all files that match the file name pattern or lists subdirectories
located in the current directory.
Target Library Name is the field where you enter the name of the library where the results
from the import process are to be stored.
Import Files List box lists the VHDL files chosen from the Files List Box field for importing.
Add adds selections from the Files List Box to the Import Files List Box.
Summary File is the field where you enter the name to be given to the file that contains the
combined contents of the log and the error files.
Import Options
Import Structural Architectures As specifies the output format that VHDL In produces
from the imported structural VHDL architectures. The default is schematic. The formats are
■ schematic generates a Composer schematic that graphically represents the VHDL
architecture
■ netlist generates a CDBA netlist that represents the connectivity of the VHDL
architecture.
■ vhdl imports the VHDL architecture as a text file to the target library.
Reference Libraries is a text field that you can use to specify the reference libraries for
symbols when generating schematics or netlists for unbound or partially bound structural
architectures. When the form first opens, this field contains the default library list basic and
US_8ths . Separate additional library names from each other with a space (as the default
libraries are).
Symbol View Name specifies the view name to use for generating symbols during the
import process. The default is symbol .
Overwrite Existing Views controls whether existing views in the target library are
overwritten by the imported data. The option is selected by default. The vhdl view is always
overwritten.
Maximum Number of Errors controls the maximum number of errors that can occur before
the import process quits. The default is 10.
Compile VHDL Views After Import is a box you click when you want your imported VHDL
files to be compiled by the Leapfrog compiler cv. The option is deselected by default.
Compiler Options is the field where you specify the Leapfrog compiler options you want to
use when you set the Compile VHDL Views After Import to on. The default is an empty field.
VHDL WORK Library Name is the field where you specify the workarea that Leapfrog
Analyzer uses to store the intermediate results of the import process (the .ast files). You can
use this work library when you want to import the design again.
Power
This option specifies the power net that VHDL In uses for power assignments in the
schematic.
Net Name is the field where you specify the net name to assign to power. The default is
vdd! VHDL In automatically appends "!" if "!" is not present in
the net name.
Value is the field where you specify the value of the power signal (net) that is replaced by the
net name you specify. The default is 1 .
Data Type is the field where you specify the VHDL data type for the power net. The default
is std_ulogic .
Ground
This option specifies the ground net that VHDL In uses for ground assignments in the
schematic.
Net Name is the field where you specify the net name to assign to ground. The default is
gnd! VHDL In automatically appends the "!" if "!" is not present
in the net name.
Value is the field where you specify the value of the ground signal (net) that is replaced by
the net name you specify. The default is 0 .
Data Type is the field where you specify the VHDL data type of the ground net. The default
is std_ulogic .
➤ On the VHDL Import form, click on the Schematic Generation Options bar at the bottom
of the form
.
Sheet Border Size is a cyclic field that controls the size of the sheet on which the schematic
is generated. If Sheet Border Size is none , then VHDL In generates a single sheet schematic.
If the Sheet Border Size is A, B, C, D, E , or F and the system cannot fit the schematic onto
one sheet, it creates a multisheet schematic. A multisheet schematic has one index sheet and
many schematic sheets. The default is none .
Because of the size of the components and the size of the sheet, VHDL In might not be able
to place the maximum number of rows on a sheet. If you specify a value that is too large for
the size of the instance symbols and the size of the sheet, VHDL In places as many rows as
it can fit on each sheet up to the maximum of 1024.
Because of the size of the components and the size of the sheet, VHDL In might not be able
to place the maximum number of columns on a sheet. If you specify a value that is too large
for the size of the instance symbols and the size of the sheet, VHDL In places as many
columns as it can fit on each sheet up to the maximum of 1024.
Font Height controls the height of the font used for pin, wire, and instance labels. The value
is in user units. Pin labels are scaled down to 75 percent of the specified size. The default is
0.0625.
Line To Line Spacing controls the spacing between two adjacent nets. The value is in user
units. The value ranges from 0.0 to 1000000.0. The default is 0.2.
Line To Component Spacing controls the spacing between a component instance and an
adjacent net. The value is in user units. The value ranges from 0.0 to 1000000.0. The default
is 0.5.
Component Density controls the number of components allowed on a single sheet in the
case of schematics that instantiate sheet borders. The value ranges from 0 to 100. The higher
the density value, the greater the number of components on one page. The default is 0.
Pin Placement controls whether pins are placed in the generated schematic on the left and
right sides only, on all four sides, or specified on a per pin basis in a pin placement file. The
default is Left and Right Sides.
Full Place and Route controls whether the generated schematic is fully placed and routed.
Disabling this option causes VHDL In to generate a schematic that is connected by name
only, which improves schematic generation performance in both time and memory. This
option is selected by default.
Optimize Wire Label Locations controls whether the location of wire labels is optimized.
Disabling this option improves schematic generation performance in both time and memory,
but might result in overlapping of names. This option is selected by default.
Ignore Extra Pins on Symbol controls the selection of symbols from the reference libraries.
If this option is specified and VHDL In finds a reference symbol with the same name as
specified in the VHDL design, the symbol will be picked up. The pins not referred will remain
unconnected in the schematic.
Note: The symbol will be picked up even if all its pins are not used.
4
Importing a Simple VHDL Design
The half adder contains the behavioral information, while the full adder is only structural. The
entities (e ) and architectures (a ) are split into separate files. The VHDL design directory
includes
full_adder.a.vhd
full_adder.e.vhd
half_adder.a.vhd
half_adder.e.vhd
or_gate.a.vhd
or_gate.e.vhd
You run VHDL In on the design three times, producing a different type of output each time.
You import the design into each of the three types of outputs:
■ VHDL text view
■ Netlist view
■ Schematic view
2. Start VHDL In from the CIW menu banner or from the VHDL Tool Box.
3. Create the VHDL design files for the full adder in the directory of your choice.
In this example, the directory used is
~/vhdlin_examples/simple_design/
full_adder.a.vhd
architecture structure of full_adder is
-- signal declarations
signal temp_sum : bit;
signal temp_carry_1 : bit;
signalosr1623
temp_carry_2 : bit;
-- local component declarations
component half_adder
port(x : in bit; y : in bit; sum : out bit;
carry : out bit);
end component;
component or_gate
port(in1 : in bit; in2 : in bit; out1 : out bit);
end component;
begin
-- component instantiation statements
U0 : half_adder
port map(a, b, temp_sum, temp_carry_1);
U1 : half_adder
port map(temp_sum, carry_in, ab, temp_carry_2);
U2 : or_gate
port map(temp_carry_1, temp_carry_2, carry_out);
end structure;
full_adder.e.vhd
entity full_adder is
port(
a : in bit;
b : in bit;
carry_in : in bit;
ab : out bit;
carry_out : out bit
);
end full_adder;
half_adder.a.vhd
architecture behavior of half_adder is
begin
process begin
sum <= x xor y after 5 Ns;
carry <= x and y after 5 Ns;
wait on x,y;
end process;
end behavior;
half_adder.e.vhd
entity half_adder is
port(
x : in bit;
y : in bit;
sum : out bit;
carry : out bit
);
end half_adder;
or_gate.a.vhd
architecture behavior of or_gate is
begin
process begin
out1 <= in1 or in2 after 5 Ns;
wait on in1,in2;
end process;
end behavior;
or_gate.e.vhd
entity or_gate is
port(
in1 : in bit;
in2 : in bit;
out1 : out bit
);
end or_gate;
1. Locate the directory for the VHDL source files you want to import.
existing target library. A dialog box with an error message appears when you press
Return without specifying a target library.
5. In the Target Library Name field, enter the target library name that you want to import
the source files into (vhdl_designs ). Press Tab to finish.
To accommodate the name mapping scheme used by Leapfrog, use only lowercase
letters to name your target libraries.
6. Set the Import Structural Architectures As cyclic field to vhdl .
You can leave all other options at their default setting.
7. In the Reference Libraries field, add sample , std , and ieee to the list.
8. Click Apply.
Clicking Apply instead of OK keeps the form open. You can then start the next example
of importing to a netlist without having to complete the list of libraries in the Reference
Libraries field again or having to add the designs to the Import Files List Box again.
The system imports the design file names into the target library you specified. You can
use the VHDL Tool Box form or the Library Manager form to read or edit the cell view of
each file.
Example: Simple for generate clause with locally static expression. Instantites
component inside the generate block.
library datapathlib;
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE datapathlib.new_types.all;
ENTITY gen_syn IS
PORT(a1 : IN std_logic_vector(3 DOWNTO 0);
a2 : IN std_logic_vector(3 DOWNTO 0);
z : OUT std_logic_vector(3 DOWNTO 0));
END gen_syn;
1. Enter the library name and the directory where you want the library located.
Put the Cadence versions of the VHDL design, the netlist, and the schematic in ~/
vhdl_designs, ~/netlist_library, and ~/sch_lib, respectively.
Select Don’t need a techfile , and click OK
.
Select this.
After the new library is created, you must go back to the VHDL Import form and click Apply
again to import the file names you specified into the target library you just created.
If you click Yes to either prompt, the VHDL Tool Box status window appears, displaying the
error or log file.
In addition to viewing the log file for a successful import process, you have the option of
viewing the resulting cellviews of your design.
duluth is part of the Leapfrog software that analyzes the VHDL code.
If you receive an error message like the one displayed, go back to the VHDL Import form and
try importing a different combination of files. In this example, leaving out the OR gate design
file lets the import process finish successfully. The order in which you specify files to import
does not have an impact on the import process.
When the import process has finished successfully, you can examine the log file to check the
results of importing to VHDL. The log file contains information about the number of files
processed by VHDL In, the number of files attempted to be imported by VHDL In, the design
units imported, and their view types. The log file also mentions the files that VHDL failed to
import, and the reason for the failure.
The following log file was generated for a successful VHDL to VHDL import process. You can
view the log file through the VHDL Tool Box status window labeled VHDL Tool Box Log File .
The window refers to the VHDL Tool Box even if you start from the CIW
.
The contents of the log file and the error file are saved with the name you had typed in the
Summary File field in the VHDL Import Form. The default value of Summary Field is ./
vhdlin.summary.
Once the import process has finished successfully, you can examine the cellviews in the
target library (such as the entity cellview) to check the results of importing to a VHDL cell.
1. In the CIW, select Tools – Library Manager.
The Library Manager window opens.
2. In the Library list box, click on the vhdl_designs library name .
The Cell list box displays two cells for the vhdl_designs library: full_adder and
half_adder.
3. In the Cell list box, click on the full_adder cell name.
The View list box displays three cellview names for the full adder design: entity,
structure , and symbol.
4. In the View list box, click on the entity cellview file name.
A text editor window opens, displaying the contents of the entity cellview: a text file and
directory for the entity file for the full_adder design.
The Language Sensitive Editor, or LSE (emacs) is the example text editor shown here
(displaying the entity cellview for a half_adder design)
.
Contents of vhdl.vhd
file
If you are using LSE and the text editor window is empty, use the File – Open command
to open ~/vhdl_designs/full_adder/entity.
VHDL In places VHDL design text files in the vhdl.vhd file. You can open the
vhdl.vhd file for viewing to verify the contents of the file.
5. To open the vhdl.vhd file for viewing, double-click on the vhdl.vhd file name.
The top half of the LSE text editor window displays the contents of the vhdl.vhd file, and
the bottom half shows the files and directories in the entity directory.
Importing to a Netlist
In this section, you import the full adder design as a CDBA format netlist. If the VHDL Import
form is still open from the first example, you can skip steps 1 through 3.
When you click Apply instead of OK , the form remains open. You can then start the
procedure Importing to a Schematic at step 3.
VHDL Import
Set to netlist.
Select this.
After the new library is created, you must go back to the VHDL Import form and click Apply
again to begin the import process.
If you click Yes to either prompt, the VHDL Tool Box status window appears, displaying the
error or log file.
In addition to viewing the log file for a successful import process, you have the option of
viewing the resulting cellviews of your design.
For examples of dialog boxes displaying error messages, see Chapter 7, “Error Messages.”
When the import process has finished successfully, you can examine the log file to check the
results of importing to a netlist. The log file contains information about the number of files
processed by VHDL In, the number of files attempted to be imported by VHDL In, the design
units imported, and their view types. The log file also mentions the files that VHDL failes to
import, and the reason for the failure.
You can view the log file through the VHDL Tool Box status window labeled VHDL Tool Box
Log File
.
The contents of the log file and the error file are saved with the name you had typed in the
Summary File field in the VHDL Import Form. The default value of Summary Field is ./
vhdlin.summary.
Once the import process has finished successfully, you can examine the cellviews in the
target library (such as the structure cellview) to check the results of importing to a netlist.
1. In the CIW, select Tools – Library Manager.
The Library Manager window opens.
2. In the Library list box, click the netlist_library library.
The Cell list box displays three cells: full_adder, half_adder, and or_gate .
3. In the Cell list box, click the full_adder cell name to display its cellviews.
The View list box displays three cellview names: entity, structure , and symbol
1. Set Library to
netlist_library.
2. Click on full_adder to
display its cellviews.
3. Double-click on
structure to display its
directory.
4. Click the structure cellview name to display the structure directory containing the netlist
files.
VHDL In places the VHDL design netlist in the netlist.cdb. These files are in the
CDBA format required by Cadence tools. The following is the structure directory under
the full_adder component.
drwxrwxr-x 2 user 512 Jun 30 16:16 .
drwxrwxr-x 5 user 512 Jun 30 16:16 ..
-rw-rw-r-- 1 user 40 Jun 30 16:16 master.tag
-rw-rw-rw- 1 user 1483 Jun 30 16:16 netlist.cd%
-rw-rw-rw- user 1525 Jun 30 16:16 netlist.cdb
-rw-rw-r-- 1 user 86 Jun 30 16:16 pc.db
-rw-rw-rw- 1 user 532 Jun 30 16:16 prop.xx
-rw-rw-r-- 1 user 2968 Jun 30 16:16 vhdl.ast.a.203
lrwxrwxrwx 1 user 54 Jun 30 16:16 vhdl.vhd -> ../../..../../../usr1/
vhdlin/designs/full_adder.a.vhd
Importing to a Schematic
In this section, you import the full adder design as a Composer schematic. Start at step 3 if
you left the VHDL Import form open from the previous example.
Although you are generating a schematic in this example, you do not have to use the
Schematic Generation Options form. You are only using the default settings for
schematic generation to import this example design.
However, the form remembers the last schematic generation options used. So if you
have recently performed schematic generation, click on the Schematic Generation
Options bar to open that form and click Defaults to reset all the options, then click OK .
6. Click Apply.
When you click Apply instead of OK, the form remains open. You can then start the next
example at step 5.
➤ Enter the library name and directory, select Don’t need a techfile , and click OK .
After the new library is created, go back to the VHDL Import form and click Apply again.
If you click Yes to either prompt, the VHDL Tool Box status window appears, displaying the
error or log file.
In addition to viewing the log file for a successful import process, you have the option of
viewing the resulting cellviews of your design.
When the import process fails, you can examine the errors in the VHDL Tool Box status
window labeled VHDL Errors/Warnings.
For examples of dialog boxes displaying error messages, see Chapter 7, “Error Messages.”
When the import process has finished successfully, you can examine the log file to check the
results of importing to a schematic. The log file contains information about the number of files
processed by VHDL In, the number of files attempted to be imported by VHDL In, the design
units imported, and their view types. The log file also mentions the files that VHDL failed to
import, and the reason for the failure.
You can view the log file through the VHDL Tool Box status window labeled VHDL Tool Box
Log File . When the import process finishes, the VHDL Tool Box status window display of the
log file looks similar to this.
:
The contents of the log file and the error file are saved with the name you had typed in the
Summary File field in the VHDL Import Form. The default value of Summary Field is ./
vhdlin.summary.
Once the import process has completed successfully, you can examine the cellviews in the
target library (such as the structure cellview) to check the results of importing to a schematic.
1. In the CIW, select Tools – Library Manager.
The Library Manager window opens.
The Composer schematic editor opens, displaying the contents of the structure
cellview: a schematic for the full_adder design.
.
The structure view of the full_adder cell: a Composer schematic for the VHDL adder design.
This schematic results from using the default values for the schematic generation
options.
You can also select the symbol view of any design element and view and edit the element
symbol in the Composer Symbol Editor window.
5. In the Library Manager window, click the or_gate cell, and double-click its symbol view.
The Composer Symbol Editor window opens, displaying the symbol generated by VHDL
In for the OR gate
.
5
Importing a Complex VHDL Design (RISC
Processor Unit)
Overview
This chapter describes how you can import a larger, more complex VHDL design. This
example uses the design of an RPU (a Reduced Instruction Set Computer (RISC) Processor
Unit). The more complex design of the RISC processor unit (RPU) raises some issues that
did not come up with the simple adder design. As part of the process, you use the Schematic
Generation Options form to adjust the appearance of the final schematic.
Before you begin this example, use the Library Manager to modify your cds.lib file to
include the five minimum required libraries, basic, sample, US_8ths , std , and ieee.
The process for referencing these libraries is described in Chapter 2, “Getting Started with
VHDL In.”
The RPU design consists of I/O connection pads and the main design.
Set ImportStructural
Architectures to schematic .
Complete the list of reference libraries.
2. Double-click on entries in the Files List Box until the design directory is displayed.
To move the display up one directory, click on ../. To display the contents of a directory,
click on the directory name.
3. In the Target Library Name field, enter the name of the target library (rpulib).
4. Set the Import Structural Architectures As cyclic field to schematic .
If you do not set the schematic generation options, VHDL In draws the entire design onto one
schematic sheet of infinite size.
1. On the VHDL Import form, click on the Schematic Generation Options bar.
The Schematic Generation Options form opens.
2. Set Sheet Border Size to C.
3. In Maximum Number of Rows , enter 3 .
4. In Maximum Number of Columns , enter 6 .
5. Set the Component Density slider to 15 .
The last three options specify a reasonable number of large components that can be
placed easily on a C-size schematic.
6. Deselect Generate Square Schematics .
The standard Cadence schematic sheet frame is rectangular, so turning off this option
improves the use of schematic sheet space
.
In Maximum Number of
Columns, enter 6.
7. Click OK .
The form closes.
8. In the VHDL Import form, click OK or Apply.
A message appears in the CIW display area after the new library is created:
Created library "rpulib" as ".../vhdlin_examples/rpu_design/rpulib"
If you receive an error message, go back to the VHDL Import form. After fixing the problems
indicated, select a new list of design files to import and run VHDL In again.
The following figure is the VHDL Tool Box status window display of the beginning of the log
file for this VHDL import example. The window refers to the VHDL Tool Box even when you
start the software from the CIW. Select File – Close to close the log window
.
2. In the Library column of the Library Manager window, enter rpulib in the Library text
field and press Return or click on the rpulib library.
The Cell column displays all the cells of the RPU design elements.
3. To display the cellviews of the alu design, click on the alu cell name.
The View column displays three cellview names: dataflow, entity, and symbol .
4. Double-click on the view name symbol .
Each element in this design now has its own CDBA symbol. If you do not like how the
symbols look, you can edit them.
5. To close the Symbol Editor, select Window – Close .
VHDL In converts all capital letters in the cellview names to lowercase in the schematic.
1. In the CIW, select Tools – Library Manager.
VHDL In, following the criteria set up in the Schematic Generation Options form, has
divided the top-level design into four sheets. Sheets 1 through 3 include only I/O pads.
5. In the schematic window, select Sheet – Go To, and select Sheet 4.
Schematic sheet 4 (shown in this step) displays rpustruc and some I/O pins
.
1. In the schematic window, select Design – Hierarchy – Descend Edit , and click on
rpustruc .
The Descend form opens.
2. In the index schematic, select Sheet 6 and click OK .
The Composer Schematic Editor opens Sheet 6 of rpustruc .
The following figure shows how VHDL In has positioned a portion of the RPU design in a C-
size schematic frame and entered the design name in the information section
.
To see how VHDL In has routed nets and placed labels, press z to zoom in on one section of
the schematic.
Clock generator
16-bit buses
16-bit
counter
If you are dissatisfied with the decisions VHDL In has made, you can rerun VHDL In with
different schematic generation options, or you can use the schematic editor to make
changes to the schematic.
If you descend further into one of the design elements, you can view the entity and
dataflow (architecture) text files.
1. To exit the design, select Window – Close .
6
Conversion Issues
Introduction
Some constructs in VHDL do not map clearly and directly to an equivalent element in the
CDBA format. In these cases, certain issues arise when VHDL In converts the data. This
chapter discusses the issues and how VHDL In handles each case.
Binding Issues
A VHDL design can consist of components represented by component declarations that are
bound to actual entity/architecture pairs. In a design unit, a component instance can be
unbound, partially bound, or fully bound to entity/architecture pairs. Component declarations
can reside in a referred package that can be used across multiple designs.
VHDL allows a design to be analyzed without all components being bound. A design is ready
for import only if all of its component instances are bound or if there is a list of reference
libraries that you specify to pick up components that are not bound.
If you do not specify the binding of a component and VHDL In cannot find it in any reference
library, VHDL In creates a symbol cellview in the target library. VHDL In uses this new symbol
cellview in the schematic view generation of the design that instantiates the component.
VHDL In also creates a symbol cellview in reference libraries if the library to which the
component instance is bound does not have a symbol cellview. This feature is available when
the parameter writeInrefLibs is set to TRUE in the parameter file.
Note: You have write permissions in the specified library.
VHDL In creates a symbol cellview for unbound components only if there is no consistent
symbol cellview for the cell in the list of reference libraries and the target library. VHDL In
searches for the symbol cellview in the target library first.
The two levels of binding produce ambiguities in designs. The examples that follow include
descriptions of how the import process handles each case.
For every instance, VHDL In adds the following property to specify which entity/architecture
pair an instance is bound to:
Property Name: vhdlArchitectureName
Property Type: string
Property Value: libraryName.entityName(architecture name)
in1 : IN std_logic;
in2 : IN std_logic;
Result : OUT std_logic
);
END and2;
-- BINDING SPECIFICATIONS
COMPONENT sn74And2
PORT (in1, in2: IN std_logic;
Result: OUT std_logic
);
END COMPONENT
COMPONENT dn84And2
PORT (in1, in2: IN std_logic;
Result: OUT std_logic
);
FOR ALL: sn74And2 USE ENTITY WORK.and2(TechSn74);
FOR ALL: dn84And2 USE ENTITY WORK.and2(TechDn84);
In the above case, the same symbol ( and2 ) is used for all instances of the component.
For all resource libraries visible through the library clause, VHDL In creates a property on the
generated schematic with the following attributes.
Property Name:vhdlLibraryNames
Property Type:ilList of strings
Property Value:(<library name>...)
Example property names for a resource library are ieee and myTestLib.
For all packages visible to the architecture, VHDL In creates a property on the generated
schematic with the following attributes.
Property Name:vhdlPackageNames
Property Type:ilList of strings
Property Value:(<complete package name>...)
A search for port A in the symbol for entity Example succeeds in VHDL In while matching
for symbol pins.
performs a case-insensitive search in the sn74 library for the and2_gate cell.
If you want to preserve the case of an identifier when searching a component symbol in a
CDBA reference library, you can
■ Use escape characters ( \ \ ), if you have specified binding for the component symbol you
want to search
If you have specified binding for the component symbol you want to search, you must
surround the identifier with escape characters ( \ \ ).
For example, to make sure that VHDL In searches for the component INV0 as INV0 rather
than inv0 in the CDBA reference library, indicate the component as \INV0\.
Include the following statement in your parameter file if you want the component search to be
case insensitive:
caseSensitivity := False
VHDL In will pick up the component from the CDBA reference library provided the component
interfaces match.
Once you have set the case-sensitivity flag to FALSE for the search of a component symbol,
VHDL In uses the same process in searching for repeated instantiations of that component.
For example, if you specify the following instantiations for your search,
IO: IV120 PORT MAP(...
I1: Iv120 PORT MAP(...
VHDL In searches the ordered list of symbols in the target and reference libraries for both
IV120 and Iv120, and returns the first case-insensitive match.
When neither instantiation IV120 or iv120 are present in the target library or the reference
libraries, VHDL In creates a symbol for IV120 in the target library and bind the component
IV120 to that symbol.
You must use escape characters ( \ \ ) to specify a library whose name is in all uppercase
characters, even when you set the case-sensitive flag to ON.
For example, if the reference library refLib contains all the component symbols, you must use
the following two statements:
LIBRARY \refLib\;
...
...
for GB3:IV120 use entity \refLib\.IV120(schematic);
The following process occurs when you perform a case-sensitive search on a component with
no binding:
■ VHDL In generates an ordered list of symbols present in the library for the component
you want to search.
■ VHDL In searches the target library for the symbol you specified by traversing the list of
symbols and comparing each symbol listed with the symbol you specified.
■ If VHDL In does not find the symbol you specified in the target library, it searches the list
of reference libraries, using the same process it used to search the target library.
■ VHDL In performs a check on pin names corresponding to the component, searching first
the target library, then the reference libraries.
VHDL In provides more flexibility in pin name searching than it does in component name
searching.
For example, if you use the component declaration
component IV120
port(Y:out std_logic; a:in std_logic);
end component;
VHDL In will successfully find a match for the port name if IV120 is present in the
reference library, and the ports for IV120 are Y and A.
Other Issues
Signal Declarations
VHDL In can create schematic representations for only these two types of signal declarations:
■ Scalar
■ A single dimensional array of scalar
For other types of signal declarations in VHDL, there is no mapping to the Composer
database (CDBA).
Vector Nets
The Cadence netlister cannot handle vector nets which are constrained to a single
dimension, such as the following:
SUBTYPE constrained_singleDimension IS bit_vector(0 TO 9);
which is not correct VHDL. VHDL In adds a property with the following definition to indicate
VHDL data type:
Property Name: vhdlDataType
Property Type: string
Property Value: <dataType>
PACKAGE td IS
TYPE foo is (apples, bananas, oranges, peaches);
TYPE index_foo_vector is array (foo range <>) of bit;
END td;
USE work.td.all
ENTITY e IS
PORT (a: IN index_foo_vector (apples to oranges));
END e;
ARCHITECTURE a OF e IS
COMPONENT foo
PORT (a: in bit);
END component;
BEGIN
inst_apples: foo PORT MAP(a (apples));
inst_bananas: foo PORT MAP(a (bananas));
inst_oranges: foo PORT MAP(a (oranges));
END a;
a<0:2>
<0>
Inst_apples
<1>
Inst_bananas
<2>
Inst_oranges
Buffer Ports
VHDL In maps buffer ports in VHDL to INOUT ports on Composer schematics and symbols
and adds the following property.
Property Name: vhdlPortType
Property Type: string
Property Value: <portType>
An example function name is bitToMvl for the port map ( bitToMvl (A) => Net A,
...
Attribute Specifications
Schematic generation deals with attribute specification on an object in an architecture by
creating the following property on the corresponding object in the schematic.
Property Name: vhdlAttributeDefList
Property Type: ilList of strings
Property Value: (<attribute name>, <attribute value>)
For example, the property for the specification ((Capacitance \ 15.2F \ )) on net
net21 having the attribute Capacitance of net21: signal is 15.2F.
Importing Generics
A generic clause declared in a VHDL entity is mapped as a property called
vhdlGenericDefList on the symbol. The syntax of such a property is:
Property Name: vhdlGenericDefList
Property Type: ilList
Property Value: ((<name><type>[<value>])...)
The Edit Component CDF form displays the various options for displaying the generics. You
can choose the CDF Selection default value, Cell, and specify the Library Name and the cell
name of the cell which contains the generic clause. Next, you select the CDF Type to be Base.
This will display any generics specified in the VHDL entity description of the cell with their
default values.
The cell CDF parameters are inherited by the corresponding component instantiations as
CDF Properties. Therefore they can be viewed by selecting the component in the schematic
opened through the Library Manager and selecting the Edit Properties button.
In case the component instance has a generic map clause giving its own value for the
generic, this value overrides the value inherited from the cell.
Component Declarations
In VHDL, a component declaration can exist in an architecture. It has to be present in the one
of the referred packages or architecture declarations. It is an error in VHDL to have the same
component declared in two places. The VHDL netlister does not support such cases. VHDL
In adds the following property for instances of components whose declaration does not exist
inside an architecture.
Property Name: vhdlPackageComponents
Property Type: ilList of strings
Property Value: (<componentName>...)
Port Maps
If a port map other than a simple port map is present on a binding specification, VHDL In
imports the module as a VHDL view. This is necessary because the port map on the binding
specification has no relevant abstraction in CDBA.
For imported simple concurrent assignment statements, VHDL In uses an instance of a patch
symbol. The patch expression for such an instance is
Connection Expression 0:size-1 0: size-1.
You need to supply the enumeration literals designated for power and ground.
switches the output to a Cadence VHDL text cellview and issues warnings that other
conversions are not possible.
The following section describes the structural VHDL constructs that VHDL In cannot convert
into CDBA objects. Check your design for these constructs, and try to change them or remove
them before importing the design.
VHDL ports have five modes: i n, out, inout, linkage, and buffer, while CDBA
allows three port modes: in, out, and inout.
Ports of mode in, out and inout in VHDL are directly mappable to corresponding ports
in CDBA.
In VHDL, you can associate ports of mode buffer with only a signal or with only ports of
mode buffer. In VHDL, modes inou t and buffer have the same characteristics, but
you can update ports of mode inout with zero or more sources, while you can update ports
of mode buffer with at most one source. Therefore, VHDL In maps ports of mode buffer
to ports of mode inout in CDBA and associates properties with them to indicate that these
are buffer ports.
In VHDL, you can associate ports of mode linkage with ports of any mode. However, the
value of the interface object can be read or updated only by appearing as an actual to an
interface object of mode linkage , and no other reading or updating of the value is
permitted. VHDL In cannot map ports of mode linkage to the modes of a CDBA port.
The following VHDL example shows constructs that are problematic for VHDL In and
describes their resolution.
type multi_dim_array is array(1 to 10, 1 to 10) of bit;
type rec_type is record scalar_element: bit; vector_element:
multi_dim_array; end record;
Constructs in Architectures
VHDL In cannot convert the following VHDL constructs that occur in an architecture body.
■ Binding specifications other than simple ones
■ Disconnection specifications
■ Signal declarations of these types:
❑ Arrays of composite type
❑ Records
❑ Declarations that are not locally static
■ Concurrent versions of these statements:
❑ Process statements
❑ Procedure calls
❑ Assertion statements
❑ Complex signal assignment statements
❑ Generate statements
❑ Blocks with guard expressions
■ Primary units with inconvertible entities
Actual expressions associated with the formal part can be signal-valued attributes. Signal-
valued attributes do not have an explicit place holder for the declaration of the signal. This
signal is related to the signal prefix of the attribute. Signal-valued attributes can occur
recursively. CDBA does not define such relationships between nets. VHDL In cannot
generate a schematic view if signal-valued attributes are associated with the formal_part
in a port map clause.
Blocks are logical partitions in VHDL design. Multiple sheet schematics in CDBA represent
mapping to blocks. Because CDBA sheets have a finite size, a block might not fit in one sheet.
The presence of guarded expressions on the block causes an implicit declaration of a signal
named guard. This signal might control the operation of a concurrent signal assignment
statement. VHDL In cannot map this behavior to objects in a CDBA schematic.
7
Error Messages
Dialog Boxes
As you use the VHDL Import form, various situations cause a dialog box to open. Each is the
result of a different problem or situation. If you enter an invalid string in a text field, VHDL In
highlights the box with a flashing border. The flashing border goes away when you enter a
valid string.
In general, when a dialog box opens, clicking OK or Cancel on the VHDL Import form closes
the box.
displaying the contents of the first error or warning file. You can also view the log file from this
status window.
Overview
All text string error messages have the following syntax:
vhdlin: *<severityCode> ,<errorNumber> <errMsgString> \n
[error Causing line] [(errorFileName), (lineNumber)]
F indicates a fatal error, W indicates a warning, and C indicates a fatal error that allows you
to continue processing. The import process finishes without importing the design on the
following two conditions:
■ On encountering the first fatal error
■ If there is at least one error of severity C after analysis is finished
add additional characters to select a single option. Examples of command line error
messages are
vhdlin: *F,5: unknown or ambiguous options (%s)
vhdlin: *F,5: Missing -param option, -param <parameter_filename> not given while
invoking the tool.
vhdlin: *F,5: -PARAM option must be followed by parameter file name.
You can use the -help option to list all valid options.
Analyzer Errors
If the import process is unable to fork the VHDL analyzer, or if the VHDL analyzer terminates
with an internal error, you might receive error messages like the following.
vhdlin: *F,5: cannot execute the VHDL analyzer (%s)
vhdlin: *F,5: VHDL analyzer execution error
If the import process is unable to run the VHDL analyzer on the design files that you want to
import, then you might need to set your UNIX search path to include the location of the VHDL
analyzer. The UNIX file name for the VHDL analyzer is indicated in the parentheses.
Memory
If no more memory is available on your workstation, or the memory is corrupted, the import
process ends and prints one of these messages:
vhdlin: *F,5: cannot allocate more memory
vhdlin: *F,5: Memory Allocation corrupted = %d.
vhdlin: *F,5: Dynamic Memory corrupted = %d.
Consult your system administrator to increase the size of memory on your machine. The
import process should not corrupt your memory. If this happens, call Cadence Customer
Support.
General Errors
If the system cannot open a file specified for reading or writing by the import process, you see
this message.
vhdlin: *F,5: cannot open specified file (%s) for %sing.
Whether you are looking at an error file or a log file, you can use the same menu of commands
under File in the window menu banner.
The first two commands are not available (shaded out) if you are looking at the log file of a
successful importation, or if you are looking at the only error file.
Next Error File takes you to the next error file. If you are viewing a log file, this command
takes you to the corresponding error file for the same design.
Log File does nothing if you are already looking at the log file. This command takes you to
the log file if you are looking at the error file.
Search opens the following form, which prompts you for a character string to search for.
.
Save As opens the following form, which lets you type in a file name for saving the current
data.
.
Print opens the following form, which lets you print the error or log file.
.
The most common errors are caused by the wrong combination of design files selected for
importation. Typically, a critical file is missing, or you imported too many files.
8
Creating a Parameter File
Here is a long parameter file. This file supports the conversion of a VHDL adder design into
a Composer schematic.
logFileName := /tmp/vhdlImLob14298
errorFileName := /tmp/vhdlinErb14298
importLibraryName := adder
inputPinSymbol := basic ipin symbol
outputPinSymbol := basic opin symbol
inoutPinSymbol := basic iopin symbol
contAssignSymbol := basic patch symbol
ignoreContassFunc := FALSE
writeInRefLibs := TRUE.
structuralViewType := schematic
referenceLibraries := basic,US_8ths
symbolViewName := symbol
overwriteExistingView := TRUE
maxError := 10
powerType := std_ulogic
powerLiterals := ‘1’
powerNetName := VDD!
groundType := std_ulogic
groundLiterals := ‘0’
groundNetName := GND!
sheetBorderSize := US_8ths Asize symbol
maxNoRows := 1024
maxNoCols := 1024
fontHeight := 0.062500
lineLineSpacing := 0.200000
lineComponentSpacing := 0.500000
componentDensity := 0
pinPlacement := left_right_boundaries_only
fullPlaceRouteSchematic := TRUE
squareSchematics := TRUE
minimizeCrossovers := TRUE
optimizeLabels := TRUE
caseSensitivity := FALSE
Description of Parameters
The following sections describe each parameter and give a sample parameter specification.
If you leave out a parameter, the system assigns it the default.
Anything that is not an integer or real number is a string. A string does not need quotes.
Trailing and preceding white spaces have no effect. Blank spaces inside strings are
preserved. You can write only one parameter specification per line. You can continue a
specification onto a second line by using a backslash (\) at the end of the first line.
logFileName. UNIX file where VHDL In places the log of the import process. The default is
vhdlin.log.
logFileName := vhdlin.log
errorFileName. UNIX file where VHDL In places any error messages that occur during the
import process. The default is vhdlin.err.
errorFileName := vhdlin.err
importLibraryName. Specifies the logical library in CDBA format where VHDL In places
the output. If you do not provide a path to this library in your cds.lib file, and if the directory
does not exist, then VHDL In creates an import library in the current working directory and
appends its definition in the cds.lib file. There is no default. You must always provide a
library name.
importLibraryName := test_library
inputPinSymbol. Specifies the symbol that VHDL In must instantiate for input pins. If you
do not specify a symbol, or VHDL In cannot find it, VHDL In cannot generate a schematic.
There is no default. You must always provide a value if you are trying to generate structural
netlist or schematic.
inputPinSymbol := basic ipin symbol
outputPinSymbol. Specifies the symbol that VHDL In must instantiate for output pins. If you
do not specify a symbol, or VHDL In cannot find it, VHDL In cannot generate a schematic.
There is no default. You must always provide a value if you are trying to generate a structural
netlist or schematic.
outputPinSymbol := basic opin symbol
inoutPinSymbol. Specifies the symbol that VHDL In must instantiate for inout pins. If you
do not specify a symbol, or VHDL In cannot find it, VHDL In cannot generate a schematic.
There is no default. You must always provide a value if you are trying to generate a structural
netlist or schematic.
inoutPinSymbol := basic iopin symbol
Corresponds to the Import Structural Architectures As Cyclic field on the VHDL Import
form.
referenceLibraries. A list of libraries that VHDL In searches for the symbols of any unbound
instances in an architecture. If VHDL In cannot find the symbol in any reference library, it
creates a symbol in the destination library and instantiates it. The default is the import library,
which VHDL In always searches first. If you provide other libraries, VHDL In searches them
in order.
referenceLibraries := sample, basic
symbolViewName. The view name where the symbol file resides. The default view name is
symbol .
symbolViewName := symbol
Corresponds to the Symbol View Name field on the VHDL Import form.
overwriteExistingView. This option has only two valid values: TRUE and FALSE (in
uppercase or lowercase). When this parameter is TRUE, VHDL In overwrites the existing view
in the destination library. The default is TRUE.
overwriteExistingView := TRUE
Corresponds to the Overwrite Existing Views click box on the VHDL Import form.
maxError. An integer that specifies the maximum number of analysis errors per file that
VHDL In reports in case the file analysis fails. The default is 10.
maxError := 10
Corresponds to the Maximum Number of Errors field on the VHDL Import form.
powerType. This option indicates the base type of the enumeration literal. The default is
std_ulogic .
powerType := std_ulogic
Corresponds to the (Power) Data Type field in the Power section on the VHDL Import form.
powerLiterals. This option indicates which literal values on the LHS of a continuous
assignment statement specify a power net. The default is ‘1’.
powerLiterals := ‘1’, ‘H’
Corresponds to the (Power) Value field in the Power section on the VHDL Import form.
powerNetName. Used in CDBA to indicate a power net. If you forget to put an exclamation
point (!) at the end of the name, VHDL In automatically adds one. The default is "VDD!"
powerNetName := “VDD!”
Corresponds to the (Power) Net Name field in the Power section on the VHDL Import form.
groundType. This option indicates the base type of the enumeration literal. The default is
std_ulogic .
groundType := std_ulogic
Corresponds to the (Ground) Data Type field in the Ground Section on the VHDL Import
form.
groundLiterals. You can use this option a second time to indicate which literal values on the
left-hand side (LHS) of a continuous assignment statement specify a ground net. The default
is '0'.
groundLiterals := ‘0’, ‘L’
Corresponds to the (Ground) Value field in the Ground section on the VHDL Import form.
groundNetName. You can specify this parameter a second time to indicate a ground net in
CDBA. If you forget to put an exclamation point (!) at the end of the name, VHDL In
automatically adds one. The default is "GND!"
groundNetName := “GND!”
Corresponds to the (Ground) Net Name field in the Ground section on the VHDL Import
form.
sheetBorderSize. The frame symbol used for the sheet border. There is no default. If you
do not define this parameter, no order is instantiated.
sheetBorderSize := US_8ths Asize symbol
Corresponds to the Sheet Border Size cyclic field on the Schematic Generation Options
form.
maxNoRows. An integer that specifies the number of components that VHDL In can place
in one row of a schematic page up to a maximum of 1024. This parameter is required only if
you specify a sheet border. The default is 1024.
maxNoRows := 1024
Corresponds to the Maximum Number of Rows field on the Schematic Generation Options
form.
maxNoCols. An integer that specifies the number of components that you can place in one
column of a schematic page. This parameter is required only if you specify a sheet border.
The default is 1024.
maxNoCols := 1024
fontHeight. A real number that specifies the height of wire labels in user units. You must use
Composer to specify which user units you are using. Pin labels are 75% of the specified
height. The default is 0.0625.
fontHeight := 0.0625
Corresponds to the Font Height field on the Schematic Generation Options form.
lineLineSpacing. A real number, representing the space, in inches, between two adjacent
nets. The range is 0.125 to 0.625 inches.
lineLineSpacing := 0.2
Corresponds to the Line to Line Spacing field on the Schematic Generation Options form.
Corresponds to the Component Density sliding field on the Schematic Generation Options
form.
pinPlacement. Specifies the pin placement for the schematic view. Valid options are
■ left_right_boundaries_only
■ all_boundaries
■ file, pinPlacementFileName
pinPlacement := all_boundaries
The pin placement file must consist of single-line statements that use the following syntax:
componentPinPlacement ::= entityName, dir, pin_name_list
where
dir = top | bottom | left | right
and
pin_name_list = <pinName> [, <pinName>]
Corresponds to the Pin Placement section on the Schematic Generation Options form. This
section has the radio buttons Left and Right Sides, All Sides, and Pin Placement File.
Corresponds to the Full Place and Route click box on the Schematic Generation Options
form.
Corresponds to the Generate Square Schematics click box on the Schematic Generation
Options form.
minimizeCrossovers. If you set this parameter to TRUE, VHDL tries to enhance the
aesthetic quality of the schematic by minimizing net crossovers. This slows down the
schematic generation. For large designs, the slowdown is noticeable, while the improvement
in aesthetics might not be so evident. The default is TRUE.
minimizeCrossovers := TRUE
Corresponds to the Minimize Crossovers click box on the Schematic Generation Options
form.
optimizeLabels. If you set this parameter to FALSE, VHDL In places net labels more rapidly.
This could result in overlapping label names. The default is TRUE.
optimizeLabels := TRUE
Corresponds to the Optimize Wire Label Locations click box on the Schematic Generation
Options form.
The use of this parameter has certain restrictions. For more detailed information on the issues
related to case-sensitive search, see Chapter 6, “Conversion Issues.”
work_file. If you set this parameter to a library name, VHDL In will take this as the work
library where the analyzed data will be created. The default is the target library.
work_file := my_work_lib
Corresponds to the VHDL Work Library Name field on the Schematic Generation Options
form.
9
VHDL In Standalone Options
Introduction
This appendix describes the options you can use in VHDL In standalone mode. You can use
any of these options with additional options except the -help and -version options. Use the
-help or -version option alone.
where
<VHDL source files> Specifies the VHDL source files you want to import, using the
options you specified.
Caution
If you have an NC set up for ToolBox, and want to run vhdlin from the
commandline, you need to ensure that while running import, your cds.lib
file should not have any reference to NC libraries. It should only refer to
Leapfrog libraries. To revert back to the NC set up for ToolBox, you
should remove the references to Leapfrog libraries and include
references to the NC libraries.
Caution
All VHDL users who use the ToolBox UI are transparent to these
changes.The ToolBox will take care of the cds.lib file.
The syntax is
vhdlin -help <VHDL In command>
where
@(#)$CDS: vhdlin version 4.4.1 11/22/96 09:44 (darbari) $: (c) Copyright 1994-
1995. Cadence Design Systems, Inc.
Usage: vhdlin -param <paramFileName> -f <fileName> <vhdlSourceFileNames>
Options are:
-HELP --Prints this message
-VERSION --Prints the version number
-NOCOPYRIGHT --Suppress printing of copyright banner
+NOXTRSCH --Do not extract
-CDSLIB <arg> --Name of the cdslib file
-COMPILE --Compile the functional cellviews
-WORK <arg> --Specifies the VHDL WORK library
-SPEEDUP --Speeds up VHDL In runtime; use only if entity source
files precede architecture files.
-IGNOREEXTRAPINS --Ignore extra pins to pick reference symbols
-PARAM <arg> --Name of the schematic parameter file
-F <arg> --Use to specify multiple VHDL source files.
The syntax is
vhdlin -version
where
The syntax is
vhdlin -nocopyright
The syntax is
vhdlin -param param_file +noxtrsch entity_file.vhd architecture_file.vhd
For example, to suppress the display of extraction errors when you import files for the full
adder design (used in Chapter 4, “Importing a Simple VHDL Design”), use this command:
vhdlin -param_file -+noxtrsch full_adder.e.vhd full_adder.a.vhd half_adder.e.vhd
half_adder.a.vhd or_gate.e.vhd or_gate.a.vhd
The syntax is
vhdlin -cdslib <your cds.lib file>
The syntax is
vhdlin -compile
Use this option to prepare functional cellviews for simulation. In this process, imported
designs are analyzed in a target library (library of imported designs), whether or not the target
library is managed by TDM.
The syntax is
vhdlin -work <work library>
The syntax is
vhdlin -param_file param_file -speedUp entity_file.vhd
architecture_file.vhd...
For example, if you want to import the following entity and architecture files for a top-level
design:
block_entity.vhd
block_arch.vhd
top_entity.vhd
top_arch.vhd
where
Notice how each entity file is listed before its corresponding architecture file. This restriction
is not applicable if you are running VHDL In without the -speedUp option.
The syntax is
vhdlin -param param_file
where
where
The syntax is
vhdlin -f <filename>
where
<filename> is the name of the file containing the source file names.
You must import the entity files before the architecture files.
For example, if you want to import four files at the same time, use the command
vhdlin -param param_file -f file
block_entity.vhd
block_arch.vhd
top_entity.vhd
top_arch.vhd
The Team Design Manager User Guide gives more detailed information about the process of
managing libraries with TDM.
You can also use TDM to manage the libraries you import into VHDL In. When started, VHDL
In first determines whether an import library is managed by TDM.
In TDM operation, specify a work area other than VHDL In import library so that analyzed
intermediate data does not get checked in along with the design data created by VHDL In.
The file is now managed by TDM for successive runs of VHDL In.
or,
DEFINE CVOPTS -v93
or,
DEFINE CVOPTS -comp
Glossary
analysis
Compilation of the VHDL source code.
architecture
Describes the implementation of an entity. The architecture specifies to the compiler
what the device actually does, and how it achieves this. A single entity can have several
different architectures, and each architecture must have an associated entity.
.ast, AST
Abstract syntax tree. An intermediate representation of a design produced by a VHDL
analyzer.
behavioral constructs
VHDL expressions that describe the behavior of a component.
binding specification
The assignment of specific components to specific entities. Configurations control
binding.
CDF
Component Description Format. A system for dynamically changing and storing
parameters and displaying information for components and sets of components for
different versions (levels) of designs.
CDBA
Cadence database access, the design data storage format used by Cadence tools.
cell
The Cadence software representation of a design element or component. A component
of a design; a collection of different aspects (representations) of the component’s
implementations, such as its schematic, layout, or symbol representations. A design
object consisting of a set of views that can be stored and referenced independently. A
cell can include other cells, forming a hierarchical design. A cell is an individual building
block of a chip or system. In the database, a cell contains all the cellviews of that cell.
An inverter and a buffer are examples of a small cell. A decoder register, ALU
(arithmetic logic unit), memories, complete chips, and printed circuit boards are
examples of large cells.
cellview
A specific representation (view) of a cell. A particular representation of a particular
component, such as a D flip-flop’s physical layout or a NAND gate’s schematic symbol.
A database object containing all the information unique to a particular representation of
a particular component. See also view.
CIW
Command Interpreter Window, the main Design Framework II window within the
Cadence software.
.cod
Short for code (machine instruction streams).
compilation
See analysis.
component
A fundamental unit within a system that encapsulates behavior or structure (also known
as an element ). A cell, with cellviews and associated CDF.
configuration declaration
Selects which units are used in each level of the design hierarchy.
construct
A statement or basic element in a programming language.
context clause
A statement in a design unit that identifies which elements in which libraries the design
unit references.
cyclic field
A button on a form that displays a list of valid options when you hold a mouse button
down on top of it. For example, one cyclic field button enables you to select the units of
measurement, and lists inches, centimeters, mils, or microns.
Design FrameworkII
The set of functions, commands, windows, menus, and databases that comprise the
entire graphics environment, beginning with the CIW.
design unit
The basic building blocks of a VHDL design, including entity, architecture, package,
package body, and configuration declarations.
destination library
The CDBA format library where the imported design is placed.
entity
The interface to a component. Entities communicate through generic devices and ports.
entity declaration
Describes the interface to a component. Entities communicate through generic devices
and ports.
enumeration literal
form
A window or dialog box enabling you to specify information and various options
pertaining to a specific command or menu item. The options take effect when you click
on OK or Apply.
form field
The area on a form where you indicate values, names, and selections.
hierarchy
The nested design levels, such as instances within a cell. By default, you open the top
level in the hierarchy when you open a cellview.
IEEE
Institute of Electrical and Electronic Engineers.
instance
A copy of a master symbol in a design.
IR
Intermediate representation.
Leapfrog
Cadence’s VHDL analyzer and simulator.
LHS
Left-hand side.
library
A logical collection of cells, views, and technology information. A physical collection of
files and directories that can reside anywhere in the file system. A library can be shared
by all users and controlled by a single person.
Library Browser
The Cadence window displaying the list of available libraries in your search path as well
as any open libraries. You can search through your libraries, cells, views, cellviews, and
versions with the Library Browser.
LSE
Language Sensitive Editor. A text editor with features specific to one programming or
design language, such as syntax checking.
menu banner
The rectangular area across the top of a window. It contains menus, such as Open and
Design Manager.
netlist
The cells and interconnections that comprise the logical design of a circuit.
OSS
Open Simulation System.
parameter
A characteristic of a component.
PI
Procedural Interface.
resource library
A library that contains library units that are referenced in the design unit undergoing
analysis. While there can be only one working library, there can be many resource
libraries. Resource libraries are referenced by designs.
RHS
Right-hand side.
RISC
Reduced Instruction Set Computer.
RPU
RISC Processor Unit.
SKILL
A proprietary Cadence programming language based on over 1,200 functions. Each
function follows a standard SKILL syntax and acts on a particular data type or data
object.
SKILL function
The fundamental element in the SKILL language. An operation to be performed (usually
specific to Cadence software), usually followed by the items or data objects that the
operation is to be performed on.
SIR
Structural intermediate representation.
VHSIC
Very High Speed Integrated Circuits.
VHDL
VHSIC Hardware Description Language.
view
A specific representation of a cell, such as schematic, geometric, symbolic, logical, and
routing. In the database, a view contains all the cellviews of that view. Each view can
have a viewType property that associates its it with a specific application. For example,
the view named “XYZ” could be a viewType “layout.” See also cellview.
viewType
A property of a view that associates it with a particular application. Design Framework II
recognizes a set of registered viewTypes, such as schematic and layout views.
window
In the X environment, a rectangular area on a graphics workstation that emulates a
terminal and runs an application separate from the applications in other windows.
Usually you can have several windows on your screen at one time.
working library
The library where a library unit is placed after that library unit is created from the analysis
of a design unit. There can be only one working library. The working library holds the
design itself.
K M
keywords 9 maxError parameter 109
maximum number of columns
described 36
L for large design 70
Maximum Number of Columns field 36, 70
label placement 80 Maximum Number of Errors field 32
Language Sensitive Editor. See LSE maximum number of rows
Leapfrog described 35
analyzer 12 for large design 70
case sensitivity and 83 Maximum Number of Rows field 35, 70
specifying options 32 maxNoCols parameter 110
compiler cv 32 maxNoRows parameter 110
workarea, specifying 32 memory errors 103
LHS, defined 125 menu banner, defined 126
libraries menu commands, selection conventions 8
defined 125 Minimize Crossovers field 37
design minimizeCrossovers parameter 112
creating 16 multiple sheet schematics 97
reference 16
Library Browser, defined 126
library environment for VHDL In N
contents 15
setting up 39 net routing 80
Library Manager netlist.cdb file 58
tool 16, 17, 74 netlists
window 22, 51, 63 CDBA format 52
with binding 85
with no binding 85
T
with no binding, restrictions 85 target libraries
in error or log file 105 analysis in 117
reference libraries in all uppercase 86 creating 48, 55, 61, 72
selecting VHDL source files for import 31 defined 124
setting up cds.lib file managed by TDM 117
using Library Path Editor form 17 not managed by TDM 117
using text editor 16 overwriting existing views 32
sheet border size 35 specifying names for 31
Sheet Border Size field 35, 70 Target Library name field 31
sheet border size for large design 70 TDM
sheet space for large design 70 checking VHDL library into 120
sheetBorderSize parameter 110 workarea
signal declarations 87, 96 specifying 32
SIR, defined 127 text editors 52
SKILL text files 52
defined 127 textual cellview of half adder design 52
functions 28 textual cellviews. See functional cellviews,
syntax conventions 10 compiling
specifications top level design 77
binding 96 transferring files to Import Files List Box 53
disconnection 96
specifying output format for imported
files 31
specifying schematic generation
U
options 70 unbound components, symbol cellview
-speedUp option 118 for 82
squareSchematics parameter 112 unconstrained arrays 94
standalone mode 39
starting VHDL In 13
in Design Framework II
requirements 14
V
in standalone mode 22 v 92
with Design Framework II 23 vector nets 87
structuralViewType parameter 108 vectors with noninteger indices 87
structure cellview for full_adder design 63 Verilog files 69
Symbol Editor Verilog In tool 12
accessing 73 -version option 114, 116
window 64 VHDL
symbol view 64 case sensitivity 83
for alu 74 constructs, structural
of a cell 73 nontranslatable 93
Symbol View Name field 32 defined 128
symbols, generating 32 design files
symbolViewName parameter 108, 109 example of 40
Synergy 12 imported, compiling 32
syntax conventions 9 design libraries
adding to cds.lib file 19
adding, using text editor 16
vhdlHiImport function 27
vhdlLibraryNames property 83
vhdlPackageComponents property 92
vhdlPackageNames property 83
vhdlPortType property 88
vhdlVecIndexType property 88
VHSIC, defined 128
view, defined 128
viewType, defined 128
W
windows
CIW 14, 15
defined 128
Library Manager 22, 51, 63
Symbol Editor 64
VHDL Tool Box status 50, 62, 73, 103
WORK library. See VHDL WORK library
-work option 118
workarea, TDM
specifying 32
working library, defined 128
writeInRefLibs parameter 108
writeInrefLibs parameter 82
Index