Fibonacci Sequence Lecture L 10 1 Section 10
Fibonacci Sequence Lecture L 10. 1 Section 10. 1
Fibonacci Sequence 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, … F(0) = 0 F(1) = 1 F(n + 2) = F(n) + F(n + 1) for all n ≥ 0.
The Golden Rectangle f= b a a = a+b a 2 = ab + b 2 1 = f + f 2
Good Fibonacci Web Site http: //www. mcs. surrey. ac. uk/Personal/R. Knott/Fibonacci/fibnat. html
Logic diagram to generate Fibonacci numbers
reg 8 bit. abl MODULE reg 8 bit INTERFACE([D 7. . D 0], clk, clr, set, load -> [Q 7. . Q 0]); TITLE '8 -bit Register' DECLARATIONS " Input Pins " clk PIN; clr PIN; set PIN; load PIN; D 7. . D 0 PIN; D = [D 7. . D 0]; " " clock synchronous clear synchronous preset load " 8 -bit register input " Output Pins " Q 7. . Q 0 PIN ISTYPE 'reg buffer'; Q = [Q 7. . Q 0]; " 8 -bit register " 8 -bit reg. output vector
reg 8 bit. abl (cont. ) EQUATIONS Q. clk = clk; [Q 7. . Q 1]. clr = clr # set; Q 0. CLR = clr; Q 0. SET = set & !clr; Q. D = load & D END reg 8 bit # !load & Q; Note: Synchronous. clr and. set clr will set Q = [0, 0, 0] set will set Q = [0, 0, 1]
fib. abl MODULE fib TITLE 'Fibonacci sequence' DECLARATIONS hex 7 seg interface([D 3. . D 0] -> [a, b, c, d, e, f, g]); d 7 L FUNCTIONAL_BLOCK hex 7 seg; d 7 R FUNCTIONAL_BLOCK hex 7 seg; adder 8 interface([A 7. . A 0], [B 7. . B 0] -> [S 7. . S 0]); ad 1 FUNCTIONAL_BLOCK adder 8; reg 8 bit interface([D 7. . D 0], clr, clk, set, load -> [Q 7. . Q 0]); R 1 FUNCTIONAL_BLOCK reg 8 bit; W FUNCTIONAL_BLOCK reg 8 bit; binbcd interface([B 7. . B 0] -> [P 9. . P 0]); BCD 1 FUNCTIONAL_BLOCK binbcd;
fib. abl (cont. ) "INPUTS PINS" CLK PIN 12; clear PIN 11; " 1 Hz clock (jumper) " switch 1 " INTERMEDIATE VARIABLE" [P 9. . P 0] NODE; P = [P 9. . P 0]; restart NODE; " OUTPUT PINS " LED 15, LED 16 PIN 43, 44 ISTYPE 'com'; [a, b, c, d, e, f, g] PIN 57, 58, 61, 62, 63, 65, 66 ISTYPE 'com'; "Leftmost (tens) 7 -segment LED display [aa, bb, cc, dd, ee, ff, gg] PIN 15, 18, 23, 21, 19, 14, 17 ISTYPE 'com'; " Rightmost (units) 7 -segment LED display
fib. abl (cont. ) EQUATIONS R 1. [D 7. . D 0] = W. [Q 7. . Q 0]; ad 1. [A 7. . A 0] = R 1. [Q 7. . Q 0]; ad 1. [B 7. . B 0] = W. [Q 7. . Q 0]; W. [D 7. . D 0] = ad 1. [S 7. . S 0]; R 1. clk = CLK; R 1. clr = clear # restart; " preset to 0 R 1. load = 1; R 1. set = 0; W. clk = CLK; W. clr = 0; W. load = 1; W. set = clear # restart; " preset to 1
Fibonacci Sequence 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, … 1. 144 = 90 hex = 10010000 2. 233 = E 9 hex = 11101001 144 +233 377 = 179 hex = 1 01111001
fib. abl (cont. ) BCD 1. [B 7. . B 0] = W. [Q 7. . Q 0]; P = BCD 1. [P 9. . P 0]; LED 15 = BCD 1. P 9; LED 16 = BCD 1. P 8; restart = W. Q 6 & W. Q 5 & W. Q 4; [a, b, c, d, e, f, g] = d 7 L. [a, b, c, d, e, f, g]; d 7 L. [D 3. . D 0] = BCD 1. [P 7. . P 4]; [aa, bb, cc, dd, ee, ff, gg] = d 7 R. [a, b, c, d, e, f, g]; d 7 R. [D 3. . D 0] = BCD 1. [P 3. . P 0];
fib. abl (cont. ) @radix 16; test_vectors([CLK, clear] -> P) [0, 1] -> 1; [. C. , 0] -> 2; [. C. , 0] -> 3; [. C. , 0] -> 5; [. C. , 0] -> 8; [. C. , 0] -> 13; [. C. , 0] -> 21; [. C. , 0] -> 34; [. C. , 0] -> 55; [. C. , 0] -> 89; [. C. , 0] -> 144; [. C. , 0] -> 233; END fib 4
Logic diagram to generate Fibonacci numbers
- Slides: 14