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
-2
votes
1 answer

Array aggregation on self-defined types?

I'm trying to implement an FSM with a RAM behavior. There are multiple addresses of this ram that should be initialized while describing this FSM. So, I'm using the array aggregation technique to initialize the first 20 addresses of the ram_block.…
hexpheus
  • 741
  • 10
  • 22
-2
votes
1 answer

Number of flip flop generated the Verilog code

How to count the number of flip-flops generated or used in the Verilog code without using any tool?
Vineet dubey
  • 27
  • 1
  • 4
-2
votes
1 answer

Counting high of p showing average on d

module try2(p,d,q1,q2,q3,q4,q5,q6,q7,q8,c,a); input p,c; output [15:0]q1,q2,q3,q4,q5,q6,q7,q8,d,a; reg [15:0] d=16'b0;//may be error reg [15:0]a; always @ (posedge p) begin d<=d+1; end DFF dff0(q1,d,p); DFF dff1(q2,q1,p); DFF dff2(q3,q2,p); DFF…
-2
votes
1 answer

Verilog [cross module resolution error] when expanding the definitions

I've been getting a cross-module resolution error, when the compiler expands the definition as follow: in file, say path_defines.vh (where the definitions is at): `define apple aaaa.bbbb.cccc.\pie[0] .dddd.eeee I'm using the "\" character…
-2
votes
1 answer

verilog check syntax with ise

I have written a module and am trying to check the syntax. The ISE output is giving me these errors ERROR:HDLCompilers:26 - "../cmd_parser.v" line 220 unexpected token: '[' ERROR:HDLCompilers:26 - "../cmd_parser.v" line 221 unexpected token:…
Sabersimon
  • 50
  • 2
  • 8
-2
votes
1 answer

Suggesting Implementation of an Algorithm on FPGA

As a course project, I have to implement an algorithm on FPGA. Currently I'm considering arithmetic algorithms and ideas like implementation of 4 basic operators for floating point numbers come to mind. As I'm new to such topics I'd be thankful if…
Ahmad Siavosh
  • 646
  • 1
  • 9
  • 22
-2
votes
1 answer

How can I debug my verilog code for concatenating the MSB to LSB of 2 4bit number?

It complains Input a<2:0> and Input b<2:0> is never used .The output is just displaying the concatenation of a[3] and b[3] (a = 1001, b = 1100). module stone(a,b,rslt); input [3:0] a,b; output reg [0:1] rslt; integer i; always @(a,b) …
-2
votes
2 answers

Verilog error: # KERNEL: hold=xxxxxxxx

I am using Aldec Active HDL Simulator and I am Trying to access an array in my verilog code. When I simulate it, it gives: XXXXXXX (unknown in hold and outb2 variable ). Both hold and outb are array. Here is my code (Design Block)---- module…
Rocky_s
  • 1
  • 3
-2
votes
1 answer

Where can i download a free Version of verilogger pro on windows 7?

I am following this book i bought called "digital design by morris mano" which says it requires me to use "Verilogger pro and synapticad" which is not free software. Anyone recommend me a free version similar to these two and which works on windows…
-3
votes
1 answer

How can I create a grayscale image for Vivado HLS?

How can I create a grayscale image in c++? Image size 100x100. I know that in python this can be done using numpy. The best option would be if this image looks like a scale of 10 colors from white to black. I work in Vivado HLS, so I can only use…
-3
votes
1 answer

Verilog code to find out length of a string

I want to know how do i can find the length of a string in verilog. Example: CAT is a 3 letter string and APPLE is letter string. How do i create a code of this in verilog?
-3
votes
2 answers

VHDL to Verilog

I have some code in VHDL I am trying to convert to Verilog. The VHDL code works fine library ieee; use ieee.std_logic_1164.all; entity find_errors is…
UnrealEE
  • 1
  • 1
-3
votes
1 answer

Can a function in verilog call another function?

Consider this following verilog example, is this allowed and is it synthesizable? function [7:0] func1; input [7:0] a; input [7:0] b; begin func1 = func2(a) + b; end endfunction function [7:0] func2; input [7:0] a; begin …
-3
votes
1 answer

Verilog Calculator w/ 16 bit signed inputs

I need to build a calculator that takes 2 signed 16 bit numbers (in1, in2) and preforms functions on them depending on the opCode (a 4 bit input). The outputs should be a signed 16 bit number named 'result' and one bit 'overflow' I really need help…
-3
votes
1 answer

Verilog Return X for Every Test Case In Generate Syntax for Barrel Shifter

In Wrote A module for 8 bit barrel shifter and rotate, and it return x for outputs, i don't know how to solve it ! I should write this module with generate syntax, i uploaded picture for 4 bit barrel shifter and rotate module OneGate(input D, S,…
Masoud Alali
  • 137
  • 1
  • 7
1 2 3
60
61