Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2...
Transcript of Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2...
![Page 1: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/1.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 1
Register Transfer
Methodology II
![Page 2: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/2.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 2
Outline
1. Design example: One–shot pulse
generator
2. Design Example: GCD
3. Design Example: UART
4. Design Example: SRAM Interface
Controller
5. Square root approximation circuit
![Page 3: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/3.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 3
1. One–shot pulse generator
• Sequential circuit divided into
– Regular sequential circuit: w/ regular next-state logic
– FSM: w/ random next-state logic
– FSMD: w/ both
• Division for code development; no formal
definition;
• Some design can be coded in different types
• FSMD is most flexible
• One–shot pulse generator as an example
![Page 4: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/4.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 4
• Basic block diagram
![Page 5: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/5.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 5
• Refined block diagram of FSMD
![Page 6: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/6.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 6
• Regular sequential circuit. E.g., mod-10
counter
![Page 7: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/7.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 7
• FSM. E.g., edge-detection circuit
![Page 8: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/8.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 8
• FSMD.
E.g., multiplier
![Page 9: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/9.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 9
• One-shot pulse generator
– I/O: Input: go, stop; Output: pulse
– go is the trigger signal, usually asserted for
only one clock cycle
– During normal operation, assertion of go
activates pulse for 5 clock cycles
– If go is asserted again during this interval, it
will be ignored
– If stop is asserted during this interval, pulse
will be cut short and return to 0
![Page 10: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/10.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 10
• FSM implementation
![Page 11: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/11.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 11
![Page 12: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/12.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 12
![Page 13: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/13.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 13
![Page 14: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/14.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 14
• Regular sequential circuit implementation
– Based on a mod-5 counter
– Use a flag FF to indicate whether counter should be active
– Code difficult to comprehend
![Page 15: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/15.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 15
![Page 16: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/16.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 16
• FSMD Implementation
![Page 17: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/17.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 17
![Page 18: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/18.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 18
![Page 19: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/19.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 19
• Comparison:
– FSMD is most flexible and easy to
comprehend
• What happens to the following
modifications
– The delay extend from 5 cycles to 100 cycles
– The stop signal is only effective for the first 2
delay cycles and will be ignored otherwise
![Page 20: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/20.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 20
• “Programmable” one-shot generator
– The desired width can be programmed.
– The circuit enters the programming mode when both go and stop are asserted
– The desired width shifted in via go in the next
three clock cycles
![Page 21: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/21.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 21
• Can be easily
extended in
ASMD chart
• How about FSM
and regular
sequential circuit?
![Page 22: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/22.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 22
2. GCD circuit
• GCD: Greatest Common Divisor
– E.g, gcd(1, 10)=1, gcd(12,9)=3
• GCD without division:
![Page 23: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/23.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 23
• Pseudo algorithm
![Page 24: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/24.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 24
• Modified pseudo algorithm w/o while loop
![Page 25: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/25.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 25
• ASMD chart
![Page 26: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/26.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 26
• VHDL code
![Page 27: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/27.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 27
![Page 28: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/28.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 28
![Page 29: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/29.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 29
• What is the problem of this code?
• Another observation
![Page 30: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/30.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 30
![Page 31: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/31.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 31
• What is the performance now?
• Can we do better with more hardware
resources
![Page 32: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/32.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 32
3. SRAM Controller
• SRAM = Static Random Access Memory
• To improve density, clock is not used
• Basic Signals
– Oe = Output enable
– Cs = chip select
– We write enable
• Read cycle (when data becomes valid)
– Address or oe-controlled
![Page 33: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/33.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 33
• Basic block diagram
![Page 34: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/34.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 34
• Taa = Address access time– Roughly used as “speed” e.g. “20-ns SRAM”
• Toh = Output hold time– Time data valid after address change
• Trc = Total (min) time of read cycle– Close to Taa for SRAM
READ CYCLE
![Page 35: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/35.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 35
• Tolz = Output enable to low Z time– Time to leave high-Z state after OE enabled
• Toe = Output enable to output valid time– Time data valid after OE
• Tohz = Output to Z time– Time to enter Hi-Z state after OE disabled
![Page 36: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/36.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 36
• Twp = Time that we asserted– Data is latched during this period
• Tas = Address setup time– Time address valid before we
• Tah = Address hold time– Time address valid after we
WRITE CYCLE
![Page 37: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/37.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 37
• Tds = Data setup time– Time data valid before latching edge (we 0 to 1)
• Tdh = Data hold time– Time data valid after latching edge
• Twr = Write cycle time– Time (min) between write operations
WRITE CYCLE
![Page 38: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/38.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 38
• Example Timing Parameters
![Page 39: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/39.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 39
• Takes commands from system
• Executes read/write cycles
• Role of SRAM Controller
![Page 40: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/40.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 40
• Block Diagram
![Page 41: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/41.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 41
• Sketch FSM
– Activities of read/write cycles
• Refine
– Consider actual timings
– Identify overlapping operations
• Control Path of SRAM Controller
![Page 42: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/42.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 42
• 5 State write cycle
![Page 43: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/43.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 43
• Revised 3 State write cycle
![Page 44: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/44.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 44
• Control Path
for Slow
SRAM
![Page 45: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/45.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 45
• Write Timing (if Tclk=25ns)
> 5ns> 20ns
> 70ns
> 35ns > 5 ns
![Page 46: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/46.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 46
• Revised States (Write)
• 5 Cycles
+ idle
= 150 ns
• Margin of at
least 5 ns
![Page 47: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/47.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 47
• Repeat Procedure for Read Cycle> 5ns < 120ns
> 120 ns
TohN/A
![Page 48: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/48.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 48
• Assumed ideal FSMD
– Ignoring: output delay, hold/setup time on Rs2m
• More detailed read timing
Tctrl = OE output
delay or Addr
output delay
Toz = Time to High-
Z after OE goes
high
![Page 49: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/49.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 49
• Setup Time Check
– Minimize Tctrloutput look-ahead
Tctrl = Tcq
– 120ns SRAM
25ns Clock
– Met by most device technologies
![Page 50: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/50.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 50
• Hold Time Check
– Since Tctrl = Tcq ,
also easily met
• Other considerations
– Data bus conflict
– Tds, Tdh
– Because of large margin
Ideal, initial analysis probably valid
![Page 51: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/51.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 51
• Final SRAM
Controller
![Page 52: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/52.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 52
• Slow SRAM controller
Only suitable for sporadic access
• What about
Fast 20-ns
SRAM?
![Page 53: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/53.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 53
– Meets timing, but very narrow margin
– Manual fine-tuning
– If back-to-back, requires cell-level (not RTL) design
• One Clock Cycle Access (+idle)
![Page 54: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/54.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 54
Square root approximation circuit
• A example of data-oriented (computation-intensive) application
• Equation:
• 0.125x and 0.5y corresponds to shift right 3 bits and 1 bit
![Page 55: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/55.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 55
• Pseudo code:
![Page 56: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/56.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 56
• Direct “data-flow” implementation
![Page 57: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/57.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 57
![Page 58: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/58.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 58
• Requires one adder and six subtractors
• Code contains only concurrent signal
assignment statements
• The order is not important.
• Sequence of execution is embedded in the
flow of data
![Page 59: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/59.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 59
• Data flow graph
– Shows data dependency
– Node (circle): an operation
– Arcs: input and output
variables
• Note that there is limited
degree of parallelism
– At most two operations can
be perform simultaneously
![Page 60: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/60.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 60
• RT methodology can be used to share the operators
• Tasks in converting a dataflow graph to an ASMD chart
– Scheduling: when a function (circle) can start execution
– Binding: which functional unit is assigned to perform the operation
• In square root algorithm,
– all operations can be performed by a modified addition unit
– No function unit is needed for shifting
![Page 61: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/61.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 61
• Scheduling with two functional units
![Page 62: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/62.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 62
• Scheduling with
one functional unit
![Page 63: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/63.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 63
• ASMD
chart
![Page 64: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/64.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 64
• Registers can be shared as well
– reduce the number of unique variables
– A variable can be reused if its value is no longer
needed
• E.g.,
![Page 65: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/65.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 65
![Page 66: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/66.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 66
• VHDL code
– Needs to manually code the data path to
ensure sharing of functional units
– One unit for abs and min
– One unit for abs, min, - and +
– Can be implemented by using an
adder/subtractor with special input and output
routing circuits
![Page 67: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/67.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 67
![Page 68: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/68.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 68
![Page 69: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/69.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 69
![Page 70: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/70.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 70
![Page 71: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/71.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 71
High-level synthesis
• Convert a “dataflow code” into ASMD based code (RTL code).
– RTL code can be optimized for performance (min # clock cycles), area (min # functional units) etc.
– Perform scheduling, binding
– Minimize # registers and muxes
• Mainly for computation intensive applications (e.g., DSP)
![Page 72: Register Transfer Methodology II · Methodology II. RTL Hardware Design by P. Chu Chapter 12 2 Outline 1. Design example: One–shot pulse generator 2. Design Example: GCD 3. Design](https://reader034.fdocuments.in/reader034/viewer/2022052104/603f1bc0fd47df1e162df841/html5/thumbnails/72.jpg)
RTL Hardware Design
by P. Chu
Chapter 12 72
Summary
Design examples:
Pulse Generator, GCD, SRAM, Sqrt. Approx.
RT Design Methodology
Flexible, often clearer than pure FSM
Important for initial algorithm to be efficient
Mapping Dataflow to FSMD
Scheduling/binding
Tradeoff of speed/area
High-level Synth for complex algorithms