- •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
Verilog Modeling Styles
`define BITS 8
`define LIB TECH
module `XYZ_`BITS_`LIB ();
To handle such usage, the following extension to the syntax is used by VPP to evaluate the module name to AND_8_TECH.
module `{XYZ}_`{BITS}_`{LIB} ();
Command Line Options
VPP supports the following command line options:
■I …/incl
Shows the directories of where to search for the include files.
■I …/incl
Provides UNIX cpp compatibility (no space between option, path).
■D abc=12
Defines abc to be 12; similar to +define in verilog-xl.
■Dabc=12
Provides UNIX cpp compatibility (no space between option, value).
■nolinenum
States that `line will not be generated in the output.
VPP Flag Attribute
The VPP flag attribute is shown below:
set_global vpp_arg = “-I …/include -DSYNTH”
Verilog-Related Commands and Globals
Table 2-2 provides the Verilog-related ac_shell commands. Table 2-3 provides the Verilogspecific ac_shell global variables used with the set_global command; the default values
September 2000 |
47 |
Product Version 4.0 |
Envisia HDL Modeling Reference
Verilog Modeling Styles
are shown in parentheses. Please see the Envisia and Ambit Command Reference for a complete list of commands and globals and their descriptions and examples.
Table 2-2 Verilog ac_shell Commands
Command |
Description |
|
|
read_verilog |
Analyze Verilog source files. |
write_verilog |
Write Verilog netlist. |
get_hdl_type |
For a given module, returns the file type, either Verilog or |
|
VHDL. |
get_hdl_hierarchy |
Returns a hierarchical list of modules in the design and a list |
|
of their paramterized and non-parameterized instances. |
get_hdl_file |
Returns the file name corresponding to the module. |
get_hdl_top_level |
Returns a list of top level module names. |
|
|
Table 2-3 Verilog-Specific Global Variables
Command |
Description (Defaults) |
|
|
hdl_verilog_out_columns |
Specify the maximum line length for writing out Verilog |
|
netlist in files. (80) |
hdl_verilog_out_compact |
Write out compact files for Verilog netlist output. If set to |
|
false, only one statement is written per line. (true) |
hdl_verilog_out_ |
Implicit wires in Verilog do not require a declaration. If |
declare_implicit_wires |
set to true the declarations for implicit wires are also |
|
written. (false) |
hdl_verilog_out_prim |
When set to true, primitive Verilog operators are written |
|
instead of the ATL equivalent components. ( true) |
hdl_verilog_out_source_ Keep track of the RTL source code. (false) |
|
track |
|
hdl_verilog_out_ |
Select the netlisting style for unconnected instance pins. |
unconnected_style |
(none) |
September 2000 |
48 |
Product Version 4.0 |
Envisia HDL Modeling Reference
Verilog Modeling Styles
Table 2-3 Verilog-Specific Global Variables, continued
Command |
Description (Defaults) |
|
|
hdl_verilog_out_use_ |
Specify constant signals (1 or 0) as supply signals |
supply |
(supply1 or supply0). If set to true, the generated Verilog |
|
code will contain supply declarations. If set to false, the |
|
literal constants 1’b1 and 1’b0 are used for |
|
connection to power and ground. (false) |
hdl_verilog_vpp_arg |
Pass arguments to VPP. The typical argument passed is |
|
the search path; options within the argument string must |
|
be separated by one or more spaces. |
September 2000 |
49 |
Product Version 4.0 |