ECED2200 – Digital Circuits
Finite State Machines
31/07/2012 Colin O’Flynn - CC BY-SA 1
ECED2200 Digital Circuits Finite State Machines 31/07/2012 Colin - - PowerPoint PPT Presentation
ECED2200 Digital Circuits Finite State Machines 31/07/2012 Colin OFlynn - CC BY-SA 1 General Notes See updates to these slides: www.newae.com/teaching These slides licensed under Creative Commons Attribution-ShareAlike 3.0
31/07/2012 Colin O’Flynn - CC BY-SA 1
Unported License’
www.newae.com/teaching for more information/links:
– The book “Bebop to the Boolean Boogie” which is available to Dalhousie Students – Course notes (covers almost everything we will discuss in class) – Various websites such as e.g.: www.play-hookey.com – The book “Contemporary Logic Design”, which was used in previous iterations of the class and you may have already
31/07/2012 Colin O’Flynn - CC BY-SA 2
31/07/2012 Colin O’Flynn - CC BY-SA 3
31/07/2012 Colin O’Flynn - CC BY-SA 4
31/07/2012 Colin O’Flynn - CC BY-SA 5
31/07/2012 Colin O’Flynn - CC BY-SA 6
31/07/2012 Colin O’Flynn - CC BY-SA 7
Start S1 S2 S2 S3 S4 S5 S6 S7 S8
31/07/2012 Colin O’Flynn - CC BY-SA 8
Start 0.25 0.50 0.75 1.00 1.25
31/07/2012 Colin O’Flynn - CC BY-SA 9
State Quarter Loonie Next State Release 0.00 0.00 0.00 1 1.00 0.00 1 0.25 0.00 1 1 ? 0.25 0.25 0.25 1 1.25 0.25 1 0.50 0.25 1 1 ? 0.50 0.50 0.50 1 1.25 0.50 1 0.75 0.50 1 1 ? 0.75 0.75 0.75 1 1.25 0.75 1 1.00 0.75 ? 1.00 1.00 1.00 1 1.25 1.00 1 1.25 1.00 1 1 ? 1.25 ? ? 0.00 1
31/07/2012 Colin O’Flynn - CC BY-SA 10
31/07/2012 Colin O’Flynn - CC BY-SA 11
Present State Quarter Loonie Next State Release 000 000 000 1 100 000 1 001 000 1 1 ? 001 001 001 1 101 001 1 010 001 1 1 ? 010 010 010 1 101 010 1 011 010 1 1 ? 011 011 011 1 101 011 1 100 011 ? 100 100 100 1 101 100 1 101 100 1 1 ? 101 ? ? 000 1
31/07/2012 Colin O’Flynn - CC BY-SA 12
31/07/2012 Colin O’Flynn - CC BY-SA 13
State Quarter Loonie Next State D Flip-Flop Entries Da Db Dc 000 000 000 1 100 1 000 1 001 1 000 1 1 ? ? ? ? 001 001 1 001 1 101 1 1 001 1 010 1 001 1 1 ? ? ? ? 010 010 1 010 1 101 1 1 010 1 011 1 1 010 1 1 ? ? ? ? 011 011 1 1 011 1 101 1 1 011 1 100 1 011 ? ? ? ? 100 100 1 100 1 101 1 1 100 1 101 1 1 100 1 1 ? ? ? ? 101 ? ? 000
31/07/2012 Colin O’Flynn - CC BY-SA 14
State Quarter Loonie Next State D Flip-Flop Entries Da Db Dc 000 000 000 1 100 000 1 001 000 1 1 ? 001 001 001 1 101
Q Q+ D
1 1 1 1 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 15
State Quarter Loonie Next State JK Flip-Flop Entries Ja Ka Jb Kb Jc Kc 000 000 000 1 100 000 1 001 000 1 1 ? 001 001 001 1 101
Q Q+ J K
? 1 1 ? 1 ? 1 1 1 ?
31/07/2012 Colin O’Flynn - CC BY-SA 16
31/07/2012 Colin O’Flynn - CC BY-SA 17
31/07/2012 Colin O’Flynn - CC BY-SA 18
31/07/2012 Colin O’Flynn - CC BY-SA 19
31/07/2012 Colin O’Flynn - CC BY-SA 20
31/07/2012 Colin O’Flynn - CC BY-SA 21
31/07/2012 Colin O’Flynn - CC BY-SA 22
31/07/2012 Colin O’Flynn - CC BY-SA 23
A B C CNT=10 (D) A+ B+ C+ Note X 1 Red - Reset 1 1 Green NS 1 1 1 Green NS 1 X 1 1 Yellow NS 1 1 X 1 1 Red - Reset 1 1 1 1 Green EW 1 1 1 1 1 Green EW 1 1 X Yellow EW
31/07/2012 Colin O’Flynn - CC BY-SA 24
31/07/2012 Colin O’Flynn - CC BY-SA 25
31/07/2012 Colin O’Flynn - CC BY-SA 26
1 1 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 27
31/07/2012 Colin O’Flynn - CC BY-SA 28
1 1 1 1 ? ? ? ?
31/07/2012 Colin O’Flynn - CC BY-SA 29
1 1 1 1 ? ? ? ?
+
31/07/2012 Colin O’Flynn - CC BY-SA 30
1 1 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 31
1 1 1 1
+
31/07/2012 Colin O’Flynn - CC BY-SA 32
1 1 1 1 1 1 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 33
1 1 1 1 1 1 1 1
+
31/07/2012 Colin O’Flynn - CC BY-SA 34
+
+
+
31/07/2012 Colin O’Flynn - CC BY-SA 35
A B C Red Yellow Green Red Yellow Green Reset Note 0 0 0 1 1 1 Red - Reset 0 0 1 0 1 1 Green NS 0 1 0 0 1 1 Yellow NS 0 1 1 1 1 1 Red - Reset 1 0 0 1 1 ???? 1 0 1 1 1 Green EW 1 1 0 1 1 Yellow EW 1 1 1 1 1 ????
31/07/2012 Colin O’Flynn - CC BY-SA 36
NS Red NS Yellow NS Green 1 1 1 1 1 1 1 1
NS NS NS
31/07/2012 Colin O’Flynn - CC BY-SA 37
EW Red EW Yellow EW Green 1 1 1 1 1 1 1 1
EW EW EW
31/07/2012 Colin O’Flynn - CC BY-SA 38
Reset 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 39
31/07/2012 Colin O’Flynn - CC BY-SA 40
31/07/2012 Colin O’Flynn - CC BY-SA 41
31/07/2012 Colin O’Flynn - CC BY-SA 42
31/07/2012 Colin O’Flynn - CC BY-SA 43
31/07/2012 Colin O’Flynn - CC BY-SA 44
Right-click on net (must be careful not to select part or open port), you should get Rename Selected Net
31/07/2012 Colin O’Flynn - CC BY-SA 45
Put name in. Select ‘Rename Branch’ to change only this small section attached to the chip, which is what you want. Rename the Branch’s net changes the name across ENTIRE schematic
31/07/2012 Colin O’Flynn - CC BY-SA 46
This is telling you that your pin is going to be connected
31/07/2012 Colin O’Flynn - CC BY-SA 47
Always use net names for larger schematics. It more easily allows you to change which input connects to a gate, since you can just rename that branch (Be SURE that ‘Rename Branch’ is selected or you change across entire schematic)
31/07/2012 Colin O’Flynn - CC BY-SA 48
31/07/2012 Colin O’Flynn - CC BY-SA 49
State Quarter Loonie Next State Release 0.00 0.00 0.00 1 1.00 0.00 1 0.25 0.00 1 1 ? 0.25 0.25 0.25 1 1.25 0.25 1 0.50 0.25 1 1 ? 0.50 0.50 0.50 1 1.25 0.50 1 0.75 0.50 1 1 ? 0.75 0.75 0.75 1 1.25 0.75 1 1.00 0.75 ? 1.00 1.00 1.00 1 1.25 1.00 1 1.25 1.00 1 1 ? 1.25 ? ? 0.00 1
31/07/2012 Colin O’Flynn - CC BY-SA 50
State Quarter Loonie Next State Release 0.00 0.00 0.00 1 1.00 0.00 1 0.25 0.00 1 1 ? 0.25 0.25 0.25 1 0.00 1 0.25 1 0.50 0.25 1 1 ? 0.50 0.50 0.50 1 0.00 1 0.50 1 0.75 0.50 1 1 ? 0.75 0.75 0.75 1 0.00 1 0.75 1 1.00 0.75 ? 1.00 1.00 1.00 1 0.00 1 1.00 1 0.00 1 1.00 1 1 ?
31/07/2012 Colin O’Flynn - CC BY-SA 51 Image source: http://commons.wikimedia.org/wiki/File:Mealy.png
31/07/2012 Colin O’Flynn - CC BY-SA 52 Image derived from: http://commons.wikimedia.org/wiki/File:Mealy.png
1
31/07/2012 Colin O’Flynn - CC BY-SA 53
31/07/2012 Colin O’Flynn - CC BY-SA 54
31/07/2012 Colin O’Flynn - CC BY-SA 55
31/07/2012 Colin O’Flynn - CC BY-SA 56
31/07/2012 Colin O’Flynn - CC BY-SA 57
31/07/2012 Colin O’Flynn - CC BY-SA 58
31/07/2012 Colin O’Flynn - CC BY-SA 59
Initial State On Off Next State Lamp Buzzer 1 1 1 1 1 1 1 1 1 1 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 60
Initial State On Off Next State Lamp Buzzer 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 61
Initial State On Off Next State Lamp Buzzer
00 00 1 00 1 00 1 1 01 ? ? 10 10 1 10 1 10 1 1 11 ? ?
31/07/2012 Colin O’Flynn - CC BY-SA 62
Initial State On Off Next State Lamp Buzzer
00 00 00 1 00 00 1 01 00 1 1 00 01 ? ? 10 1 10 10 1 10 1 11 1 10 1 10 1 10 1 1 10 1 11 ? ? 00 1 1
31/07/2012 Colin O’Flynn - CC BY-SA 63
(Ignore the function of this, since it’s nonsense!)
31/07/2012 Colin O’Flynn - CC BY-SA 64
Asynchronous Output
31/07/2012 Colin O’Flynn - CC BY-SA 65
Synchronous Output
31/07/2012 Colin O’Flynn - CC BY-SA 66
31/07/2012 Colin O’Flynn - CC BY-SA 67
Initial State On Off Next State
00 00 00 1 00 00 1 01 00 1 1 00 01 ? ? 10 10 10 10 1 11 10 1 10 10 1 1 10 11 ? ? 00
31/07/2012 Colin O’Flynn - CC BY-SA 68
31/07/2012 Colin O’Flynn - CC BY-SA 69
Initial State On Off Next State
0001 0001 0001 1 0001 0001 1 0010 0001 1 1 0001 0010 ? ? 0100 0100 0100 0100 1 1000 0100 1 0100 0100 1 1 0100 1000 ? ? 0001
31/07/2012 Colin O’Flynn - CC BY-SA 70
31/07/2012 Colin O’Flynn - CC BY-SA 71
Initial State On Off Next State
00 00 00 1 00 00 1 01 00 1 1 00 01 ? ? 11 11 11 11 1 10 11 1 11 11 1 1 11 10 ? ? 00
31/07/2012 Colin O’Flynn - CC BY-SA 72
31/07/2012 Colin O’Flynn - CC BY-SA 73