Sequential Systems Review Sequential System Diagram
Document Sample


Sequential Systems Review Sequential System Diagram
n m
• Combinational Network
Combinational
– Output value only depends on input value Logic
Circuit
• Sequential Network
k-bit k-bit
– Output Value depends on input value and present state Present State Next State
value Value Memory Elements Value
- flip-flop
– Sequential network must have some way of retaining - latch
k - register k
state via memory devices. - PROM
– Use a clock signal in a synchronous sequential system
to control changes between states • m outputs only depend on k PS bits - Moore Machine
– REMEMBER: Moore is Less !!
• m outputs depend on k PS bits AND n inputs - Mealy Machine
BR 8/99 1 BR 8/99 2
Slide by Prof Mitch Thorton
Clock Signal Review
Memory Elements
Memory elements used in sequential systems are flip-flops
Pw and latches.
rising edge falling edge
D Q(t+1) Q(t+1) is Q next
voltage
0 0 state
τ - period (in seconds) Pw - pulse width (in seconds) D
Q 1 1
time f - frequency pulse width (in Hertz) f = 1/τ
C D flip flop (DFF)
duty cycle = Pw /τ Flip-flops are edge triggered
duty cycle - ratio of pulse width to period (in %)
(either rising or falling edge).
millisecond (ms) Kilohertz (KHz)
10
-3
10
3 D
microsecond (µs) Megahertz (MHz) Q Latches are level sensitive. Q
-6 6
10 10
G D latch (DL) follows D when G=1, latches
nanosecond (ns) Gigahertz (GHz)
10
-9
10
9 when G goes from 1 to 0.
BR 8/99 3 BR 8/99 4
Slide by Prof Mitch Thorton
D FF, D Latch operation
Other State Elements
J J K Q(t+1) JK useful for single bit
Q 0 0 Q(t)
flags with separate
0 1 0 set(J), reset(K) control.
C for FF, G for latch C 1 0 1
K 1 1 Q’(t)
D input
T T Q(t+1) Useful for counter
Q 0 Q(t) design.
Q (FF)
C 1 Q’(t)
Q (DL)
BR 8/99 5 BR 8/99 6
DFFs are most common Synchronous vs Asynchronous Inputs
• Most FPGA families only have DFFs Synchronous input: Output will change after active clock edge
Asychronous input: Output changes independent of clock
• DFF is fastest, simplest (fewest transistors) of
FFs State elements often have async set, reset control.
S
• Other FF types (T, JK) can be built from DFFs D input is synchronous with respect to Clk
D
• We will use DFFs almost exclusively in this Q
class C S, R are asynchronous. Q output affected by S, R
– Will always used edge-triggered state elements (FFs), not R independent of C. Async inputs are dominant over
level sensitive elements (latches). Clk.
BR 8/99 7 BR 8/99 8
D FF with async control
FF Timing
• Propagation Delay
C – C2Q: Q will change some propagation delay after
change in C. Value of Q is based on D input for DFF.
– S2Q, R2Q: Q will change some propagation delay after
D input change on S input, R input
– Note that there is NO propagation delay D2Q for DFF!
Q (FF) – D is a Synchronous INPUT, no prop delay value for
synchronous inputs
R
S
BR 8/99 9 BR 8/99 10
Setup, Hold Time
Setup, Hold Times
tsu thd
• Synchronous inputs (e.g. D) have Setup, Hold
time specification with respect to the CLOCK
C
input
• Setup Time: the amount of time the synchronous
input (D) must be stable before the active edge of Stable
clock D changing D changing
• Hold Time: the amount of time the synchronous
input (D) must be stable after the active edge of If changes on D input violate either setup or hold
clock. time, then correct FF operation is not guaranteed.
Setup/Hold measured around active clock edge.
BR 8/99 11 BR 8/99 12
Registers 1 Bit Register using DFF, Mux
The most common sequential building block is the register. A
register is N bits wide, and has a load line for loading in a new
value into the register.
0 2/1 Mux DFF
Register contents do not change
DIN unless LD = 1 on active edge of DIN Y D
1 DOUT
clock. Q
N R DOUT S
CLK LD C
E
LD G N A DFF is NOT a register! DFF R
contents change every clock CLK
ACLR edge. ACLR
ACLR used to asynchronously Note that DFF simply loads old value when LD = 0. DFF
clear the register is loaded every clock cycle.
BR 8/99 13 BR 8/99 14
1 Bit Register using Gated Clock Counter
DIN DFF
DOUT Very useful sequential building block. Used to generate memory
LD Ld* Ldclk D Q addresses, or keep track of the number of times a datapath
CLK C operation is performed.
R
ACLR DFF DIN LD asserted loads
C counter with DIN value.
Clk D N
Q CLK N CNT_EN asserted will
LD T
C N increment counter on
LD R
Ld* next active clock edge.
EN
Ldclk CNT_EN
ACLR will
Saves power over previous design since DFF is not clocked every clock ACLR asynchronously clear
cycle. Many FPGAs offer an ‘enabled’ DFF as an integrated unit. Gating the counter.
can be optimized at transistor level in ‘enabled’ DFF.
BR 8/99 15 BR 8/99 16
One way to build a Counter Incrementer: Combinational Building
CNT_EN Block
Incrementer EN EN
Y When EN=1, Y = DIN + 1
DIN Y
DIN N When EN=0, Y = DIN
N
0 DFF
DIN N Y DIN DIN2 DIN1 DIN0
1
N EN
LD N S
N Etc...
CLK
R
ACLR
Y2 Y1 Y0
BR 8/99 17 BR 8/99 18
Counter Operation Counter Timing (8 Bit register)
CLK
Counter A
Aclr Clk En LD Q Q+ Op
Din $ 85 $ A0 $ EF $ 83
H X X X X 0 Async Clr
L ↑ X H X Din Load LD Inc Hold
L ↑ H L Q Q+1 Increment
Cntr Load
L X L L Q Q Hold EN
Dout $ 00 $ A0 $ A1 $ A2
BR 8/99 19 BR 8/99 20
Another Counter (Cntr ‘B’)
DIN
N Counter Operation
LD S
Counter B
1
Y Aclr Clk En LD Q Q+ Op
0
H X X X X 0 Async Clr
Incrementer
L ↑ L H X Din Load
DFF
DIN
L ↑ H L Q Q+1 Increment
EN N Y D L X L L Q Q Hold
EN N
L ↑ H H Q Din+1 Load Inc
Q
CLK N
R
ACLR EN=H, LD=H will load an incremented version of Din
BR 8/99 21 BR 8/99 22
Cntr ‘A’ with SCLR Input
Synchronous vs Asynchronous Clear EN
• The ACLR line is tied to the asynchronous reset of Incrementer EN
the DFF Y
DIN
– Asynchronous clear is independent of clock, will occur
anytime clear is asserted 0 DFF
– Usually tied to Power-On-Reset (POR) circuit Y
DIN N 1
– Not very useful for normal operation since any glitch N D
N
on ACLR will clear the counter LD N S Q
• Would like a Synchronous Clear input (SCLR) in SCLR N
which the clear operation takes place on the next CLK R
active clock edge.
ACLR
BR 8/99 23 BR 8/99 24
Parallel Data Transfer
Counter Operation To transfer data between two computers, we can do it in
parallel:
Clk
Counter A with SCLR C C
P DX[7:0] P
Aclr Sclr Clk En LD Q Q+ Op U U
#1 8 #2
H X X X X X 0 Async Clr
L H ↑ X X X 0 Sync Clr CLK
L L ↑ X H X Din Load
L L ↑ H L Q Q+1 Increment
L L X L L Q Q Hold DX $ 85 $ A0 $ EF $ 83 $ 75 $ 13
Parallel Data transfer requires a lot of lines to be run between
computers; cabling be expensive, and bulky. Not practical for
BR 8/99 25
long distances. BR 8/99 26
Serial Data Transfer More on Serial Data Transfer?
We can transfer data in serial fashion, e.g., one bit at a time.
• Serial data transfer is more common than data
Clk
C C parallel communication because less wires than
P DX P parallel data transfer, can be run longer distances
U U • Data can be transferred either LSB (least
#1 #2
significant bit) to MSB (most significant bit) or
CLK vice-versa
– Most common is LSB to MSB
DX • To implement serial data transfer we need a
sequential building block that is called a SHIFT
1 0 1 0 0 0 0 1 register.
bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7
$ 85 = 10000101, data transmitted LSB to MSB
BR 8/99 27 BR 8/99 28
Shift Register Shift Register Timing (SI = 0)
Very useful sequential building block. Used to perform either CLK
parallel to serial data conversion or serial to parallel data
conversion.
Din $ 85
LD asserted loads register with
DIN DIN value. LD
N S DOUT EN asserted will shift data on
CLK H next active clock edge. EN
I
LD N ACLR is async clear.
F
T DOUT $ 00 $ 85 $ 42 $ 21 $ 10 $ 08 $ 04 $ 02
EN SI is serial data in.
E
ACLR R Look at LSB of DOUT for serial
data out. DOUT0
SI (LSB)
BR 8/99 29 BR 8/99 30
Understanding the shift operation Right Shift vs Left Shift
A right shift is MSB to LSB
MSB LSB
$85 = 1 0 0 0 0 1 0 1 In: D7 D6 D5 D4 D3 D2 D1 D0
SI = 0 SIN
$42 = 0 1 0 0 0 0 1 0 1st right shift Out: SIN D7 D6 D5 D4 D3 D2 D1
SI = 0
2nd right shift A left shift is LSB to MSB
$21 = 0 0 1 0 0 0 0 1
SI = 0 In: D7 D6 D5 D4 D3 D2 D1 D0
SI
$10 = 0 0 0 1 0 0 0 0 3rd right shift
Out: D6 D5 D4 D3 D2 D1 D0 SI
Etc….
BR 8/99 31 BR 8/99 32
D0 I0 Y
Combinational Right Shifter D1 I1 Y0 4-bit Combinational
S RIGHT Shifter
EN Implementation
We need a combinational block that can either shift right or I0 When EN = 0, then:
D1 Y
pass data unchanged I1 Y1
D2 Y = D3 D2 D1 D0
SRIGHT S
When EN = 1, Y = D
D Y shifted right by 1 position.
N
N D2 I0 Y When EN = 1, then:
SI When EN=0, Y = D Y2
I1
EN D3 Y = SI D3 D2 D1
S
(right shifted by one
D3 I0 Y position)
I1 Y3
SI
S
BR 8/99 33 BR 8/99 34
D0 I0
I1
Y Y0 4-bit Combinational Shift Register (Right shift) Implementation
SI SI
S LEFT Shifter
Implementation EN
EN EN
D1 I0 Y When EN = 0, then:
Y1 Right Shifter SI
D0 I1 Y
Y = D3 D2 D1 D0 D
S
0 DFF
D2 I0 Y When EN = 1, then:
I1 Y2 N Y
D1 DIN 1 D
S Y = D2 D1 D0 SI N
LD N S Q
(left shifted by one
CLK N
D3 I0 Y position) R
I1 Y3
D2 ACLR
S
BR 8/99 35 BR 8/99 36
Serial Communication Shift Register Timing (SI_A = 0)
CLK
CPU A CPU B
DA $ 85
DA[7..0] DB[7..0]
1 2 3 4 5 6 7 8
S QA[7..0] 8 S QB[7..0]
8 LDA
H CLK H
CLK
I I EN
LDA 8 LDB 8 QA
F F
EN T $ 00 $ 85 $ 42 $ 21 $ 10 $ 08 $ 04 $ 02 $ 01 $ 00
EN T
E E
ACLR ACLR R QA0
R
SI_A QA0 SI_B QB
$ 00 $ 80 $ 40 $ A0 $ 50 $ 28 $ 14 $0A $ 85
BR 8/99 37 BR 8/99 38
Comments on Shift operation Sequential System Description
• Took 8 clock cycles to serially send the 8 bits in CPU A to • The Q outputs of the flip-flops form a state vector
CPU B.
• A particular set of outputs is the Present State (PS)
• Shift Register at CPU A ended up at $00; Shift Register at
CPU B ended up with CPU A value ($85) • The state vector that occurs at the next discrete
• Initial contents of CPU B shift register does not matter time (clock edge for synchronous designs) is the
• Data shifted out LSB to MSB from CPUA to CPUB. Note Next State (NS)
that data enters the MSB at CPUB and progresses toward • A sequential circuit described in terms of state is a
the LSB. Finite State Machine (FSM)
– Not all sequential circuits are described this way; i.e.,
registers are not described as FSMs yet a register is a
sequential circuit.
BR 8/99 39 BR 8/99 40
Describing FSMs Example State Machine
0
• State Tables S0
1
S0
• State Equations CNT 0
1 0
• State Diagrams 1
S2
• Algorithmic State Machine (ASM) Charts S1
0
– Preferred method in this class S1 1
CNT 0
• HDL descriptions
1
State Diagram
(Bubble Diagram) S2
CNT 0
ASM Chart
1
BR 8/99 41 BR 8/99 42
State Assignment FSM Implementation
State assignment is the binary coding used to represent the states
Use DFFs, State assignment: S0 = 00, S1 = 01, S2 = 10
Given N states, need at least log2(N) FFs to encode the states
(i.e. 3 states, need at least 2 FFs for state information). PS NS
State Table
Inc Q1 Q0 Q1+ Q0 D1 D0
S0 = 00, S1 = 01, S2 = 10 (FSM is now a modulo 3 counter) 0 0 0 0 0 0 0
0 0 1 0 1 0 1 Equations
0 1 0 1 0 1 0
0 1 1 x x x x D1 = Inc’Q1Q0’ + IncQ1’Q0
Do not always have to use the fewest possible number of FFs.
A common encoding is One-Hot encoding - use one FF per state. 1 0 0 0 1 0 1
1 0 1 1 0 1 0 D0 = Inc’Q1’Q0 + IncQ1’Q0’
S0 = 001, S1 = 010, S2 = 100 1 1 0 0 0 0 0
1 1 1 x x x x
State assignment affects speed, gate count of FSM
BR 8/99 43 BR 8/99 44
FSM Usage
Minimize Equations (if desired)
• Custom counters
D1 • Datapath control
Q1Q0
Inc 00 01 11 10
D1 = Inc’ Q1 + Inc Q0 R
0 0 0 x 1 E
1 0 1 0 DIN G R DOUT
x E X
+
D0 R G
Q1Q0 E
Inc 00 01 11 10 G
0 0 1 x 0 D1 = Inc’ Q0 + Inc Q1’Q0’
1 1 0 x 0 FSM Control (reg load lines, mux selects)
BR 8/99 45 BR 8/99 46
Summary
• We will be describing sequential systems via
VHDL and ASM charts
– Use ASM chart for human reader, VHDL to allow
synthesis of the design
– Synthesis will perform combinational minimization,
but not state reduction.
• Will use common sequential building blocks
extensively
– Registers, Counters, Shift registers, Memories
• Basic storage element will be DFF
• Synchronous (edge-triggered) design methodology
BR 8/99 47
Related docs
Get documents about "