Questions tagged [hdl]

HDL is a Hardware Description Language, a language used to design chips. The two major ones are Verilog and VHDL.

Taken from G.J. Lipovsky, "Hardware Description Languages: Voices from the Tower of Babel", Computer, Vol. 10, No. 6, June 1977, pp. 14-17. Paper available here.

A hardware description language can be used to describe the logic gates, the sequential machines, and the functional modules, along with their interconnection and their control, in a digital system. In a general sense, Boolean equations, logic diagrams, programrning languages, and Petri nets are hardware description languages: they can be used to describe some aspect of hardware and they have definable syntax and semantics. Specifically, what is more commonly referred to as a hardware description language is a variation of a programming language tuned to the overall needs of describing hardware.

Adapted from Hardware Description Language tutorial with very few modifications:

Hardware description language (HDL) is a specialized computer language used to program electronic and digital logic circuits. The structure, operation and design of the circuits are programmable using HDL. HDL includes a textual description consisting of operators, expressions, statements, inputs and outputs. Instead of generating a computer executable file, the HDL compilers provide a gate map. The gate map obtained is then downloaded to the programming device to check the operations of the desired circuit. The language helps to describe any digital circuit in the form of structural, behavioral and gate level and it is found to be an excellent programming language for FPGAs, CPLDs and ASICs.

The three common HDLs are Verilog, VHDL, and SystemC. Of these, SystemC is the newest. The HDLs will allow fast design and better verification. In most of the industries, Verilog and VHDL are common. Verilog, one of the main Hardware Description Language standardized as IEEE 1364 is used for designing all types of circuits. It consists of modules and the language allows Behavioral, Dataflow and Structural Description. VHDL (Very High Speed Integrated Circuit Hardware Description Language) is standardized by IEEE 1164. The design is composed of entities consisting of multiple architectures. SystemC is a language that consist a set of C++ classes and macros. It allows electronic system level and transaction modeling.

Need for HDLs

The Moore’s Law in the year 1970 has brought a drastic change in the field of IC technology. This change has made the developers to bring out complex digital and electronic circuits. But the problem was the absence of a better programming language allowing hardware and software codesign. Complex digital circuit designs require more time for development, synthesis, simulation and debugging. The arrival of HDLs has helped to solve this problem by allowing each module to be worked by a separate team.

All the goals like power, throughput, latency (delay), test coverage, functionality and area consumption required for a design can be known by using HDL. As a result, the designer can make the necessary engineering tradeoffs and can develop the design in a better and efficient way. Simple syntax, expressions, statements, concurrent and sequential programming is also necessary while describing the electronics circuits. All these features can be obtained by using a hardware description language. Now while comparing HDL and C languages, the major difference is that HDL provides the timing information of a design.

Benefits of HDL

The major benefit of the language is fast design and better verification. The Top-down design and hierarchical design method allows the design time; design cost and design errors to be reduced. Another major advantage is related to complex designs, which can be managed and verified easily. HDL provides the timing information and allows the design to be described in gate level and register transfer level. Reusability of resources is one of the other advantage.

See also:

906 questions
-1
votes
1 answer

Verilog blocking assignment not blocking

I have a problem with Verilog blocking assignment, in the simulation it seems that it is not blocking. Espessialy in the second always@ block. I need the rst to go "1"only forv1 unit (clock cycle?), but it simultaneosly goes "1" and "0". When i…
-1
votes
3 answers

Tasktop.v(10): (vlog-2110) Illegal reference to net "b"

I am writing a program in verilog. Total 3 AND Gates, the output of first 2 AND Gates is input to the 3rd Gate, and i am required the output of 3rd Gate. Please let me know what is the problem with my program. I am attaching my Program //enter Top…
-1
votes
1 answer

Verilog Arbiter circuit not producing expected output

I have an arbiter module set up as follows: // Code your design here module arbiter#(parameter WIDTH=3)( input clk,rst, input [WIDTH-1:0] in, output reg [WIDTH-1:0] out ); parameter IDLE=3'b0,G1=3'b001,G2=3'b010,G3=3'b100; …
Lew Wei Hao
  • 763
  • 1
  • 13
  • 25
-1
votes
1 answer

Multiplier 4-bit with verilog using just full adders

I am trying to write the test bench part but I don't know how to do it. Basically, I want to test out 0x10 or 5x5. I don't if what I have is right. here's a pic to give you some idea of what i am trying to build. it is not this exact one. Here is…
-1
votes
2 answers

IC design/verification with Python

I see a lot of jobs in this field asking for Perl and Python scripting experience. Very little C programming if any. Where HDL is the main focus (verilog,, VHDL) along with digital system design knowledge. Is Python generally used in these job…
cc6g11
  • 477
  • 2
  • 10
  • 24
-1
votes
1 answer

What is the meaning of this code statement in verilog?

'define vend_a_drink {D,dispense,collect} = {IDLE, 2'b11} D - next_state dispense - dispense the drink collect - collect coins Given statement was included in a code written using verilog for an vending machine.
PVS
  • 67
  • 6
-1
votes
2 answers

Why is this variable not considered a constant?

The following is code I wrote is a test bench to simulate a decoder (Verilog HDL). It converts [15:0]IR to [25:0]ControlWord. Literal is a byproduct that is watched as well. All values from 0-65535 need to be tested for the 16-bit IR variable. In…
-1
votes
1 answer

how to call a state machine from another state machine and get the response back in VHDL

I want to do VHDL programming of a state machine. In this state machine one state is itself another state machine. how can i call this state machine from the main state machine? Example of what i actually want to do is as follows: main state machine…
-1
votes
1 answer

running a 3 to 7 Decoder using a counter

I am trying to run my 3 to 7 decoder using the inputs coming from my counter ,all the individual codes run fine but the structural code is giving up some error This is the program for my counter library IEEE; use IEEE.std_logic_1164.all; use…
Justus
  • 45
  • 6
-1
votes
1 answer

Parameterized function errors

I am trying to write the following systemverilog code where different parameters can be used for functions, so the same functions can be reused just by changing parameters instead of using parameterized modules. My following code compiles without…
Shahriar
  • 65
  • 1
  • 7
-1
votes
1 answer

why is there an error in end process and end architecture?

i have 2 errors. the errors are in end process and end architecture. i have tried adding another end if but it is not helping. Line 40: ERROR, syntax error near 'process'. Line 46: ERROR, syntax error near 'ARCHITECTURE'. here is the full code …
m.elb
  • 1
  • 1
-1
votes
1 answer

Verilog: Error in displaying multibit array (output consisting of X, Z, 0)

I'm implementing shell sort in Verilog code. I have an array consisting of 10 elements, each 20-bits wide. I can't get to pass the input values properly inside the test bench to the registers inside the module. Here's the output: Here's my…
ellekaie
  • 337
  • 1
  • 7
  • 21
-1
votes
1 answer

SV Compilation error: Unexpected token integer

I am compiling the below system verilog code in Active-HDL9.1 simulator. When compile i get this error Error: VCP2000 tb_hutil.sv : (35, 15): Syntax error. Unexpected token: integer[_INTEGER]. Expected tokens: 'constraint'. package…
thiyagu
  • 1
  • 2
-1
votes
1 answer

Is there a way to make Quartus II to support PAL devices?

I use in school the Galaxy to write and compile VHDL programs, but it only runs on Windows XP and I don't have it. I installed Quartus II in my computer (I use Ubuntu), but apparently there is no support for PAL devices (specifically GAL22V10D). It…
Adrian
  • 829
  • 5
  • 14
  • 21
-1
votes
1 answer

Icarus produces different results than Silos

I am recieving some strange results when trying to compile and simulate a Verilog module and stimulus. If I simulate it in Silos, the code functions as expected. If I simulate it in Icarus (iverlog and vvp) the time differs from Silos(the starting…
dannyn382
  • 363
  • 2
  • 5
  • 15