Name gcount; Partno XXXXX; Date 12/07/93; Revision 01; Designer Anonymous; Company XXXXX; Assembly XXXXX; Location XXXXX; Device V750; /**************************************************************************/ /* 8-Bit Pseudo Grey Code Counter and decode */ /* */ /* This example is of a Mealy state machine - in other words, */ /* combinatorial outputs are generated from the machine states and the */ /* combinatorial inputs. This is actually a very common design - */ /* decoding the state machine's outputs into combinatorial outputs. */ /* Problems can arise when pure binary counters are used, as many bits */ /* are changing simulataneously. Race conditions can result and */ /* glitches appear on combinatorial outputs when many inputs change */ /* simulataneously. We recommend using a grey coded counter. However, */ /* it is easier to define a large counter with Boolean equations than */ /* with a state machine diagram. This example is a pseudo grey code */ /* counter for 8 bits. Smaller counters can be cut down from this one */ /* and larger ones can be built up using the same algorithm. */ /**************************************************************************/ /** Inputs **/ PIN 1 = Clk; PIN 2 = D0; PIN 3 = D1; PIN 4 = D2; PIN 5 = D3; PIN 6 = rest; PIN 7 = OEB; /** Outputs **/ PIN 14 = O64; PIN 15 = O128; PIN 16 = O63; PIN 17 = O127; PIN 18 = O16; PIN 19 = O32; PIN 20 = O15; PIN 21 = O31; PIN 22 = O7; PIN 23 = O8; PINNODE 25 = Q0; PINNODE 34 = Q1; PINNODE 26 = Q2; PINNODE 33 = Q3; PINNODE 27 = Q4; PINNODE 32 = Q5; PINNODE 29 = Q6; PINNODE 30 = Q7; /** Logic Equations **/ [Q7..0].ar = rest; [Q7..0].ck = Clk ; O128.oe = !OEB ; O127.oe = !OEB ; O64.oe = !OEB ; O63.oe = !OEB ; O32.oe = !OEB ; O31.oe = !OEB ; O16.oe = !OEB ; O15.oe = !OEB ; O8.oe = !OEB ; O7.oe = !OEB ; Q0.d = !Q1 ; Q1.d = Q0 ; Q2.d = !Q0 & Q2 # !Q1 & Q2 # Q0 & Q1 & !Q3 ; Q3.d = Q0 & Q1 & Q2 # !Q0 & Q3 # !Q1 & Q3 ; Q4.d = !Q0 & Q4 # !Q1 & Q4 # !Q2 & Q4 # !Q3 & Q4 # Q0 & Q1 & Q2 & Q3 & !Q5 ; Q5.d = Q0 & Q1 & Q2 & Q3 & Q4 # !Q0 & Q5 # !Q1 & Q5 # !Q2 & Q5 # !Q3 & Q5 ; Q6.d = !Q0 & Q6 # !Q1 & Q6 # !Q2 & Q6 # !Q3 & Q6 # !Q4 & Q6 # !Q5 & Q6 # Q0 & Q1 & Q2 & Q3 & Q4 & Q5 & !Q7 ; Q7.d = Q0 & Q1 & Q2 & Q3 & Q4 & Q5 & Q6 # !Q0 & Q7 # !Q1 & Q7 # !Q2 & Q7 # !Q3 & Q7 # !Q4 & Q7 # !Q5 & Q7 ; O128 = !D0 & D1 & !D2 & D3 & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & Q7 # D0 & !D1 & !D2 & D3 & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & Q7 ; O127 = !D0 & D1 & !D2 & D3 & !Q0 & Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & Q7 # D0 & !D1 & !D2 & D3 & !Q0 & Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & Q7 ; O64 = !D0 & !D1 & !D2 & D3 & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & !Q7 # D0 & D1 & D2 & !D3 & !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & !Q7 ; O63 = !D0 & !D1 & !D2 & D3 & !Q0 & Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & !Q7 # D0 & D1 & D2 & !D3 & !Q0 & Q1 & !Q2 & !Q3 & !Q4 & !Q5 & Q6 & !Q7 ; O32 = !D0 & D1 & D2 & !D3 & !Q0 & !Q1 & !Q2 & !Q3 & Q4 & Q5 & !Q6 & !Q7 # D0 & !D1 & D2 & !D3 & !Q0 & !Q1 & !Q2 & !Q3 & Q4 & Q5 & !Q6 & !Q7 ; O31 = !D0 & D1 & D2 & !D3 & !Q0 & Q1 & !Q2 & !Q3 & Q4 & Q5 & !Q6 & !Q7 # D0 & !D1 & D2 & !D3 & !Q0 & Q1 & !Q2 & !Q3 & Q4 & Q5 & !Q6 & !Q7 ; O16 = !D0 & !D1 & D2 & !D3 & !Q0 & !Q1 & !Q2 & !Q3 & Q4 & !Q5 & !Q6 & !Q7 # D0 & D1 & !D2 & !D3 & !Q0 & !Q1 & !Q2 & !Q3 & Q4 & !Q5 & !Q6 & !Q7 ; O15 = !D0 & !D1 & D2 & !D3 & !Q0 & Q1 & !Q2 & !Q3 & Q4 & !Q5 & !Q6 & !Q7 # D0 & D1 & !D2 & !D3 & !Q0 & Q1 & !Q2 & !Q3 & Q4 & !Q5 & !Q6 & !Q7 ; O8 = !D0 & D1 & !D2 & !D3 & !Q0 & !Q1 & Q2 & Q3 & !Q4 & !Q5 & !Q6 & !Q7 # D0 & !D1 & !D2 & !D3 & !Q0 & !Q1 & Q2 & Q3 & !Q4 & !Q5 & !Q6 & !Q7 ; O7 = !D0 & D1 & !D2 & !D3 & !Q0 & Q1 & Q2 & Q3 & !Q4 & !Q5 & !Q6 & !Q7 # D0 & !D1 & !D2 & !D3 & !Q0 & Q1 & Q2 & Q3 & !Q4 & !Q5 & !Q6 & !Q7 ;