CPE 201 Digital Design Lecture 25: Register Transfer Level Design (2)

Slides:



Advertisements
Similar presentations
Lecture 23: Registers and Counters (2)
Advertisements

Lab 9: Matrix Keypad : ”No Key Press” Analysis Slide #2 Slide #3 ”Press and Hold Key 5” Analysis.
The 8051 Microcontroller and Embedded Systems
Registers and Counters
1 Counter with Parallel Load Up-counter that can be loaded with external value –Designed using 2x1 mux – ld input selects incremented value or external.
Programmable Interval Timer
Digital Design - Sequential Logic Design Chapter 3 - Sequential Logic Design.
Flip-Flops, Registers, Counters, and a Simple Processor
Henry Hexmoor1 Chapter 7 Henry Hexmoor Registers and RTL.
Sequential Logic Design Process A sequential circuit that controls Boolean outputs and a specific time- ordered behavior is called a controller. StepDescription.
Register-Transfer Level (RTL) Design
Chapter 9: Hardware Description Languages
1 Register-Transfer Level (RTL) Design Recall –Chapter 2: Combinational Logic Design First step: Capture behavior (using equation or truth table) Remaining.
Digital Design Copyright © 2006 Frank Vahid 1 a b F InputsOutput a'b'a' b Converting among Representations Can convert from any representation.
1 EECS Components and Design Techniques for Digital Systems Lec 21 – RTL Design Optimization 11/16/2004 David Culler Electrical Engineering and Computer.
Basic Register Typically, we store multi-bit items
Register-Transfer Level (RTL) Design The combination of a controller and datapath is known as a processor. The most common method of designing a processor.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Ders 9: RTL Design.
9/15/09 - L25 Registers & Load Enable Copyright Joanne DeGroat, ECE, OSU1 Registers & Load Enable.
Counters and Registers
Lecture 21 Overview Counters Sequential logic design.

Elevator Controller We’re hired to design a digital elevator controller for a four-floor building st try: Design a counter that counts up.
1 4-Integrating Peripherals in Embedded Systems. 2 Introduction Single-purpose processors  Performs specific computation task  Custom single-purpose.
Rabie A. Ramadan Lecture 3
CoE3DJ4 Digital Systems Design Chapter 4: Timer operation.
Lecture 16 Today’s topics: –MARIE Instruction Decoding and Control –Hardwired control –Micro-programmed control 1.
Vintage Computer Hardware 101 Featuring the MITS Altair 680b Bill Degnan.
Computer Design Basics
Introduction to Sequential Logic Design Finite State-Machine Design.
© 2005 Pearson Addison-Wesley. All rights reserved Figure 2.1 This chapter focuses on key hardware layer components.
Register Transfer Level & Design with ASM
CS 352 : Computer Organization and Design University of Wisconsin-Eau Claire Dan Ernst Latches & Flip-Flops.
Instructor: Alexander Stoytchev
11/17/2007DSD,USIT,GGSIPU1 RTL Systems References: 1.Introduction to Digital System by Milos Ercegovac,Tomas Lang, Jaime H. Moreno; wiley publisher 2.Digital.
Computer Hardware A computer is made of internal components Central Processor Unit Internal External and external components.
Digital Design 2e Copyright © 2010 Frank Vahid 1 How To Capture Desired Behavior as FSM List states –Give meaningful names, show initial state –Optionally.
Registers 4.2 N-bit register: Stores N bits, N is the width
Lecture 21: Registers and Counters (1)
Computer Organization CDA 3103 Dr. Hassan Foroosh Dept. of Computer Science UCF © Copyright Hassan Foroosh 2002.
Module 11 Adapted By and Prepared James Tan © 2001.
© 2009 Pearson Education, Upper Saddle River, NJ All Rights ReservedFloyd, Digital Fundamentals, 10 th ed Digital Logic Design Dr. Oliver Faust.
Register Transfer Languages (RTL)
EEE2243 Digital System Design Chapter 7: RTL Design by Muhazam Mustapha, March 2011.
Digital Design 2e Copyright © 2010 Frank Vahid 1 RTL Design Process: Create a datapath Sub-steps –HLSM data inputs/outputs  Datapath inputs/outputs. –HLSM.
REGISTER TRANSFER LANGUAGE (RTL) INTRODUCTION TO REGISTER Registers1.
1 3 Computing System Fundamentals 3.2 Computer Architecture.
Chapter 5 Computer Organization TIT 304/TCS 303. Purpose of This Chapter In this chapter we introduce a basic computer and show how its operation can.
1 4-Integrating Peripherals in Embedded Systems. 2 Introduction Single-purpose processors  Performs specific computation task  Custom single-purpose.
Digital Design - Sequential Logic Design
REGISTER TRANSFER LANGUAGE (RTL)
Clocks A clock is a free-running signal with a cycle time.
Instructor: Alexander Stoytchev
4-Integrating Peripherals in Embedded Systems
Overview Instruction Codes Computer Registers Computer Instructions
Asynchronous Inputs of a Flip-Flop
Processor (I).
Instructor: Alexander Stoytchev
Instructor: Alexander Stoytchev
ECE 434 Advanced Digital System L13
Introduction to Sequential Circuits
CSE 370 – Winter Sequential Logic-2 - 1
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
Counters Next, we’ll look at different kinds of counters and discuss how to build them. These are not only examples of sequential analysis and design,
Programmable Logic Controllers (PLCs)
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
Learning Outcome By the end of this chapter, students are expected to understand the principle of RTL design.
Counters Next, we’ll look at different kinds of counters and discuss how to build them. These are not only examples of sequential analysis and design,
ECE 352 Digital System Fundamentals
Presentation transcript:

CPE 201 Digital Design Lecture 25: Register Transfer Level Design (2)

2 Lecture Outline RTL Design Examples

3 Step 1 Example: Laser-Based Distance Measurer Example of how to create a high-level state machine to describe desired processor behavior Laser-based distance measurement – pulse laser, measure time T to sense reflection –Laser light travels at speed of light, 3*10 8 m/sec –Distance is thus D = T sec * 3*10 8 m/sec / 2 Object of interest D 2D = T sec * 3*10 8 m/sec sensor laser T (in seconds)

4 Step 1 Example: Laser-Based Distance Measurer Inputs/outputs –B: bit input, from button to begin measurement –L: bit output, activates laser –S: bit input, senses laser reflection –D: 16-bit output, displays computed distance sensor laser T (in seconds) Laser-based distance measurer 16 from button to display S L D B to laser from sensor

5 Step 1 Example: Laser-Based Distance Measurer Step 1: Create high-level state machine Begin by declaring inputs and outputs Create initial state, name it S0 –Initialize laser to off (L=0) –Initialize displayed distance to 0 (D=0) Laser- based distance measurer 16 from button to display S L D B to laser from sensor Inputs:B, S(1 bit each) Outputs:L (bit), D (16 bits) S0 ? L = 0 (laser off) D = 0 (distance = 0)

6 Step 1 Example: Laser-Based Distance Measurer Add another state, call S1, that waits for a button press –B’ – stay in S1, keep waiting –B – go to a new state S2 Inputs: B, S (1 bit each) Outputs: L (bit), D (16 bits) S0 L = 0 D = 0 S1 ? B’ (button not pressed) B (button pressed) S0 Q: What should S2 do?A: Turn on the laser Laser- based distance measurer 16 from button to display S L D B to laser from sensor

7 Step 1 Example: Laser-Based Distance Measurer Add a state S2 that turns on the laser (L=1) Then turn off laser (L=0) in a state S3 S0S1S2 L = 0 D = 0 L = 1 (laser on) S3 L = 0 (laser off) B’ B Q: What to do next?A: Start timer, wait to sense reflection Laser- based distance measurer 16 from button to display S L D B to laser from sensor Inputs: B, S (1 bit each) Outputs: L (bit), D (16 bits)

8 Step 1 Example: Laser-Based Distance Measurer Stay in S3 until sense reflection (S) To measure time, count cycles while we are in S3 –To count, declare local register Dctr –Increment Dctr each cycle in S3 –Initialize Dctr to 0 in S1 (S2 would have been OK too) to display Laser-based distance measurer 16 from button S L D B to laser from sensor Local Registers: Dctr (16 bits) S0S1S2S3 L = 0 D = 0 L = 1L = 0 Dctr = Dctr + 1 (count cycles) Dctr = 0 (reset cycle count) B’ B S’ (no reflection) S (reflection) ? Inputs: B, S (1 bit each) Outputs: L (bit), D (16 bits)

9 Step 1 Example: Laser-Based Distance Measurer Once reflection detected (S), go to new state S4 –Calculate distance –Assuming clock frequency is 3x10 8, Dctr holds number of meters, so D=Dctr/2 After S4, go back to S1 to wait for button again S0S1S2S3 L = 0 D = 0 L = 1L=0 Dctr = Dctr + 1 Dctr = 0 B’ S’ BS D = Dctr / 2 (calculate D) S4 Local Registers: Dctr (16 bits) Inputs: B, S (1 bit each) Outputs: L (bit), D (16 bits) to display Laser-based distance measurer 16 from button S L D B to laser from sensor

10 Step 2: Create a Datapath Datapath must –Implement data storage –Implement data computations Look at high-level state machine, do three substeps a)Make data inputs/outputs be datapath inputs/outputs b)Instantiate declared local registers into the datapath (also instantiate a register for each data output) c)Examine every state and transition, and instantiate datapath components and connections to implement any data computations Instantiate: to introduce a new component into a design.

11 Step 2 Example: Laser-Based Distance Measurer (a) Make data inputs/outputs be datapath inputs/outputs (b) Instantiate declared registers into the datapath (also instantiate a register for each data output) (c) Examine every state and transition, and instantiate datapath components and connections to implement any data computations Datapath Dreg_clr Dctr_clr Dctr_cnt Dreg_ld Local Registers: Dctr (16 bits) S0S1S2S3 L = 0 D = 0 L = 1L=0 Dctr = Dctr + 1 Dctr = 0 B ‘ S ‘ BS D = Dctr / 2 (calculate D) S4 load Q I Dreg: 16-bit register Q Dctr: 16-bit up-counter 16 D clear count a Inputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)

12 Step 2 Example: Laser-Based Distance Measurer (c) (continued) Examine every state and transition, and instantiate datapath components and connections to implement any data computations clear count clear load QQ I Dctr: 16-bit up-counter Dreg: 16-bit register 16 D Datapath Dreg_clr Dctr_clr Dctr_cnt Dreg_ld 16 >>1 Local Registers: Dctr (16 bits) S0S1S2S3 L = 0 D = 0 L = 1L=0 Dctr = Dctr + 1 Dctr = 0 B ‘ S ‘ BS D = Dctr / 2 (calculate D) S4 Inputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)

13 Step 3: Connecting the Datapath to a Controller Laser-based distance measurer example Easy – just connect all control signals between controller and datapath 300 MHz Clock D B L S 16 to display from button Controller to laser from sensor Datapath Dreg_clr Dreg_ld Dctr_clr Dctr_cnt

14 Step 4: Deriving the Controller’s FSM FSM has same structure as high-level state machine –Inputs/outputs all single bits now –Replace data operations by bit operations using datapath Inputs: B, S Outputs: L, Dreg_clr, Dreg_ld, Dctr_clr, Dctr_cnt S0S1S2S3 L = 0L = 1L = 0 B’ S’ BS S4 L = 0 Inputs: B, S (1 bit each)Outputs: L (bit), D (16 bits) Local Registers: Dctr (16 bits) S0S1S2S3 L = 0 D = 0 L = 1L=0 Dctr = Dctr + 1 Dctr = 0 B’ S’ BS D = Dctr / 2 (calculate D) S4 a Dreg_clr = 1 Dreg_ld = 0 Dctr_clr = 0 Dctr_cnt = 0 (laser off) (clear D reg) Dreg_clr = 0 Dreg_ld = 0 Dctr_clr = 1 Dctr_cnt = 0 (clear count) Dreg_clr = 0 Dreg_ld = 0 Dctr_clr = 0 Dctr_cnt = 0 (laser on) Dreg_clr = 0 Dreg_ld = 0 Dctr_clr = 0 Dctr_cnt = 1 (laser off) (count up) Dreg_clr = 0 Dreg_ld = 1 Dctr_clr = 0 Dctr_cnt = 0 (load D reg with Dctr/2) (stop counting)

15 Step 4: Deriving the Controller’s FSM Using shorthand notation: if not shown, it’s 0 S0S1S2S3 L = 0L = 1L = 0 B’ S’ BS S4 L = 0 Dreg_clr = 1 Dreg_ld = 0 Dctr_clr = 0 Dctr_cnt = 0 (laser off) (clear D reg) Dreg_clr = 0 Dreg_ld = 0 Dctr_clr = 1 Dctr_cnt = 0 (clear count) Dreg_clr = 0 Dreg_ld = 0 Dctr_clr = 0 Dctr_cnt = 0 (laser on) Dreg_clr = 0 Dreg_ld = 0 Dctr_clr = 0 Dctr_cnt = 1 (laser off) (count up) Dreg_clr = 0 Dreg_ld = 1 Dctr_clr = 0 Dctr_cnt = 0 (load D reg with Dctr/2) (stop counting) S0S1S2S3 B’S’ BS S4 Inputs: B, S Outputs: L, Dreg_clr, Dreg_ld, Dctr_clr, Dctr_cnt Dreg_clr = 1Dctr_clr = 1Dctr_cnt = 1Dreg_ld = 1L = 1

16 Step 4 Implement FSM as state register and logic to complete the design 300 MHz Clock D B L S 16 to display from button Controller to laser from sensor Datapath Dreg_clr Dreg_ld Dctr_clr Dctr_cnt S0S1S2S3 B’S’ BS S4 Inputs: B, S Outputs: L, Dreg_clr, Dreg_ld, Dctr_clr, Dctr_cnt Dreg_clr = 1Dctr_clr = 1Dctr_cnt = 1Dreg_ld = 1L = 1

17 RTL Design Examples and Issues We’ll use several more examples to illustrate RTL design E.g.: Bus interface –Master processor can read register from any peripheral Each register has unique 4-bit address –Sets rd=1, A=address –Appropriate peripheral places register data on 32-bit D lines Periph’s address provided on Faddr inputs (maybe from another register) 32 4 A rd D Per0Per1Per15 Master processor Faddr 4 ADrd Bus interface Main part Peripheral Q 32 to/from processor bus 32 4

18 RTL Example: Bus Interface Step 1: Create high-level state machine –State WaitMyAddress Output “nothing” (“Z”) on D, store peripheral’s register value Q into local register Q1 Wait until this peripheral’s address is seen (A=Faddr) and rd=1 –State SendData Output Q1 onto D, wait for rd=0 (meaning main processor is done reading the D lines) Inputs: rd (bit); Q (32 bits); A, Faddr (4 bits) Outputs: D (32 bits) Local register: Q1 (32 bits) rd’ rd D = “Z” Q1 = Q (A = Faddr) and rd ((A = Faddr) and rd)’ D = Q1 WaitMyAddress SendData

19 RTL Example: Bus Interface WaitMyAddress Inputs: rd (bit); Q (32 bits); A, Faddr (4 bits) Outputs: D (32 bits) Local register: Q1 (32 bits) rd’ rd SendData D = “Z” Q1 = Q (A = Faddr) and rd ((A = Faddr) and rd)’ D = Q1

20 RTL Example: Bus Interface WaitMyAddress Inputs: rd (bit); Q (32 bits); A, Faddr (4 bits) Outputs: D (32 bits) Local register: Q1 (32 bits) rd’ rd SendData D = “Z” Q1 = Q (A = Faddr) and rd ((A = Faddr) and rd)’ D = Q1 Step 2: Create a datapath (a) Datapath inputs/outputs (b) Instantiate declared registers (c) Instantiate datapath components and connections Datapath Bus interface Q1_ld ld Q1 FQaddr 4432 A D_en A_eq_Faddr = (4-bit) 32 D

21 RTL Example: Bus Interface Step 3: Connect datapath to controller Step 4: Derive controller’s FSM WaitMyAddress Inputs: rd (bit); Q (32 bits); A, Faddr (4 bits) Outputs: D (32 bits) Local register: Q1 (32 bits) rd’ rd SendData D = “Z” Q1 = Q (A = Faddr) and rd ((A = Faddr) and rd)’ D = Q1 rd Inputs: rd, A_eq_Faddr (bit) Outputs: Q1_ld, D_en (bit) WaitMyAddress rd ‘ rd SendData D_en = 0 Q1_ld = 1 D_en = 1 Q1_ld = 0 A_eq_Faddr andrd (A_eq_Faddr andrd) ‘ Datapath Bus interface Q1_ld ld Q1 FaddrQ 4432 A D_en A_eq_Faddr = (4-bit) 32 D

22 Readings Chapter 8 –Sections 8.5, 8.6