babylon - École normale supérieurejv/homepage/cours/digitalwatch.pdf · babylon 1 30 [1 24 51...

Post on 24-Mar-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 1

BabylonBabylon

11

3030

2424 5151 1010[1 24 51 10][1 24 51 10]6060

[42 25 35][42 25 35]6060

24 51 10]24 51 10]60 60 = 1 = 1 .. 414213…414213…

.. 42 25 35]42 25 35]60 60 = 0 = 0 .. 707106…707106…

[0 [0 .. 30]30]60 60 = 0 = 0 .. 55

[1 [1 ..

[0 [0

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 2

Digital WatchDigital Watch

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 3

Liquid CrystalLiquid Crystal

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 4

Digital Watch: StructureDigital Watch: Structure

fun Montre()=(Six7Segs:net[7][6], day:net)

{

// Divides quartz frequency by 1024

sec = CM1K();

(DCB[0],DCB[1],mn) = CM60(sec);

(DCB[2],DCB[3],hr) = CM60(mn);

(DCB[4],DCB[5],day) = CM24(hr);

// Decode from Binary Coded Decimal

// to 7 segment display

for (k<6)

Six7Segs[k] = Decode7segs(DCB[k]);}

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 5

Digital Watch: ComponentsDigital Watch: Components1.1. Counter Modulo 1024: CM1024Counter Modulo 1024: CM1024

2.2. Counter Modulo 60: DCCM60 Counter Modulo 60: DCCM60

3.3. Counter Modulo 24: DCCM24Counter Modulo 24: DCCM24

4.4. Seven Segment Decode: DEC7Seven Segment Decode: DEC7

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 6

Binary CounterBinary Counter

// Binary n bit counterfun Counter(n:int)(incr:net)= (s:net[n], ovfl:net){

c[0]=incr; // carry inovfl=c[n]; // carry outfor (k<n) {s[k] = reg(s[k] ^ c[k]);c[k+1] = s[k] & c[k];}

}

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 7

Counter Modulo 60Counter Modulo 60

1.1. Counter Modulo 2: CM2Counter Modulo 2: CM2

2.2. Counter Modulo 3: CM3 Counter Modulo 3: CM3

3.3. Counter Modulo 5: CM5Counter Modulo 5: CM5

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 8

Counter Modulo 3Counter Modulo 3i+s0+2s1= c0+2c1 (mod 3)

i s[0] s[1] c[0] c[1] c0 0 00 1 00 0 10 1 11 0 01 1 01 0 11 1 1

0 0 01 0 00 1 0

* * *1 0 00 1 00 0 1* * *

c0 = (1-i)s0+i(1-s0)(1-s1)

c1 = (1-i)s1+i s0 (1-s1)

c = i s1

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 9

Counters Counters Modulo 3Modulo 3

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 10

Counter Modulo 5Counter Modulo 5ii+s+s00+2s+2s1 1 +4s+4s2 2 = c= c00+2c+2c11+4c+4c2 2 (mod 5)(mod 5)

c = c = ii ss2 2 i s[0] s[1] s[2] c[0] c[1] c[2] c0 0 0 0 0 0 0 00 0 0 1 0 0 1 00 0 1 0 0 1 0 00 0 1 1 * * * *0 1 0 0 1 0 0 00 1 0 1 * * * *0 1 1 0 1 1 0 00 1 1 1 * * * *1 0 0 0 1 0 0 01 0 0 1 0 0 0 11 0 1 0 1 1 0 01 0 1 1 * * * *1 1 0 0 0 1 0 01 1 0 1 * * * *1 1 1 0 0 0 1 01 1 1 1 * * * *

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 11

Counter Counter Modulo 5Modulo 5

Sep-02 Digital Systems I – Jean.Vuillemin@ens.fr 12

Seven Segments CodeSeven Segments Codeb[0] b[1] b[2] b[3] s[0] s[1] s[2] s[3] s[4] s[5] s[6]

0 0 0 0 1 0 1 1 1 1 11 0 0 0 0 0 0 0 1 1 00 1 0 0 0 1 1 1 0 1 11 1 0 0 0 1 0 1 1 1 10 0 1 0 1 1 0 0 1 1 01 0 1 0 1 1 0 1 1 0 10 1 1 0 1 1 1 1 1 0 11 1 1 0 0 0 0 0 1 1 10 0 0 1 1 1 1 1 1 1 11 0 0 1 1 1 0 1 1 1 10 1 0 1 1 1 1 1 1 1 11 1 0 1 1 1 0 1 1 1 10 0 1 1 1 1 0 1 1 1 11 0 1 1 1 1 0 1 1 1 10 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 0 1 1 1 1

B0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

top related