Verilog Synthesis & FSMs

Slides:



Advertisements
Similar presentations
Table 7.1 Verilog Operators.
Advertisements

FSM Revisit Synchronous sequential circuit can be drawn like below  These are called FSMs  Super-important in digital circuit design FSM is composed.
Slide 1 7. Verilog: Combinational always statements. VHDL: Combinational Processes: To avoid (I.E. DO NOT What in your HDL code?) Cases that generate Synthesis.
CSE Spring Verilog for Sequential Systems - 1 Today: Verilog and Sequential Logic zFlip-flops yrepresentation of clocks - timing of state.
Spring 20067W. Rhett Davis with minor modifications by Dean Brock ECE 406 at UNASlide 1 ECE 406 Design of Complex Digital Systems Lecture 10: 9: State.
1/27/06EECS150 Lab Lecture #21 Designing with Verilog EECS150 Spring 2006 – Lab Lecture #2 Brian Gawalt Greg Gibeling.
2/16/2007EECS150 Lab Lecture #51 Logic Analyzers EECS150 Spring 2007 – Lab Lecture #5 Shah Bawany.
2/17/2006EECS150 Lab Lecture #51 Logic Analyzers EECS150 Spring 2006 – Lab Lecture #5 David Lin Greg Gibeling.
9/5/2008EECS150 Lab Lecture #21 Designing with Verilog EECS150 Fall Lab Lecture #2 Chen Sun Adopted from slides designed by Greg Gibeling.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Senior Design I Lecture 4 - Verilog 2 (Sequential.
ENEE 408C Lab Capstone Project: Digital System Design Fall 2005 Sequential Circuit Design.
2/9/2007EECS150 Lab Lecture #41 Debugging EECS150 Spring2007 – Lab Lecture #4 Laura Pelton Greg Gibeling.
From Design to Verilog EECS150 Fall Lecture #4
Advanced Verilog EECS 270 v10/23/06.
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 8, 2007.
02/10/06EECS150 Lab Lecture #41 Debugging EECS150 Spring 2006 – Lab Lecture #4 Philip Godoy Greg Gibeling.
Overview Logistics Last lecture Today HW5 due today
Sequential Logic in Verilog
1 COMP541 State Machines Montek Singh Feb 8, 2012.
ECE 551 Digital System Design & Synthesis Fall 2011 Midterm Exam Overview.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Ders 8: FSM Gerçekleme ve.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Finite State Machine (FSM) Nattha Jindapetch December 2008.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL State Machines Anselmo Lastra.
Introduction to ASIC flow and Verilog HDL
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 11, 2010.
Teaching Digital Logic courses with Altera Technology
1 COMP541 State Machines - II Montek Singh Feb 13, 2012.
2/3/2006EECS150 Lab Lecture #31 Implementation of FSMs EECS150 Spring 2006 – Lab Lecture #3 Guang Yang Greg Gibeling.
2/2/07EECS150 Lab Lecture #31 Verilog Synthesis & FSMs EECS150 Spring 2007 – Lab Lecture #3 Brent Mochizuki Greg Gibeling.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Chapter 11: System Design.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU 99-1 Under-Graduate Project Design of Datapath Controllers Speaker: Shao-Wei Feng Adviser:
Spring 2009W. Rhett DavisNC State UniversityECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 9: State Machines & Reset Behavior Spring.
EMT 351/4 DIGITAL IC DESIGN Verilog Behavioral Modeling  Finite State Machine -Moore & Mealy Machine -State Encoding Techniques.
Pusat Pengajian Kejuruteraan Mikroelektronik EMT 351/4 DIGITAL IC DESIGN Verilog Behavioural Modeling (Part 4) Week #
Lecture 5. Verilog HDL #3 Prof. Taeweon Suh Computer Science & Engineering Korea University COSE221, COMP211 Logic Design.
1 Lecture 3: Modeling Sequential Logic in Verilog HDL.
Figure Implementation of an FSM in a CPLD..
Exp#7 Finite State Machine Design in Verilog COE203 Digital Logic Laboratory Dr. Ahmad Almulhem KFUPM Spring 2009.
Overview Logistics Last lecture Today HW5 due today
Supplement on Verilog FF circuit examples
Figure 8.1. The general form of a sequential circuit.
Last Lecture Talked about combinational logic always statements. e.g.,
© Copyright 2004, Gaetano Borriello and Randy H. Katz
Discussion 2: More to discuss
Verilog Introduction Fall
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
‘if-else’ & ‘case’ Statements
Supplement on Verilog Sequential circuit examples: FSM
Buttons and Debouncing Finite State Machine
HDL Compiler Unsupport (Do NOT use in your verilog code)
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
ESE 437: Sensors and Instrumentation
Logic Analyzers EECS150 Fall Lab Lecture #5 Arjun Singh
332:437 Lecture 8 Verilog and Finite State Machines
Introduction to Digital System and Microprocessor Design
EECS150 Fall 2007 – Lab Lecture #4 Shah Bawany
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Supplement on Verilog Sequential circuit examples: FSM
Designing with Verilog
Dr. Tassadaq Hussain Introduction to Verilog – Part-3 Expressing Sequential Circuits and FSM.
ASM and Micro-programmed State Machines
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
The Verilog Hardware Description Language
Good Design & Network Audio
Logic Analyzers EECS150 Fall Lab Lecture #5 Arjun Singh
Dr. Tassadaq Hussain Introduction to Verilog – Part-4 Expressing FSM in Verilog (contd) and FSM State Encoding Dr. Tassadaq Hussain.
332:437 Lecture 8 Verilog and Finite State Machines
Lecture 7: Verilog Part II
Presentation transcript:

Verilog Synthesis & FSMs EECS150 Fall2008 - Lab Lecture #3 Ilia Lebedev Adopted from slides designed by Greg Gibeling 9/19/2008 EECS150 Lab Lecture #3

Today Designing Digital Logic Efficient Hardware Design HDL Simulation Blocking vs. Non-Blocking (revisited) Administrative Info Lab #3: The Combo Lock FSMs in Verilog 9/19/2008 EECS150 Lab Lecture #3

Designing Digital Logic (1) High Level Design Top Down Design Partitioning & Interfaces Implementing the Design Follow the flow of data Start with Inputs Determine State Generate Outputs 9/19/2008 EECS150 Lab Lecture #3

Designing Digital Logic (2) Start with Inputs What are they? Possible Values Timing Process Them Raw inputs are often not what you need Might need delay/timing change Might look for a specific value/range 9/19/2008 EECS150 Lab Lecture #3

Designing Digital Logic (3) Determine State What does the module need to remember? Has it seen a particular input How many cycles have passed Design Memory for State Generalized FSM Standard D Register Counter Shift Register 9/19/2008 EECS150 Lab Lecture #3

Designing Digital Logic (4) Generate Outputs What are they? Possible Values Timing Create the outputs Don’t set them, they’re not variables Compute them from state (and inputs) Learn to think in Boolean equations assign is your friend 9/19/2008 EECS150 Lab Lecture #3

Efficient Hardware Design (1) always @ (*) begin if (a) Z = A + B; else Z = A + C; end always @ (*) begin if (a) aux =B; else aux = C; Z = A + aux; end 9/19/2008 EECS150 Lab Lecture #3

Efficient Hardware Design (2) assign B = 3; assign Z = A * B; assign Z = A + (2 * A); assign Z = A + (A << 1); assign Z = A + {A, 1’b0}; 9/19/2008 EECS150 Lab Lecture #3

Efficient Hardware Design (3) assign aux = A + {1’b0, A[n-1:1]}; assign Z = {aux, A[0]}; 9/19/2008 EECS150 Lab Lecture #3

HDL Simulation (1) Software Based Simulation Drawbacks Fast, simple and accurate Allows for simulation at any precision Easy to see any signal Perfect Visibility Drawbacks Simulator Dependant Deadlocks are Possible! Simulation != Synthesis 9/19/2008 EECS150 Lab Lecture #3

HDL Simulation (2) Event Driven Simulation Implications Maintain a queue of events Pull next event off the queue Determine its consequences Add more events to the queue Implications Verilog is not executed! Things don’t necessarily happen in order Verilog is SIMULATED 9/19/2008 EECS150 Lab Lecture #3

Blocking vs. Non-Blocking revisited (1) Verilog Fragment Result always @ ( * ) begin b = a; c = b; end C = B = A always @ (posedge Clock) begin b <= a; c <= b; end B = Old A C = Old B 9/19/2008 EECS150 Lab Lecture #3

Blocking vs. Non-Blocking revisited (2) Use Non-Blocking for FlipFlop Inference posedge/negedge require Non-Blocking Else simulation and synthesis wont match Use #1 to show causality always @ (posedge Clock) begin b <= #1 a; c <= #1 b; end 9/19/2008 EECS150 Lab Lecture #3

Administrative Info Lab Policy Getting Help with Verilog Card Keys Webcast (again) 9/19/2008 EECS150 Lab Lecture #3

Kramnik Terminal Server How-To Currently has old tools. Update soon. Log in from off campus Run simulations Transfer files How-To Its pretty easy http://www-inst.eecs.berkeley.edu/~cs150/sp05/Kramnik.htm 9/19/2008 EECS150 Lab Lecture #3

Lab #3: The Combo Lock (1) Used to control entry to a locked room 2bit, 2 digit combo (By Default 11, 01) Set code to 11, Press Enter Set code to 01, Press Enter Lock Opens (Open = 1) 9/19/2008 EECS150 Lab Lecture #3

Lab #3: The Combo Lock (2) Signal Width Dir Description Code 2 I Code from the dipswitches Enter 1 Enter button (examine the code) ResetCombo Reset to the default combination Clock System Clock Reset System Reset, doesn’t affect the combo Open O Indicates the lock is open Error Indicates a bad combination Prog1 Reprogramming the first digit Prog2 Reprogramming the second digit LED 8 Use these for debugging 9/19/2008 EECS150 Lab Lecture #3

Lab #3: The Combo Lock (3) Example 1: 1: Press ResetCombo, Combo: 2’b11, 2’b01 2: Set 2’b11, Press Enter 3: Set 2’b01, Press Enter, LEDs: “OPEN” 4: Press Enter, LEDs: “Prog1” 5: Set 2’b00, Press Enter, LEDs: “Prog2” 6: Set 2’b10, Press Enter, LEDs: “OPEN” 7: Combo: 2’b00, 2’b10 9/19/2008 EECS150 Lab Lecture #3

Lab #3: The Combo Lock (4) Example 2: 1: Press ResetCombo, Combo: 2’b11, 2’b01 2: Set 2’b01, Press Enter 3: Set 2’b01, Press Enter, LEDs: “Error” Why doesn’t “Error” show until step 3? 9/19/2008 EECS150 Lab Lecture #3

Lab #3: The Combo Lock (5) 9/19/2008 EECS150 Lab Lecture #3

Lab #3: The Combo Lock (6) 9/19/2008 EECS150 Lab Lecture #3

Lab #3: The Combo Lock (7) Debugging with LEDs A powerful way to debug Easy to understand Lower overhead than other debugging tools A great way to see NextState/CurrentState Drawbacks Slow, can’t see fast events No timing information, no waveform Limited number Dipswitches! 9/19/2008 EECS150 Lab Lecture #3

FSMs in Verilog (1) Mealy Machines Moore Machines Output based on input and state Can have major timing problems Moore Machines Output based on current state Easier to work with Slightly harder to build Mealy Machine Moore Machine 9/19/2008 EECS150 Lab Lecture #3

FSMs in Verilog (2) Two always blocks Generate Outputs 1st: CurrentState Register Clocked Handles Reset 2nd: Generates NextState Uses CurrentState and Inputs Combinational Generate Outputs Use CurrentState only Use assigns 9/19/2008 EECS150 Lab Lecture #3

FSMs in Verilog (3) module MyFSM(In, Out, Clock, Reset); input In, Clock, Reset; output Out; parameter STATE_Idle = 1’b0, STATE_Run = 1’b1; STATE_X = 1’bx; reg CurrentState, NextState, Out; always @ (posedge Clock) begin if (Reset) CurrentState <= STATE_Idle; else CurrentState <= NextState; end … 9/19/2008 EECS150 Lab Lecture #3

FSMs in Verilog (4) … always @ ( * ) begin NextState = CurrentState; Out = 1’b0; // The case block goes here // Its on the next slide… end endmodule 9/19/2008 EECS150 Lab Lecture #3

FSMs in Verilog (5) case (CurrentState) STATE_Idle: begin if (In) NextState = STATE_Run; Out = 1’b0; end STATE_Run: begin if (In) NextState = STATE_Idle; Out = 1’b1; default: begin NextState = STATE_X; Out = 1’bX; endcase 9/19/2008 EECS150 Lab Lecture #3