- •Preface
- •About This Manual
- •Other Information Sources
- •Syntax Conventions
- •Text Command Syntax
- •About the Graphical User Interface
- •Using Menus
- •Using Forms
- •HDL Synthesis Overview
- •HDL Synthesis Flow
- •Read Technology Libraries
- •Read Design Data
- •Build Generic Design
- •Save Generic Netlist
- •Synthesizing Mixed VHDL/Verilog Designs
- •Querying the HDL Design Pool
- •Using get_hdl_top_level Command
- •Using get_hdl_hierarchy Command
- •Using get_hdl_type Command
- •Building Generic Netlists from HDL
- •Multiple Top-Level Designs
- •Building Parameterized Designs
- •Verilog Modeling Styles
- •Modeling Combinational Logic
- •Register Inferencing
- •Latch Inference
- •Flip-Flop Inference
- •case Statements
- •Incomplete case Statement
- •Complete case Statement
- •Use of casex and casez Statements
- •for Statement
- •Synthesis Directives
- •Code Selection Directives
- •Architecture Selection Directive
- •case Statement Directives
- •Module Template Directive
- •Function and Task Mapping Directives
- •Set and Reset Synthesis Directives
- •Verilog Preprocessor Directives
- •Compiler Directives
- •The ‘for Compiler Directive
- •The ‘if Compiler Directive
- •The ‘eval Compiler Directive
- •The ‘{} Compiler Directive
- •Command Line Options
- •VPP Flag Attribute
- •Verilog-Related Commands and Globals
- •VHDL Modeling Style
- •Modeling Combinational Logic
- •Register Inferencing
- •Latch Inference
- •Flip-Flop Inferencing
- •Specifying Clock Edges
- •case Statement
- •Incomplete case Statement
- •Complete case Statement
- •for loop
- •Synthesis Directives
- •Code Selection Directives
- •Architecture Selection Directive
- •case Statement Directive
- •Enumeration Encoding Directive
- •Entity Template Directive
- •Function and Procedure Mapping Directives
- •Signed Type Directive
- •Resolution Function Directives
- •Type Conversion Directives
- •Set and Reset Synthesis Directives
- •Reading VHDL Designs
- •Using Arithmetic Packages From Other Vendors
- •Switching between VHDL’87 / VHDL’93
- •Reusing Previously Analyzed Entities
- •Modifying Case of VHDL Names
- •Writing VHDL Netlists
- •Selecting Bit-Level Representation
- •Selecting Between VHDL’87 and VHDL’93
- •Referring to VHDL Packages in Netlists
- •Writing Component Declarations
- •Hierarchical VHDL Designs
- •Component Instantiations and Bindings
- •Restrictions on Entities with Multiple Architectures
- •Precedence Rules for Architecture Selection
- •VHDL-Related Commands and Globals
- •Finite State Machine Overview
- •BuildGates Synthesis and Finite State Machines
- •Extracting the State Transition Table for the FSM
- •Viewing the State Transition Table for the FSM
- •FSM Optimization Features
- •Unreachable State Removal
- •State Assignment or Re-Encoding
- •State Minimization
- •Terminal State Check
- •Verilog and VHDL FSM Directives
- •Verilog FSM Directives
- •VHDL FSM Directives
- •FSM Coding Styles
- •Using the -reachable Option
- •Avoiding a Simulation Mismatch
- •EDIF Interface
- •Reading EDIF Designs
- •Writing EDIF Designs
- •Representing Power and Ground in EDIF
- •Net Representation for Power and Ground
- •Port Representation for Power and Ground
- •Instance Representation for Power and Ground
- •Verilog Constructs
- •Fully Supported Constructs
- •Declarations
- •Operators and Expressions
- •Partially Supported Constructs
- •Ignored Constructs
- •Unsupported Constructs
- •Summary of Verilog Constructs
- •VHDL Constructs
- •Notes on Supported Constructs
Envisia HDL Modeling Reference
B
VHDL Constructs
This appendix lists the VHDL constructs supported by the BuildGates synthesis tool and
VHDL and shows the category to which each belongs (see Table B-1). The list is subject to change and modifications are ongoing. Both VHDL 1987 and VHDL 1993 style descriptions are supported. The constructs are classified by one of the following four categories:
■Synthesized fully (Full)
■Synthesized partially or in specific contexts (Partial)
■Construct is ignored and a warning is generated (Ignored)
■Construct is unsupported and an error message is generated (No)
Table B-1 VHDL Constructs Supported in Ambit BuildGates Synthesis
Construct |
|
|
Support |
|
|
|
|
Design Entity & |
Entity Declaration |
Entity header |
Full |
Configuration |
|
Entity declarative part |
Full |
|
|
||
|
|
Entity statement part |
Ignored |
|
Architecture Body |
Architecture |
Full |
|
|
declarative part |
|
|
|
Architecture statement |
Full |
|
|
part |
|
|
Configuration |
Configuration |
Partial |
|
Declaration |
declarative part |
|
|
|
Block configuration |
Full |
|
|
Component |
Full |
|
|
configuration |
|
|
|
|
|
September 2000 |
133 |
Product Version 4.0 |
Envisia HDL Modeling Reference
VHDL Constructs
Table B-1 VHDL Constructs Supported in Ambit BuildGates Synthesis, continued
Construct |
|
|
Support |
|
|
|
|
Subprogram & |
Subprogram |
|
Full |
Packages |
Declaration |
|
|
|
Subprogram Body |
Subprogram |
Full |
|
|
declarative part |
|
|
|
Subprogram |
Full |
|
|
statement part |
|
|
Subprogram |
|
Full |
|
Overloading |
|
|
|
Resolution Function |
|
Partial |
|
Package |
Package declarative |
Full |
|
Declaration |
part |
|
|
|
Deferred constants |
Full |
|
Package Body |
|
Full |
Types |
Scalar Type |
Enumeration type |
Full |
|
Definition |
Integer |
Full |
|
|
||
|
|
Physical |
Ignored |
|
|
Floating |
Ignored |
|
Composite Type |
Array |
Full |
|
Definition |
Record |
Full |
|
|
||
|
Access Type |
|
Ignored |
|
Definition |
|
|
|
File Type Definition |
|
Ignored |
|
|
|
|
September 2000 |
134 |
Product Version 4.0 |
Envisia HDL Modeling Reference
VHDL Constructs
Table B-1 VHDL Constructs Supported in Ambit BuildGates Synthesis, continued
Construct |
|
|
Support |
|
|
|
|
Declarations |
Subprogram |
|
Full |
|
Declaration |
|
|
|
Subprogram Body |
|
Full |
|
Type Declaration |
|
Full |
|
Subtype |
|
Full |
|
Declaration |
|
|
|
Object Declaration |
Constant |
Full |
|
|
Signal |
Full |
|
|
Variable |
Full |
|
|
Shared variable |
No |
|
|
File |
No |
|
Alias Declaration |
|
Full |
|
Attribute |
|
Full |
|
Declaration |
|
|
|
Component |
|
Full |
|
Declaration |
|
|
|
Group Template |
|
No |
|
Declaration |
|
|
|
Group Declaration |
|
No |
Specifications |
Attribute |
|
Full |
|
Specification |
|
|
|
Configuration |
|
Full |
|
Specification |
|
|
|
Disconnection |
|
No |
|
Specification |
|
|
|
|
|
|
September 2000 |
135 |
Product Version 4.0 |
Envisia HDL Modeling Reference
VHDL Constructs
Table B-1 VHDL Constructs Supported in Ambit BuildGates Synthesis, continued
Construct |
|
|
Support |
|
|
|
|
Expressions |
Logical Operators |
and, or, nand, nor, xor, |
Full |
|
|
xnor |
|
|
Relational |
=, /=, >, <, >=, <= |
Full |
|
Operators |
|
|
|
Shift Operators |
sll, srl, sra |
Full |
|
|
sla, ror, rol |
Partial |
|
Arithmetic |
+, -, & |
Full |
|
Operators |
|
|
Sign Operators
Multiplying
Operators
Miscellaneous
Operators
Operands
Aggregates
Function calls
+, - |
Full |
* |
Full |
/, mod, rem |
Partial |
* * |
Partial |
abs |
Full |
not |
Full |
Integer literal |
Full |
Real Literal |
Ignore |
Physical Literal |
Ignore |
Enumeration Literal |
Full |
String Literal |
Full |
Bit String Literal |
Full |
Null Literal |
No |
Record Aggregates |
Full |
Array Aggregates |
Full |
Qualified Expression |
Full |
Type Conversion |
Full |
Allocators |
No |
September 2000 |
136 |
Product Version 4.0 |
Envisia HDL Modeling Reference
VHDL Constructs
Table B-1 VHDL Constructs Supported in Ambit BuildGates Synthesis, continued
Construct |
|
|
Support |
|
|
|
|
Statements |
Sequential |
|
|
|
Statements |
|
|
|
Wait |
Sensitivity clause |
Partial |
|
|
Condition clause |
Partial |
|
|
Timeout clause |
Ignored |
|
Assertion |
|
Ignored |
|
Report |
|
Ignored |
|
Signal Assignment |
|
Full |
|
Variable |
|
Full |
|
Assignment |
|
|
|
Procedure Call |
|
Full |
|
If |
|
Full |
|
Case |
|
Full |
|
Loop |
Unconditional Loop |
No |
|
|
While Loop |
Partial |
|
|
For Loop |
Full |
|
Next |
|
Full |
|
Exit |
|
Full |
|
Return |
|
Full |
|
Null |
|
Full |
|
Concurrent |
|
|
|
Statements |
|
|
|
|
|
|
September 2000 |
137 |
Product Version 4.0 |