![Page 1: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/1.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 1
Sequential Circuit Design:
Practice
![Page 2: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/2.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 2
Outline
1. Poor design practice and remedy
2. More counters
3. Register as fast temporary storage
4. Pipelined circuit
![Page 3: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/3.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 3
Outline
1. Poor design practice and remedy
2. More counters
3. Register as fast temporary storage
4. Pipelined circuit
![Page 4: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/4.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 4
1. Poor design practice and remedy
• Synchronous design is the most
important methodology
• Poor practice in the past (to save chips)
– Misuse of asynchronous reset
– Misuse of gated clock
– Misuse of derived clock
![Page 5: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/5.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 5
Misuse of asynchronous reset
• Poor design: use reset to clear register in normal operation.
• e.g., a poorly mod-10 counter
– Clear register immediately after the counter reaches 1010
![Page 6: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/6.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 6
![Page 7: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/7.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 7
![Page 8: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/8.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 8
• Problem
– Glitches in transition 1001 (9) => 0000 (0)
– Glitches in aync_clr can reset the counter
– How about timing analysis? (maximal clock
rate)
• Asynchronous reset should only be used
for power-on initialization
![Page 9: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/9.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 9
• Remedy: load “0000” synchronously
![Page 10: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/10.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 10
![Page 11: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/11.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 11
Misuse of gated clock
• Poor design: use an AND gate to disable the
clock, keeping register from getting new value
• E.g., a counter with an enable signal
![Page 12: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/12.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 12
![Page 13: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/13.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 13
![Page 14: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/14.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 14
• Problem
– Gated clock width can be narrow
– Gated clock may pass glitches of en
– Difficult to design the clock distribution
network
![Page 15: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/15.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 15
• Remedy: use a synchronous enable
![Page 16: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/16.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 16
Misuse of derived clock• Subsystems may run at different clock rate
• Poor design: use a derived slow clock for slow
subsystem
![Page 17: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/17.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 17
• Problem
– Multiple clock distribution network
– How about timing analysis? (maximal clock
rate)
![Page 18: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/18.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 18
• Better use a synchronous one-clock enable pulse
![Page 19: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/19.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 19
• E.g., second and minutes counter
– Input: 1 MHz clock
– Poor design:
![Page 20: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/20.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 20
– Better design
![Page 21: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/21.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 21
• VHDL code of poor design
![Page 22: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/22.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 22
![Page 23: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/23.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 23
![Page 24: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/24.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 24
![Page 25: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/25.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 25
• Remedy: use a synchronous 1-clock pulse
![Page 26: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/26.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 26
![Page 27: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/27.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 27
A word about power
• Power is a major design criteria now
• In CMOS technology
– Dynamic power is proportional to the switching
frequency of transistors
– High clock rate implies high switching freq
• Clock manipulation
– Can reduce switching frequency
– But should not be done at RT level
![Page 28: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/28.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 28
• Development flow:
1. Design/synthesize/verify a regular
synchronous subsystems
2(a). Derived clock: use special circuit (PLL etc.)
to obtain derived clocks
2(b). Gated clock: use “power optimization”
software tool to convert some register into
gated clock
![Page 29: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/29.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 29
Outline
1. Poor design practice and remedy
2. More counters
3. Register as fast temporary storage
4. Pipelined circuit
![Page 30: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/30.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 30
• Counter circulates a set of specific patterns
• Counter:
– Binary
– Gray counter
– Ring counter
– Linear Feedback Shift Register (LFSR)
– BCD counter
![Page 31: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/31.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 31
• Binary counter:
– State follows binary counting sequence
– Use an incrementor for the next-state logic
d
clk
q
reset
+1r_reg r_next
reset
clk
q
![Page 32: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/32.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 32
• Gray counter:
– State changes one-
bit at a time
– Use a Gray
incrementor
![Page 33: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/33.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 33
![Page 34: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/34.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 34
![Page 35: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/35.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 35
Ring counter
• Circulate a single 1
• E.g., 4-bit ring counter:1000, 0100, 0010, 0001
• n patterns for n-bit register
• Output appears as an n-phase signal
• Non self-correcting design
– Insert “0001” at initialization and circulate the pattern in normal operation
–Fastest counter
![Page 36: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/36.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 36
![Page 37: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/37.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 37
![Page 38: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/38.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 38
• Self-correcting design:
shifting in a ‘1’ only when 3 MSBs are 000
![Page 39: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/39.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 39
LFSR (Linear Feedback Shift Reg)
• A shift reg with a special feedback circuit
to generate the serial input
• The feedback circuit performs xor
operation over specific bits
• Can circulate through 2n-1 states for an n-
bit register
![Page 40: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/40.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 40
• E.g, 4-bit LFSR
![Page 41: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/41.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 41
• Property of LFSR
– N-bit LFSR can cycle through 2n-1 states
– The feedback circuit always exists
– The sequence is pseudorandom
![Page 42: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/42.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 42
• Application of LFSR
– Pseudorandom: used in testing, data
encryption/decryption
– A counter with simple next-state logic
e.g., 128-bit LFSR using 3 xor gates to circulate
2128-1 patterns (takes 1012 years for a 100 GHz
system)
![Page 43: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/43.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 43
![Page 44: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/44.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 44
![Page 45: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/45.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 45
• Read remaining of Section 9.2.3 (design to
including 00..00 state)
• Read Section 9.2.4 (BCD counter, design
similar to the second/minute counter in
Section 9.1.3
![Page 46: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/46.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 46
PWM (pulse width modulation)
• Duty cycle: percentage of time that the
signal is asserted
• PWM: use a signal, w, to specify the duty
cycle
– Duty cycle is w/16 if w is not “0000”
– Duty cycle is 16/16 if w is “0000”
• Implemented by a binary counter with a
special output circuit
![Page 47: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/47.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 47
![Page 48: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/48.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 48
![Page 49: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/49.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 49
![Page 50: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/50.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 50
Outline
1. Poor design practice and remedy
2. More counters
3. Register as fast temporary storage
4. Pipelined circuit
![Page 51: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/51.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 51
• RAM– RAM cell designed at transistor level
– Cell use minimal area
– Behave like a latch
– For mass storage
– Need a special interface logic
• Register– D FF requires much larger area
– Synchronous
– For small, fast storage
– E.g., register file, fast FIFO, Fast CAM (content addressable memory)
Memory Elements
![Page 52: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/52.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 52
Register file
• Registers arranged as a 1-d array
• Each register is identified with an address
• Normally has 1 write port (with write
enable signal)
• Can have multiple read ports
![Page 53: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/53.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 53
• E.g., 4-word register file w/ 1 write port
and two read ports
![Page 54: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/54.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 54
• Register array:
– 4 registers
– Each register has an enable signal
• Write decoding circuit:
– 0000 if wr_en is 0
– 1 bit asserted according to w_addr if wr_en is 1
• Read circuit:
– A mux for each read port
![Page 55: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/55.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 55
• 2-d data type needed
![Page 56: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/56.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 56
![Page 57: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/57.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 57
![Page 58: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/58.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 58
![Page 59: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/59.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 59
FIFO Buffer
• “Elastic” storage between two subsystems
![Page 60: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/60.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 60
• Circular queue implementation
• Use two pointers and a “generic storage”
– Write pointer: point to the empty slot before
the head of the queue
– Read pointer: point to the tail of the queue
![Page 61: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/61.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 61
![Page 62: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/62.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 62
• FIFO controller
– Read and write pointers: 2 counters
– Status circuit:
• Difficult
• Design 1: Augmented binary counter
• Design 2: with status FFs
– LSFR as counter
![Page 63: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/63.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 63
![Page 64: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/64.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 64
• Augmented binary counter: – increase the counter by 1 bits
– Use LSBs for register address
– Use MSB to distinguish full or empty
![Page 65: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/65.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 65
![Page 66: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/66.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 66
![Page 67: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/67.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 67
![Page 68: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/68.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 68
• 2 extra status FFs
– Full_reg/empty_reg remember full/empty status
– Initialized as 0 and 1
– Modified according to wr and rd signals:
• 00: no change
• 11: advance read pointer/write pointer; full/empty no
change
• 10: advance write pointer; de-assert empty; assert full if
needed (when write pointer=read pointer)
• 01: advance read pointer; de-assert full; asserted empty
if needed (when write pointer=read pointer)
![Page 69: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/69.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 69
![Page 70: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/70.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 70
![Page 71: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/71.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 71
![Page 72: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/72.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 72
• Non-binary counter for the pointer
– Exact location does not matter as long as the
write pointer and read pointer follow the same
pattern
– Other counters can be used for the second
scheme
– E.g, use LFSR
![Page 73: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/73.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 73
Outline
1. Poor design practice and remedy
2. More counters
3. Register as fast temporary storage
4. Pipelined circuits
![Page 74: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/74.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 74
Pipelining
• Two performance criteria:
– Delay: required time to complete one task
– Throughput: number of tasks completed per unit time.
• E.g., ATM machine (Geldautomat)
– Original: 3 minutes to process a transaction
delay: 3 min; throughput: 20 trans per hour
– Option 1: faster machine 1.5 min to process
delay: 1.5 min; throughput: 40 trans per hour
– Option 2: two machines
delay: 3 min; throughput: 40 trans per hour
• Pipelined circuit: increase throughput
![Page 75: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/75.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 75
• Pipeline: overlap certain operation
• E.g., pipelined laundry:
![Page 76: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/76.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 76
• Non-pipelined:
– Delay: 60 min
– Throughput 1/60 load per min
• Pipelined:
– Delay: 60 min
– Throughput k/(40+k*20) load per min
about 1/20 when k is large
– Throughput 3 times better than non-pipelined
![Page 77: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/77.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 77
Pipelined combinational circuit
![Page 78: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/78.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 78
![Page 79: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/79.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 79
Adding pipeline to a comb circuit
• Candidate circuit for pipeline:
– enough input data to feed the pipelined circuit
– throughput is a main performance criterion
– comb circuit can be divided into stages with
similar propagation delays
– propagation delay of a stage is much larger
than the setup time and the clock-to-q delay
of the register.
![Page 80: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/80.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 80
• Procedure
– Derive the block diagram of the original
combinational circuit and arrange the circuit as a
cascading chain
– Identify the major components and estimate the
relative propagation delays of these components
– Divide the chain into stages of similar
propagation delays
– Identify the signals that cross the boundary of the
chain
– Insert registers for these signals in the boundary.
![Page 81: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/81.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 81
Pipelined comb multiplier
![Page 82: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/82.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 82
![Page 83: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/83.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 83
![Page 84: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/84.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 84
![Page 85: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/85.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 85
![Page 86: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/86.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 86
![Page 87: Sequential Circuit Design: Practicefpga-fhu.user.jacobs-university.de/.../2014/10/chap09.pdf• e.g., a poorly mod-10 counter –Clear register immediately after the counter reaches](https://reader033.vdocument.in/reader033/viewer/2022041505/5e246aae976d665454799d1a/html5/thumbnails/87.jpg)
RTL Hardware Design
by P. Chu
Chapter 9 87
Summary
1. Avoiding poor design habits
2. Useful counter circuits
3. Register files, FIFOs
4. Increasing throughput with pipelining