General
The following restrictions apply to the boundaries between V
hdl and
verilog design units/modules.
- The boundary between VHDL and Verilog is enforced at design unit level.
- A VHDL design is allowed to instantiate one or more Verilog modules.
- Instantiation of a Verilog UDP inside a VHDL design is not supported.
- A Verilog design can instantiate a VHDL component corresponding to a VHDL entity only. Instantiation of a VHDL configuration in a Verilog design is not supported.
Port Mapping
The following rules and limitations for port mapping are used in mixed language projects.
VHDL Port | Verilog Port |
---|
bit | net |
std_ulogic | net |
std_logic | net |
bit_vector | vector net |
std_ulogic_vector | vector net |
std_logic_vector | vector net |
Note Verilog output port of type reg is supported on the mixed language boundary. On the boundary, an output reg port is treated as if it were an output net (wire) port.
Note Any other type found on mixed language boundary is considered an error.
Generics (Parameters) Mapping
Following VHDL generic types (and their Verilog equivalents) are supported.
- integer
- real
- string
- boolean
Note Any other generic type found on mixed language boundary is considered an error.
VHDL/Verilog Values Mapping
Verilog states are mapped to std_logic and bit as shown in the following table.
Verilog | std_logic | bit |
---|
Z | ’Z’ | ’0’ |
0 | ’0’ | ’0’ |
1 | ’1’ | ’1’ |
X | ’X’ | ’0’ |
Note Verilog strength is ignored. There is no corresponding mapping to strength in VHDL.
VHDL type bit is mapped to Verilog states in the following table.
VHDL type std_logic is mapped to Verilog states in the following table.
std_logic | Verilog |
---|
’U’ | X |
’X’ | X |
’0’ | 0 |
’1’ | 1 |
’Z’ | Z |
’W’ | X |
’L’ | 0 |
’H’ | 1 |
’-’ | X |