UCR EE 120A - Register-Transfer Level (RTL) Design

Unformatted text preview:

Register-Transfer Level (RTL) DesignRTL Design MethodStep 1: Laser-Based Distance MeasurerSlide 4Slide 5Slide 6Slide 7Slide 8Slide 9Step 2: Create a DatapathStep 2: Laser-Based Distance MeasurerSlide 12Step 3: Connecting the Datapath to a ControllerStep 4: Deriving the Controller’s FSMSlide 15Step 41Register-Transfer Level (RTL) Design•Recall–Chapter 2: Combinational Logic Design•First step: Capture behavior (using equation or truth table)•Remaining steps: Convert to circuit–Chapter 3: Sequential Logic Design•First step: Capture behavior (using FSM)•Remaining steps: Convert to circuit•RTL Design (the method for creating custom processors)–First step: Capture behavior (using high-level state machine, to be introduced) –Remaining steps: Convert to circuitCapture behaviorConvert to circuit2RTL Design Method3Step 1: 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*108 m/sec –Distance is thus D = T sec * 3*108 m/sec / 2Object ofinterestD2D = T sec * 3*108 m/secsensorlaserT (in seconds)4Step 1: 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 sensorlaserT (in seconds)Laser-baseddistancemeasurer16from buttonto displaySLDBto laserfrom sensor5Step 1: 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-baseddistancemeasurer16from buttonto displaySLDBto laserfrom sensorInputs: B, S(1 bit each)Outputs:L (bit), D (16 bits)S0?L = 0 (laser off)D = 0 (distance = 0)a6Step 1: 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 S2Inputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)S0L = 0D = 0S1?B’ (button not pressed)B(buttonpressed)S0Q: What should S2 do? A: Turn on the laseraaLaser-baseddistancemeasurer16from buttonto displaySLDBto laserfrom sensor7Step 1: Laser-Based Distance Measurer•Add a state S2 that turns on the laser (L=1)•Then turn off laser (L=0) in a state S3S0 S1 S2L = 0D = 0L = 1(laser on)S3L = 0(laser off)B’BaQ: What do next? A: Start timer, wait to sense reflectionaLaser-baseddistancemeasurer16from buttonto displaySLDBto laserfrom sensorInputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)8Step 1: Laser-Based Distance Measurer•Stay in S3 until sense reflection (S)•To measure time, count cycles for which 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 O.K. tooLaser-baseddistancemeasurer16from buttonto displaySLDBto laserfrom sensorLocal Registers: Dctr (16 bits)S0 S1 S2 S3L = 0D = 0L = 1 L = 0Dctr = Dctr + 1(count cycles)Dctr = 0(reset cyclecount)B’BS’ (no reflection)S (reflection)?aInputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)9Step 1: Laser-Based Distance Measurer•Once reflection detected (S), go to new state S4–Calculate distance –Assuming clock frequency is 3x108, Dctr holds number of meters, so D=Dctr/2•After S4, go back to S1 to wait for button againLaser-baseddistancemeasurer16from buttonto displaySLDBto laserfrom sensorS0 S1 S2 S3L = 0D = 0L = 1 L=0Dctr = Dctr + 1Dctr = 0B’S’B SD = Dctr / 2(calculate D)S4aLocal Registers: Dctr (16 bits)Inputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)10Step 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 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 computationsInstantiate: to introduce a new component into a design.11Step 2: 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 computationsDatapathDreg_clrDctr_clrDctr_cntDreg_ldLocal Registers: Dctr (16 bits)S0 S1 S2 S3L = 0D = 0L = 1 L=0Dctr = Dctr + 1Dctr = 0B‘S‘B SD = Dctr / 2(calculate D)S4loadQIDreg: 16-bitregisterQDctr: 16-bitup-counter16DclearclearcountaInputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)12Step 2: Laser-Based Distance Measurer(c) (continued) Examine every state and transition, and instantiate datapath components and connections to implement any data computationsclearcountclearloadQ QIDctr: 16-bitup-counterDreg: 16-bitregister16DDatapathDreg_clrDctr_clrDctr_cntDreg_ld1616>>1aLocal Registers: Dctr (16 bits)S0 S1 S2 S3L = 0D = 0L = 1 L=0Dctr = Dctr + 1Dctr = 0B‘S‘B SD = Dctr / 2(calculate D)S4Inputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)13Step 3: Connecting the Datapath to a Controller•Laser-based distance measurer example•Easy – just connect all control signals between controller and datapath300 MHz ClockDBLS16to displayfrom buttonControllerto laserfrom sensorDatapathDreg_clrDreg_ldDctr_clrDctr_cntclearcountclearloadQQIDctr: 16-bitup-counterDreg: 16-bitregister16DDatapathDreg_clrDctr_clrDctr_cntDreg_ld1616>>114Step 4: Deriving the Controller’s FSM•FSM has same structure as high-level state machine–Inputs/outputs all bits now–Replace data operations by bit operations using datapath300 MHz ClockDBLS16to displayfrom buttonControllerto laserfrom sensorDatapathDreg_clrDreg_ldDctr_clrDctr_cntInputs: B, SOutputs: L, Dreg_clr, Dreg_ld, Dctr_clr, Dctr_cntS0 S1 S2 S3L = 0 L = 1 L = 0L = 0B’S’B SS4L = 0Inputs: B, S (1 bit each)Outputs: L (bit), D (16 bits)Local Registers: Dctr (16 bits)S0 S1 S2 S3L = 0D = 0L = 1 L=0Dctr = Dctr + 1Dctr = 0B’S’B SD = Dctr / 2(calculate D)S4aDreg_clr = 1Dreg_ld = 0Dctr_clr = 0Dctr_cnt = 0(laser off)(clear D reg)Dreg_clr = 0Dreg_ld = 0Dctr_clr = 1Dctr_cnt = 0(clear count)Dreg_clr = 0Dreg_ld = 0Dctr_clr = 0Dctr_cnt = 0(laser on)Dreg_clr = 0Dreg_ld =


View Full Document

UCR EE 120A - Register-Transfer Level (RTL) Design

Download Register-Transfer Level (RTL) Design
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Register-Transfer Level (RTL) Design and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Register-Transfer Level (RTL) Design 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?