VHDL Vs Verilog
VHDL Vs Verilog
VHDL
Because VHDL is a strongly-typed language, models must be coded precisely with defined and matching data types. Models are often more verbose and the code often longer than its Verilog equivalent.
VHDL Verilog
Verilog
Signals representing objects of different bit widths may be assigned to each other. The signal representing the smaller number of bits is automatically padded out to that of the larger number of bits, and is independent of whether it is the assigned signal to or not. Unused bits will be automatically optimized away during the synthesis process. Has the advantage of not needing to model quite so explicitly as in VHDL. Has the disadvantage that unintended modeling errors will not be identified by an analyzer.
Verilog
The Verilog is still rooted in its native interpretative mode. Compilation is a means of speeding up simulation, but has not changed the original nature of the language. Care must be taken with both the compilation order of code written in a single file and the compilation order of multiple files. Simulation results can change by simply changing the order of compilation.
The modeling constructs of VHDL cover a slightly higher levels of behavioral abstraction than those of Verilog.
Verilog
There is no concept of packages in Verilog. Functions and procedures used within a model must be defined in the module statement with which it will be used. To make functions and procedures generally accessible from different module statements, they must be placed in a separate system file and included using the include compiler directive.
Verilog
Verilog data types are very simple, easy to use and very much geared towards modeling hardware structure as opposed to abstract hardware modeling. All data types are defined by the Verilog language and not by the user. Verilog may be preferred because of the simplicity of its data types.
VHDL may seem less intuitive at first for two primary reasons:
It is very strongly typed, which is a feature that makes it robust and powerful for the advanced user after a longer learning phase. There are many ways to model the same circuit, especially those with large hierarchical structures.
VHDL vs Verilog : High-Level Constructs HighVHDL has more high-level constructs and features than Verilog.
Package statements for model reuse Configuration statements for configuring design structure Generate statements for replicating structure Generic statements for generic models that can be individually characterized, for example, bit width
Except for being able to parameterize models by overloading parameter constants, there is no equivalent to the high-level VHDL modeling statements in Verilog.
Verilog
The PLI is an interface mechanism between Verilog models and Verilog software tools. A designer, or more likely, a Verilog tool vendor, can specify userdefined tasks or functions in the C programming language, and then call them from the Verilog source description.
Verilog
There is no concept of a library in Verilog. Due to its origin as an interpretive language.
Verilog
The Verilog language was originally developed with gate-level modeling in mind, and so has very good constructs for modeling at this level. Also has a very good constructs for modeling the cell primitives of ASIC and FPGA libraries, e.g., User-Defined Primitives (UDP), truth tables and the specify block for specifying timing delays across a module.
Verilog
There are no statements in Verilog that help manage large designs.
Verilog
Does have very useful unary operators that are not predefined in VHDL. A loop statement can be used in VHDL to perform the same operation as a Verilog unary reduction operator.
Verilog
Does not allow concurrent task calls.
Verilog
A specific bit width model can be instantiated from a generic n-bit model using overloaded parameter values. The generic model must have a default parameter value defined. In the absence of an overloaded value being specified, it will still synthesize, but will use the default parameter settings.
Verilog
There is no equivalent to the generate statement in Verilog.
Verilog
Its constructs are based approximately 50% on C and 50% on Ada.
Verilog
Signals representing objects of different bit widths may be assigned to each other. The signal representing the smaller number of bits is automatically padded out to that of the larger number of bits, and is independent of whether it is the assigned signal to or not. Unused bits will be automatically optimized away during the synthesis process. Has the advantage of not needing to model quite so explicitly as in VHDL. Has the disadvantage that unintended modeling errors will not be identified by an analyzer.