SlideShare a Scribd company logo
1 of 57
What’s VHDL? Basic Concept ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VHDL Development ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
VHDL  vs.  Verilog ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VHDL  vs.  Verilog ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Data Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Additional standardized packages provide definitions of data types and expressions of timing data –  IEEE 1164 (data types) –  IEEE 1076.3 (numeric) –  IEEE 1076.4 (timing)
Hardware description languages  describe a system –  Systems can be described from many different points of view •  Behavior: what does it do? •  Structure: what is it composed of? •  Functional properties: how do I interface to it? •  Physical properties: how fast is it? Usage (Using an HDL) Descriptions can used for –  Simulation •  Verification, performance evaluation –  Synthesis •  First step in hardware design
Synthesis ,[object Object],[object Object],[object Object],[object Object],[object Object]
Simulation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A B S X Y my_ckt
Module/Unit Logic module A B C Out put In puts Full Adder
Defining Modules in VHDL ,[object Object],[object Object]
VHDL language elements VHDL is composed of language  building blocks  that consist of more than  75  reserved words  and about 200  descriptive words  or  word   combinations
Reserved VHDL keywords VARIABLE WAIT WHEN WHILE WITH XNOR XOR   RETURN SELECT SEVERITY SIGNAL SHARED SLA SLL SRA SRL SUBTYPE THEN TO TRANSPORT TYPE UNAFFECTED UNITS UNTIL USE OF ON OPEN OR OTHERS OUT PACKAGE PORT POSTPONED PROCEDURE PROCESS PURE RANGE RECORD REGISTER REM REPORT ROL ROR IN INERTIAL INOUT IS LABEL LIBRARY LINKAGE LITERAL LOOP MAP MOD NAND NEW NEXT NOR NOT NULL DISCONNECT DOWNTO ELSE ELSIF END ENTITY EXIT FILE FOR FUNCTION GENERATE GENERIC GROUP GUARDED IF IMPURE ABS ACCESS AFTER ALIAS ALL AND ARCHITECTURE ARRAY ASSERT ATTRIBUTE BEGIN BLOCK BODY BUFFER BUS CASE COMPONENT CONFIGURATION CONSTANT
Levels of Abstraction ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
VHDL structure ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Libraries ,[object Object],[object Object],[object Object],[object Object],[object Object]
Entity ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Inputs and Outputs Chip A B C D E
Entity ,[object Object],entity  Reg4  is port  ( d0, d1, d2, d3, en, clk :  in  std_logic; q0, q1, q2, q3 :  out  std_logic); end  Reg4; entity name port names port mode (direction) port type
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The mode of the port ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Concurrent operation  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Architecture ,[object Object],[object Object],[object Object],[object Object],Chip A B C D E X Y
Dataflow Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],entity half_adder is Port ( a : in  STD_LOGIC; b : in  STD_LOGIC; carry : out  STD_LOGIC; sum : out  STD_LOGIC); end half_adder; architecture Behavioral of half_adder is begin sum<= a xor b; carry<= a and b; end Behavioral; XOR & a b sum carry
Logical operators defined in VHDL  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Delay in Signal Assignment ,[object Object],[object Object],[object Object]
Inertial Delay ,[object Object],[object Object],[object Object]
Transport Delay ,[object Object],[object Object],[object Object],[object Object]
Example: 1-bit Full Adder  (with delay) ,[object Object],[object Object],[object Object],[object Object],X Y Cin Sum Cout Full Adder
Example: 1-bit Full Adder (contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Example   of  Communicating Processes -  the full adder . This example shows a model of a full adder constructed from 2  half-adders and a 2 input OR gate. The behavior of the 3 components is described using processes that  communicate  through  signals . When there is an  event  on either of the  input signals ,  process HA1 executes (see code in next slide), which creates  events  on internal signals  s1 and s2. In1 In2 s1 c_in sum c_out HA HA OR s2 s3
library  IEEE; use  IEEE.std_logic_1164.all; entity  full_adder  is port (in1, in2, c_in:  in  std_ulogic; sum, c_out:  out  std_ulogic); end  full_adder; architecture  dataflow  of  full_adder  is signal  s1, s2, s3 : std_ulogic; constant  gate_delay:  Time :=5  ns ; begin L1: s1<=(in1  xor  in2)  after  gate_delay; L2: s2<=(c_in  and  s1)  after  gate_delay; L3: s3<=(in1  and  in2)  after  gate_delay; L4: sum<=(s1  xor  c_in)  after  gate_delay; L5: c_out<=(s2  or  s3)  after  gate_delay; end  dataflow; Architecture Body Architecture Declarative Statement
Structural Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VHDL Structural Elements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Chip A B C D E X Y
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example: 4-bit Adder ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example: 4-bit Adder (contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
Modeling the Behavior way ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Full Adder – using Processes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],                   
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Multiplexers A B Z A B I 3 A B’ I 2 A’ B’ I 0 Z Data inputs versus control inputs Use of muxes in  control  and  data path 4-to-1 MUX I 0 I 1 I 2 I 3 A’ B I 1 A B Z 0 0 I 0 0 1 I 1 1 0 I 2 1 1 I 3 +
Concurrent Conditional Assignment: 4 to 1 Multiplexer ,[object Object],[object Object],[object Object],[object Object],x0 x1 x2 x3 sel y
CASE Statement:  4 to 1 Multiplexer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],x0 x1 x2 x3 y
2-to-4-decoder with enable, DeMUX
Example: DFF (contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Internal Structure of a PLA Inputs A A’ B B’ C C’ AND ARRAY OR ARRAY F 0 F 1 F 2 F 3 Outputs A’B’ AC’ B BC’ AC
[object Object]

More Related Content

What's hot (20)

Short.course.introduction.to.vhdl for beginners
Short.course.introduction.to.vhdl for beginners Short.course.introduction.to.vhdl for beginners
Short.course.introduction.to.vhdl for beginners
 
VHDL
VHDLVHDL
VHDL
 
Lecture2 vhdl refresher
Lecture2 vhdl refresherLecture2 vhdl refresher
Lecture2 vhdl refresher
 
VHDL-Behavioral-Programs-Structure of VHDL
VHDL-Behavioral-Programs-Structure of VHDLVHDL-Behavioral-Programs-Structure of VHDL
VHDL-Behavioral-Programs-Structure of VHDL
 
Vhdl
VhdlVhdl
Vhdl
 
VHDL course
VHDL courseVHDL course
VHDL course
 
Basics of Vhdl
Basics of VhdlBasics of Vhdl
Basics of Vhdl
 
VHDL Part 4
VHDL Part 4VHDL Part 4
VHDL Part 4
 
Chapter 5 introduction to VHDL
Chapter 5 introduction to VHDLChapter 5 introduction to VHDL
Chapter 5 introduction to VHDL
 
VHDL
VHDLVHDL
VHDL
 
VHDL - Part 2
VHDL - Part 2VHDL - Part 2
VHDL - Part 2
 
VHDL Packages, Coding Styles for Arithmetic Operations and VHDL-200x Additions
VHDL Packages, Coding Styles for Arithmetic Operations and VHDL-200x AdditionsVHDL Packages, Coding Styles for Arithmetic Operations and VHDL-200x Additions
VHDL Packages, Coding Styles for Arithmetic Operations and VHDL-200x Additions
 
Vhdl design flow
Vhdl design flowVhdl design flow
Vhdl design flow
 
Introduction to VHDL - Part 1
Introduction to VHDL - Part 1Introduction to VHDL - Part 1
Introduction to VHDL - Part 1
 
Lecture1
Lecture1Lecture1
Lecture1
 
Verilog HDL Training Course
Verilog HDL Training CourseVerilog HDL Training Course
Verilog HDL Training Course
 
Vhdl 1
Vhdl 1Vhdl 1
Vhdl 1
 
VHDL CODES
VHDL CODES VHDL CODES
VHDL CODES
 
VHDL - Enumerated Types (Part 3)
VHDL - Enumerated Types (Part 3)VHDL - Enumerated Types (Part 3)
VHDL - Enumerated Types (Part 3)
 
Introduction to VHDL
Introduction to VHDLIntroduction to VHDL
Introduction to VHDL
 

Similar to VHDL Basics (20)

Hardware Description Language
Hardware Description Language Hardware Description Language
Hardware Description Language
 
slide8.ppt
slide8.pptslide8.ppt
slide8.ppt
 
Verilogspk1
Verilogspk1Verilogspk1
Verilogspk1
 
Dica ii chapter slides
Dica ii chapter slidesDica ii chapter slides
Dica ii chapter slides
 
vhdl
vhdlvhdl
vhdl
 
Vhd lhigh2003
Vhd lhigh2003Vhd lhigh2003
Vhd lhigh2003
 
Verilog HDL
Verilog HDL Verilog HDL
Verilog HDL
 
Session1
Session1Session1
Session1
 
Verilog
VerilogVerilog
Verilog
 
the-vhsic-.pptx
the-vhsic-.pptxthe-vhsic-.pptx
the-vhsic-.pptx
 
vlsi introduction to hdl and its typesunit-1.pptx
vlsi introduction to hdl and its typesunit-1.pptxvlsi introduction to hdl and its typesunit-1.pptx
vlsi introduction to hdl and its typesunit-1.pptx
 
Verilog presentation final
Verilog presentation finalVerilog presentation final
Verilog presentation final
 
Vhdl new
Vhdl newVhdl new
Vhdl new
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdf
 
Verilog Final Probe'22.pptx
Verilog Final Probe'22.pptxVerilog Final Probe'22.pptx
Verilog Final Probe'22.pptx
 
verilog ppt .pdf
verilog ppt .pdfverilog ppt .pdf
verilog ppt .pdf
 
Hd2
Hd2Hd2
Hd2
 
Verilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdfVerilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 

More from GIET,Bhubaneswar (8)

Dct and adaptive filters
Dct and adaptive filtersDct and adaptive filters
Dct and adaptive filters
 
Lead a better life
Lead a better lifeLead a better life
Lead a better life
 
Stress management
Stress managementStress management
Stress management
 
Four squares
Four squaresFour squares
Four squares
 
Positive thinking
Positive thinkingPositive thinking
Positive thinking
 
Vlsi giet
Vlsi gietVlsi giet
Vlsi giet
 
Vhdlbputspdas
VhdlbputspdasVhdlbputspdas
Vhdlbputspdas
 
Spdas1 vlsibput
Spdas1 vlsibputSpdas1 vlsibput
Spdas1 vlsibput
 

VHDL Basics

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Additional standardized packages provide definitions of data types and expressions of timing data – IEEE 1164 (data types) – IEEE 1076.3 (numeric) – IEEE 1076.4 (timing)
  • 12. Hardware description languages describe a system – Systems can be described from many different points of view • Behavior: what does it do? • Structure: what is it composed of? • Functional properties: how do I interface to it? • Physical properties: how fast is it? Usage (Using an HDL) Descriptions can used for – Simulation • Verification, performance evaluation – Synthesis • First step in hardware design
  • 13.
  • 14.
  • 15. Module/Unit Logic module A B C Out put In puts Full Adder
  • 16.
  • 17. VHDL language elements VHDL is composed of language building blocks that consist of more than 75 reserved words and about 200 descriptive words or word combinations
  • 18. Reserved VHDL keywords VARIABLE WAIT WHEN WHILE WITH XNOR XOR RETURN SELECT SEVERITY SIGNAL SHARED SLA SLL SRA SRL SUBTYPE THEN TO TRANSPORT TYPE UNAFFECTED UNITS UNTIL USE OF ON OPEN OR OTHERS OUT PACKAGE PORT POSTPONED PROCEDURE PROCESS PURE RANGE RECORD REGISTER REM REPORT ROL ROR IN INERTIAL INOUT IS LABEL LIBRARY LINKAGE LITERAL LOOP MAP MOD NAND NEW NEXT NOR NOT NULL DISCONNECT DOWNTO ELSE ELSIF END ENTITY EXIT FILE FOR FUNCTION GENERATE GENERIC GROUP GUARDED IF IMPURE ABS ACCESS AFTER ALIAS ALL AND ARCHITECTURE ARRAY ASSERT ATTRIBUTE BEGIN BLOCK BODY BUFFER BUS CASE COMPONENT CONFIGURATION CONSTANT
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Example of Communicating Processes - the full adder . This example shows a model of a full adder constructed from 2 half-adders and a 2 input OR gate. The behavior of the 3 components is described using processes that communicate through signals . When there is an event on either of the input signals , process HA1 executes (see code in next slide), which creates events on internal signals s1 and s2. In1 In2 s1 c_in sum c_out HA HA OR s2 s3
  • 39. library IEEE; use IEEE.std_logic_1164.all; entity full_adder is port (in1, in2, c_in: in std_ulogic; sum, c_out: out std_ulogic); end full_adder; architecture dataflow of full_adder is signal s1, s2, s3 : std_ulogic; constant gate_delay: Time :=5 ns ; begin L1: s1<=(in1 xor in2) after gate_delay; L2: s2<=(c_in and s1) after gate_delay; L3: s3<=(in1 and in2) after gate_delay; L4: sum<=(s1 xor c_in) after gate_delay; L5: c_out<=(s2 or s3) after gate_delay; end dataflow; Architecture Body Architecture Declarative Statement
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51. Multiplexers A B Z A B I 3 A B’ I 2 A’ B’ I 0 Z Data inputs versus control inputs Use of muxes in control and data path 4-to-1 MUX I 0 I 1 I 2 I 3 A’ B I 1 A B Z 0 0 I 0 0 1 I 1 1 0 I 2 1 1 I 3 +
  • 52.
  • 53.
  • 55.
  • 56. Internal Structure of a PLA Inputs A A’ B B’ C C’ AND ARRAY OR ARRAY F 0 F 1 F 2 F 3 Outputs A’B’ AC’ B BC’ AC
  • 57.

Editor's Notes

  1. 1
  2. 3