1 ASIC 120: Digital Systems and Standard-Cell ASIC Design Tutorial 2: Introduction to VHDL February 1, 2006.

Slides:



Advertisements
Similar presentations
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Advertisements

Give qualifications of instructors: DAP
Fundamentals of Digital Signal Processing יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Dr. Turki F. Al-Somani VHDL synthesis and simulation – Part 3 Microcomputer Systems Design (Embedded Systems)
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
ECE C03 Lecture 141 Lecture 14 VHDL Modeling of Sequential Machines Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
ECE 301 – Digital Electronics Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #17)
ECE 331 – Digital Systems Design Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #19)
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
1 COMP541 State Machines Montek Singh Feb 8, 2012.
ASIC 120: Digital Systems and Standard-Cell ASIC Design Tutorial 1: Introduction to Digital Circuits October 11, 2005.
Data Flow Modeling of Combinational Logic Simple Testbenches
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
ECE 2372 Modern Digital System Design
ASIC 120: Digital Systems and Standard-Cell ASIC Design Tutorial 4: Digital Systems Concepts November 16, 2005.
Tutorial 1 Combinational Logic Synthesis. Introduction to VHDL VHDL = Very high speed Hardware Description Language VHDL and Verilog are the industry.
Chapter 10 State Machine Design. 2 State Machine Definitions State Machine: A synchronous sequential circuit consisting of a sequential logic section.
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
1/8/ L20 Project Step 8 - Data Path Copyright Joanne DeGroat, ECE, OSU1 State Machine Design with an HDL A methodology that works for documenting.
George Mason University ECE 545 – Introduction to VHDL ECE 545 Lecture 5 Finite State Machines.
CprE / ComS 583 Reconfigurable Computing
Copyright © 1997 Altera Corporation & 提供 What is VHDL Very high speed integrated Hardware Description Language (VHDL) –is.
1 ASIC 120: Digital Systems and Standard-Cell ASIC Design Tutorial 1: Introduction to Digital Circuits January 25, 2006.
Module 1.2 Introduction to Verilog
Introduction to VHDL Spring EENG 2920 Digital Systems Design Introduction VHDL – VHSIC (Very high speed integrated circuit) Hardware Description.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Copyright © 1997 Altera Corporation 11/20/2015 P.1 Beginner VHDL Training Class Danny Mok Altera HK FAE
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Copyright © 1997 Altera Corporation & 提供 Beginner VHDL Training Class Danny Mok Altera HK FAE
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Hardware languages "Programming"-language for modelling of (digital) hardware 1 Two main languages: VHDL (Very High Speed Integrated Circuit Hardware Description.
Verilog A Hardware Description Language (HDL ) is a machine readable and human readable language for describing hardware. Verilog and VHDL are HDLs.
George Mason University Data Flow Modeling in VHDL ECE 545 Lecture 7.
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
Introduction to ASIC flow and Verilog HDL
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
CEC 220 Digital Circuit Design VHDL in Sequential Logic Wednesday, March 25 CEC 220 Digital Circuit Design Slide 1 of 13.
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Data Flow Modeling in VHDL
ENG241 Digital Design Week #7 Sequential Circuits (Part B)
1 COMP541 Finite State Machines - 1 Montek Singh Sep 22, 2014.
George Mason University Behavioral Modeling of Sequential-Circuit Building Blocks ECE 545 Lecture 8.
ASIC 120: Digital Systems and Standard-Cell ASIC Design Design Challenge 1: Jeff’s Solution November 2, 2005.
George Mason University Data Flow Modeling of Combinational Logic ECE 545 Lecture 5.
1 COMP541 Sequential Logic – 2: Finite State Machines Montek Singh Feb 29, 2016.
Algorithmic State Machine (ASM) Charts: VHDL Code & Timing Diagrams
Basic Language Concepts
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
VHDL 5 FINITE STATE MACHINES (FSM)
ASIC 120: Digital Systems and Standard-Cell ASIC Design
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Hardware Description Languages
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Data Flow Modeling of Combinational Logic
VHDL (VHSIC Hardware Description Language)
332:437 Lecture 8 Verilog and Finite State Machines
VHDL Introduction.
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
332:437 Lecture 8 Verilog and Finite State Machines
Digital Designs – What does it take
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Sequntial-Circuit Building Blocks
Presentation transcript:

1 ASIC 120: Digital Systems and Standard-Cell ASIC Design Tutorial 2: Introduction to VHDL February 1, 2006

2 Outline State Machines HDL design flow Format of a VHDL file Combinational statements –assignments, conditionals, when … else Sequential statements –processes, if … then … else

3 Summary of Previous Tutorial Digital Systems Combinational Logic –NOT, AND, OR, XOR, NAND, etc. –mux, half-adder, full-adder Sequential Logic –flip-flop/register, shift register, counter

4 Recall: Sequential Circuits Sequential –computation involves a feedback loop (memory) Example: ring counter Clk DFF D Q S C Init DFF D Q S C DFF D Q S C DFF D Q S C

5 State Machines We actually mean a Finite State Machine (FSM) –models behaviour Components relevant to digital design –states –transitions –inputs –outputs

6 State Machines Represented as a state diagram S0S0 S1S1 S3S3 1/0 S2S2 0/0 1/1 0/1 1/1 1/0 0/1 0/0 State Transition Output Input

7 State Machines Or as a state table Present State Input A Next State Output X S0S0 0 S0S0 0 S0S0 1 S1S1 0 S1S1 0 S3S3 1 S1S1 1 S2S2 1 S2S2 0 S3S3 1 S2S2 1 S2S2 1 S3S3 0 S1S1 0 S3S3 1 S0S0 0 Input A Output X S0S0 S1S1 S3S3 1/0 S2S2 0/0 1/1 0/1 1/1 1/0 0/1 0/0

8 State Machines Encode states into binary Present State Input A Next State Output X Input A Output X /0 10 0/0 1/1 0/1 1/1 1/0 0/1 0/0

9 State Machines Some things to note –we assigned S 0 = 00, S 1 = 01, etc., but state/bit mapping can be completely arbitrary –output is occurring on the transitions, this is called a Mealy state machine –where the output is dependent only on the current state, it is called a Moore machine

10 State Machines Remodelled as a Moore state machine Present State Input A Next State Output X Input A Output X 00 (0) 01 (0) 11 (1) 1 10 (1)

11 State Machines This example is rather contrived –only dealing with abstract “states”, but imagine application to automatic door, traffic lights, etc. –Moore and Mealy machine looked the same but they won’t always

12 State Machines 00 (0) 01 (0) 11 (1) 1 10 (1) /0 10 0/0 1/1 0/1 1/1 1/0 0/1 0/0 Moore Mealy

13 State Machines: Moore vs. Mealy Mealy can often be represented using less states –transitions can produce different output Even with more states, Moore often creates less hardware –less combinational logic –on an FPGA, registers (D flip-flops) are “free”

14 State Machines in Digital Hardware This state machine requires two registers (D flip-flops), since there are four states Basic procedure: 1)create state table 2)derive FF input equations (and output equations) from next state column with respect to present state and inputs 3)simplify equations 4)draw hardware

15 State Machines in Digital Hardware Let the two state bits (registers) be G and H –we also have input A G = GHA + GHA + GHA + GHA H = GHA + GHA + GHA + GHA X = G  H Present State A Next State X GHGH

16 State Machines in Digital Hardware Simplify the equations G = G  H H = GHA + A X = G  H Present State A Next State X GHGH

17 State Machines in Digital Hardware Draw the hardware G = G  H H = GHA + A X = G  H DFF D Q DFF D Q GH A A X Clk

18 State Machines in Digital Hardware I’ve skipped many details and nuances –see ECE 223 course notes State machines can get very complicated –often don’t work out states in this detail –let synthesis tools do it

19 Optimization of State Machines Outside the scope of this tutorial Summary –reduce number of states by combining states, while preserving equivalent functionality –bit encoding can affect the size of the circuitry generated to implement it

20 Ring Counter Is this a state machine? Yes: every sequential circuit is a state machine Clk DFF D Q S C Init DFF D Q S C DFF D Q S C DFF D Q S C

21 Back to Register Transfer Level (RTL) Logic Register Clock Cloud of Logic Register Cloud of Logic Data In Data Out Feedback Combinational Sequential

22 Hardware Description Languages (HDLs) HDLs describes in text a digital circuit Examples –VHDL (we will look at this next time) –Verilog –AHDL –JHDL

23 Hardware Description Languages (HDLs) schematics are useful for… –drawing high level diagrams –manually working out simple pieces of logic HDLs are useful for… –describing complex digital systems HDLs are not... –software programming languages (C, Java, assembly, etc.)

24 Think Digital When designing a digital system in VHDL, it is important to remember the relation between code constructs and actual hardware

25 HDL Design Flow 1.Concept, requirements analysis 2.High level design 3.Functional implementation (need not be synthesizable) 4.Functional simulation (3 -> 4 until functionality is good) 5.Synthesizable implementation 6.Synthesizable simulation (6 -> 5 until functionality is good) 7.Timing simulation (7 -> 5 until timing is good; this step I often bypassed in practice) 8.Synthesis design is compiled to hardware we will cover this in more detail later 8 -> 5 if design doesn’t compile or doesn’t fit 9.Testing in hardware (9 -> 5 if something is wrong)

26 What does “synthesizable” mean? Synthesizable means that a given design can be compiled into hardware –FPGA (reprogrammable ASIC) –ASIC A non-synthesizable design can be simulated in software and is useful for –working out functionality –testing out concepts –test benches (covered in detail later)

27 Levels of Abstraction Behavioural Dataflow Structural

28 Components of a VHDL File library –ieee, etc. use entity –defines the interface architecture –defines the functionality component –reusable functionality multiple entity/architectures in one file

29 Why do we use IEEE libraries? standard VHDL libraries are limited to two values: 0 and 1 this is fine for theory, but in practice a physical wire can have other values more on this in later tutorials

30 Inputs and Outputs declared in the entity the “pins” of the hardware block can only be input, output, or I/O output pins cannot be read from –for example, if I assign a value to an output pin I cannot “read” that value back in another place –output pins are like black holes in this way

31 Signals Signals are the internal “wires” of your design Can be assigned a value, or have their value read Signals can be read in multiple places, but assigned in only one place –“cannot have multiple output pins driving a wire”

32 Buses Provide an easy way to group multiple signals or ports

33 Combinational Logic In VHDL: “Concurrent Statements” Remember: all functionality is defined within architecture block Order doesn’t matter Types of concurrent statements –assignments –conditional assignments –processes

34 Combinational Assignments destination <= source_logic; examples: X <= A AND B; Y <= NOT (A AND B); Z <= A XOR B AND C NOT B;

35 Conditional Assignments destination<=source_logic_1 when condition_1 else source_logic_2 when condition_2 else source_logic_3; example: X<= A AND B when Sel = “00” else NOT (A AND B) when Sel = “01” else A XOR B when Sel(0) & Sel(1) = “10”

36 Conditional Assignment: A MUX Conditional assignments are modelled physically as a multiplexer X<=A AND B when Sel = “00” else NOT (A AND B) when Sel = “01” else A XOR B when Sel(0) & Sel(1) = “10” Sel(0) Sel(1) Sel ABAB ABAB X

37 Brackets and The & Operator Brackets –used to reference parts of buses & Operator –signal concatenation operator –used for constructing buses out of single wire signals, or parts of other buses

38 Processes Contain chunks of VHDL code Can be purely combinational Most useful for sequential logic –controlled by a clock processes are executed in parallel, in any order Processes can optionally be named

39 Process Statement [process_name:] process (sensitivity_list) declarations begin sequential_statements end process;

40 Sequential Logic In VHDL: “Sequential Statements” Within a process, statements execute sequentially –important to remember that logic is tied back to underlying hardware

41 If … Then …Else Statement Like the concurrent “when … else” statement, modelled as a multiplexer if first_condition then statements elsif second_condition then statements else statements end if;

42 MUX with an If Statement process(Sel, A, B, C, D) begin if Sel = "00" then Y <= A; elsif Sel = "01" then Y <= B; elsif Sel = "10" then Y <= C; elsif Sel = "11" then Y <= D; end if; end process;

43 MUX with an If Statement Note that this mux is a combinational mux –i.e., not governed by a clock A B C D Sel(0) Sel(1) Y

44 Clocked Processes Or: “Sequential Processes” Consider a “clocked mux”: process begin wait until rising_edge(Clk); if Sel = "00" then Y <= A; elsif Sel = "01" then Y <= B; elsif Sel = "10" then Y <= C; elsif then Y <= D; end if; end process;

45 Clocked Processes Or: “Sequential Processes” Consider a “clocked mux”: process begin wait until rising_edge(Clk); if Sel = "00" then Y <= A; elsif Sel = "01" then Y <= B; elsif Sel = "10" then Y <= C; elsif then Y <= D; end if; end process; A B C D Sel(0) Sel(1) Y DFF D Q Clk

46 Clocked Processes Statements are essentially executed in series Important to always keep in mind underlying hardware

47 Clocked Processes Consider: process begin wait until rising_edge(Clk); if Sel = ‘0’ then Y <= A; else Y <= B; end if; if Sel = ‘0’ then Z <= B; else Z <= A; end if; end process;

48 Clocked Processes Consider: process begin wait until rising_edge(Clk); if Sel = ‘0’ then Y <= A; else Y <= B; end if; if Sel = ‘0’ then Z <= B; else Z <= A; end if; end process; A B 0 1 Sel Y DFF D Q Clk B A 0 1 Sel Z DFF D Q Clk

49 Clocked Processes This code produces the same hardware: process begin wait until rising_edge(Clk); if Sel = ‘0’ then Y <= A; Z <= B; else Y <= B; Z <= A; end if; end process; A B 0 1 Sel Y DFF D Q Clk B A 0 1 Sel Z DFF D Q Clk

50 Remember Always consider the underlying hardware! –ask yourself: what does the VHDL code I’m writing actually represent?

51 Preview of Next Tutorial Intermediate VHDL –sequential statements continued more on registers, case, loops –latch inference –loops –other signal values besides ‘0’ and ‘1’ –more VHDL data types –attributes, type definitions

52 Summary State Machines HDL design flow Format of a VHDL file Combinational statements –assignments, conditionals, when … else Sequential statements –processes, if … then … else

53 UW ASIC Design Team reference material –Prof. Hamel’s Winter 2005 ECE 223 course notes –Accolade VHDL reference (excellent!): –Bryce Leung’s tutorials (UW ASIC website) –Mike Goldsmith’s tutorials (UW ASIC website) –your course notes my contact info: Jeff Wentworth,