- •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
EDIF Interface
(port o2 (direction Output))
(port o3 (direction Output))
)
......
)
The module BOTTOM has two ports SUPPLY0 and SUPPLY1 inserted through which logic 0 and logic 1 values can be supplied to the logic within the module.
Note, since the module TOP did not have any ground logic within it, no SUPPLY0 port was added to its EDIF representation.
The corresponding globals for specifying a port representation for power and ground while reading in EDIF designs are shown below.
Global |
Default Value |
edifin_power_and_ground_representation |
net |
edifin_power_port_name |
PWR |
edifin_ground_port_name |
GND |
Instance Representation for Power and Ground
An instance representation for power and ground while writing EDIF can be specified with the global:
ac_shell[16]> set_global edifout_power_and_ground_representation instance
With this setting, all power or ground are represented as instances of power and ground cells. The following globals determine the name of power and ground cells and pins and instance names to add to each module that has a power and ground driven net within it.
Global |
Default Value |
edifout_power_cell_name |
PWR |
edifout_power_pin_name |
PWR |
edifout_power_instance_name |
PWR |
edifout_ground_cell_name |
GND |
edifout_ground_pin_name |
GND |
edifout_ground_instance_name |
GND |
September 2000 |
116 |
Product Version 4.0 |
Envisia HDL Modeling Reference
EDIF Interface
For the Verilog example above, the following commands are used:
ac_shell[17]> set_global edifout_power_cell_name PWRC ac_shell[18]> set_global edifout_power_pin_name PWRP ac_shell[19]> set_global edifout_power_instance_name PWRI ac_shell[20]> set_global edifout_ground_cell_name GNDC ac_shell[21]> set_global edifout_ground_pin_name GNDP ac_shell[22]> set_global edifout_ground_instance_name GNDI
ac_shell[23]> write_edif -hierarchical out.edif
will produce the following EDIF output for module BOTTOM:
(library TOP
(edifLevel 0)(technology (numberDefinition)) (cell PWRC (cellType GENERIC)
(view netlist (viewType Netlist) (interface
(port PWRP (direction Output))
)
)
)
(cell GNDC (cellType GENERIC)
(view netlist (viewType Netlist)
(interface
(port GNDP (direction Output))
)
)
)
(cell BOTTOM (cellType GENERIC)
(view netlist (viewType Netlist)
(interface
(port o1 (direction Output))
(port o2 (direction Output))
)
(contents (instance PWRI
(viewRef netlist (cellRef PWRC))
)
(instance GNDI
(viewRef netlist (cellRef GNDC))
)
(net o2 (joined
September 2000 |
117 |
Product Version 4.0 |
Envisia HDL Modeling Reference
EDIF Interface
(portRef PWRP (instanceRef PWRI)) (portRef o2 )
)
(property default (string "logic_1"))
)
(net o1 (joined
(portRef GNDP (instanceRef GNDI)) (portRef o1 )
)
(property default (string "logic_0"))
)
.....
Two cells PWRC and GNDC with pins PWRP and GNDP, respectively have been added. Power and ground within module BOTTOM is represented as instances of these cells.
The corresponding globals for specifying a port representation for power and ground while reading in EDIF designs are shown below.
Global |
Default Value |
edifin_power_and_ground_representation |
net |
edifin_power_pin_name |
PWR |
edifin_power_instance_name |
PWR |
edifin_ground_pin_name |
GND |
edifin_ground_instance_name |
GND |
September 2000 |
118 |
Product Version 4.0 |