Arbitrary Waveforms Lecture L8.5 Section 7.2
CLK DQ !Q CLK DQ !Q CLK DQ !Q Q0Q0.D Q1 Q2 Q1.D Q2.D s s s s s s s s State Q2 Q1 Q0 Q2.D Q1.D Q0.D Recall Divide-by-8 Counter Use Q2, Q1, Q0 as inputs to a combinational circuit to produce an arbitrary waveform.
s s s s s s s s State Q2 Q1 Q0 Q2.D Q1.D Q0.D y Example (See Exercise 7.10) Q2 Q1 Q y = !Q2 & !Q1 # Q2 & Q
MODULE waveform TITLE 'Divide by 8 Counter, waveform' DECLARATIONS hex7seg interface([D3..D0] -> [a,b,c,d,e,f,g]); d7R FUNCTIONAL_BLOCK hex7seg; " INPUT PINS " CLK PIN 12; " 1 Hz clock (jumper) clear PIN 11;" switch 1 " OUTPUT PINS " Q2..Q0 PIN 41,43,44 ISTYPE 'reg'; " LED Q = [Q2..Q0]; " 3-bit output vector Y PIN 35 ISTYPE 'com';" LED 9 [a,b,c,d,e,f,g] PIN 15,18,23,21,19,14,17 ISTYPE 'com'; " Rightmost (units) 7-segment LED display waveform.abl
EQUATIONS Q.AR = clear; Q.C = CLK; Q2.D = !Q2 & Q1 & Q0 # Q2 & !Q1 # Q2 & !Q0; Q1.D = !Q1 & Q0 # Q1 & !Q0; Q0.D = !Q0; [a,b,c,d,e,f,g] = d7R.[a,b,c,d,e,f,g]; d7R.[D2..D0] = Q; d7R.D3 = 0; Y = !Q2 & !Q1 # Q2 & Q0; waveform.abl (cont.)
test_vectors(CLK -> [Q,Y]).C. -> [1,1];.C. -> [2,0];.C. -> [3,0];.C. -> [4,0];.C. -> [5,1];.C. -> [6,0];.C. -> [7,1];.C. -> [0,1];.C. -> [1,1];.C. -> [2,0];.C. -> [3,0];.C. -> [4,0]; END waveform.abl (cont.)
Morse code --A
K-map for A