Compiti scritti di Architettura degli Elaboratori: A.A. 2000/2001


Lunedi 04 Giugno 2001 (Parte di reti logiche)

------------------------------------------------------------------------
             Parte B: reti logiche e aritmetica binaria
------------------------------------------------------------------------

1) Utilizzando il procedimento delle Mappe di Karnaugh, progettare una rete 
combinatoria "P" in forma SP che implementi il prodotto binario di valori
espressi su due bit.

                               ________ 
                       x1  -->|        |--> r3
                       x0  -->|  "P"   |--> r2
                       y1  -->|        |--> r1
                       y0  -->|        |--> r0
                               --------

Dati 4 bit in ingresso rispettivamente x1,x0 e y1,y0 (ovvero due interi 
espressi in binario naturale su due bit), la rete P produce i 4 bit 
(r3,r2,r1,r0) che esprimono il valore in binario naturale del prodotto.
(es. 3 X 2 = 6 equivale a 11 X 10 = 0110)
Per maggiore chiarezza, questo e' lo schema aritmetico del prodotto richiesto 
(dove r1# e' il riporto generato dal calcolo della somma che produce r1,
ed r3 e' il riporto della somma che produce r2):

                         x1 x2 X
                         y1 y2 =
                         -----
             (r1#) y2*x1 y2*x2 +
             y1*x1 y1*x2   0
            ------------------ 
          r3   r2    r1   r0
 
Riportare per intero le tabelle di verita`, le mappe di Karnaugh e le
espressioni finali ottenute in forma SP, ed una traccia scritta del 
procedimento seguito.

### Svolgimento:

Tabelle di verita delle 4 funzioni da realizzare (r3, r2, r1, r0)

       x1 x0 y1 y0 | r3 r2 r1 r0
       -------------------------
       0  0  0  0  | 0  0  0  0    (00 x qls. cosa = 0000)
       0  0  0  1  | 0  0  0  0
       0  0  1  0  | 0  0  0  0
       0  0  1  1  | 0  0  0  0
       0  1  0  0  | 0  0  0  0
       0  1  0  1  | 0  0  0  1    (01 x 01 = 0001)
       0  1  1  0  | 0  0  1  0    (01 x 10 = 0010)
       0  1  1  1  | 0  0  1  1    ecc.
       1  0  0  0  | 0  0  0  0
       1  0  0  1  | 0  0  1  0
       1  0  1  0  | 0  1  0  0
       1  0  1  1  | 0  1  1  0
       1  1  0  0  | 0  0  0  0
       1  1  0  1  | 0  0  1  1
       1  1  1  0  | 0  1  1  0
       1  1  1  1  | 1  0  0  1

   Mappe di Karnaugh

   r3: somma mintermini (15)
             \  y1 y0
       x1 x0  
              0 0 0 0
              0 0 0 0    = (x1 x0 y1 y0)
              0 0 1 0
              0 0 0 0

   r2: somma mintermini (10, 11, 14)
             \  y1 y0
       x1 x0  
              0 0 0 0
              0 0 0 0    = (x1 !y0 y1)+(!x0 x1 y1) 
              0 0 0 1
              0 0 1 1

   r1: somma mintermini (6, 7, 9, 11, 13, 14)
             \  y1 y0
       x1 x0  
              0 0 0 0
              0 0 1 1    = (x1 y0 !y1)+(!x0 x1 y0)+(x0 !y0 y1)+(x0 !x1 y1)
              0 1 0 1
              0 1 1 0

   r0: somma mintermini (5, 7, 13, 15)
             \  y1 y0
       x1 x0  
              0 0 0 0
              0 1 1 0    = (x0 y0)
              0 1 1 0
              0 0 0 0

2) A quale valore decimale in virgola mobile corrisponde la rappresentazione 
IEEE 754 in singola precisione (su 32 bit) con base di polarizzazione per 
l'esponente pari a 127 (01111111):

                    0 10000000 11000000000000000000000

### Svolgimento:

esponente = 10000000 - 01111111 = +1
mantissa = (1).11000000000000000000000
valore decimale = 1.11 x 2^1 = 11.1 x 2^0 = 3.5 in base 10


3) Avendo a disposizione solamente l'architettura di una ALU che esegua 
l'operazione di somma tra valori binari interi su 8 bit, e assumendo di
poter ricorrere ad una seconda componente architetturale che permetta di
convertire la rappresentazione dei valori binari in complemento a due, 
e' possibile eseguire l'operazione di differenza (45 - 18)? e (18 - 45)? 
Giustificare la risposta, eventualmente mostrando il procedimento che
conduce al risultato corretto (usando la rappresentazione binaria).

### Svolgimento:
Si, e' possibile in quanto la somma binaria naturale permette la somma
e la sottrazione di valori espressi in complemento a due.
es. 45 - 18 = (su 8 bit)
    45 +    00101101 +
    (-18)   11101110 
    ----       ------
    +27   1 00011011     (somma di valori discordi non da overflow!
                           quindi perdo il bit di riporto)

    18 - 45 = (su 8 bit)
    18 +      00010010
    (-45)     10101011
    ----       ------
    -27       10111101
------------------------------------------------------------------------

Lunedi 9 Luglio 2001 (Parte di reti logiche)

------------------------------------------------------------------------
             Parte B: reti logiche e aritmetica binaria
------------------------------------------------------------------------

1) Progettare una rete sequenziale "S" che riceva in input una sequenza di
bit (ingresso x(t)) potenzialmente infinita, a partire da un tempo iniziale t0.
L'uscita Z(t) della rete P vale 1 se e solo se la sequenza di bit ricevuta
in ingresso dal tempo t0 fino al tempo t contiene un numero di 1 multiplo 
di 3 (e maggiore di zero).

                            ________ 
                           |        |
 x(t)...10100110100    x ->|  "P"   |--> Z(t) ...00001100000
                           |        |
                       r ->|        |-->
                         |  --------   |
			 |             |
                         |-------------|
                       linee di retroazione

Progettare l`automa di Mealy (o di Moore) per la codifica e la minimizzazione
degli stati, la rete combinatoria P in forma SP che genera l`uscita Z e le 
linee di retroazione (r) utilizzando i metodi visti a lezione.
Riportare per intero le tabelle, le mappe, i procedimenti e le
espressioni finali ottenute in forma SP, ed una traccia scritta del 
procedimento seguito.

### Svolgimento:

Automa di Moore codificato in tabella di flusso:

              input        0         1
   (stato iniziale)    A  A,0       B,0
                       B  B,0       C,0
		       C  C,0       D,1
		       D  D,1       B,0
Minimizzazione automa

                       B bc
		       C  x   x
		       D  x   x   x
		          A   B   C
e quindi
                       B  x
		       C  x   x
		       D  x   x   x
		          A   B   C

occorrono 4 stati, e quindi due bit per codificare lo stato e quindi
due linee di retroazione (s1' e s0'): siano 
    s1' s0'
A =  0   0  
B =  0   1  
C =  1   0  
D =  1   1

tabella di verita' delle funzioni Z(t) e Stato successivo (s1',s0' ovvero
le due linee di retroazione)

            s1 s0 x | s1' s0' Z(t)
	    ----------------------
	    0  0  0 |  0   0   0 (se sono in A con input 0 rimango in A, Z=0)
	    0  0  1 |  0   1   0 (ecc. )
	    0  1  0 |  0   1   0
	    0  1  1 |  1   0   0
	    1  0  0 |  1   0   0
	    1  0  1 |  1   1   1
	    1  1  0 |  1   1   1
	    1  1  1 |  0   1   0

   Mappe di Karnaugh

   s1': somma mintermini (3,4,5,6)
             \ s0 x 
        s1  
              0 0 1 0
              1 1 0 1    = (!s1 s0 x)+(s1 !s0)+(s1 !x)

   s0': somma mintermini (1,2,5,6,7)
             \ s0 x 
        s1  
              0 1 0 1
              0 1 1 1    = (!s0 x)+(s0 !x)+(s1 s0)

   Z(t): somma mintermini (5,6)
             \ s0 x 
        s1  
              0 0 0 0
              0 1 0 1    = (s1 !s0 x)+(s1 s0 !x)

2) Assumendo di usare la rappresentazione in virgola mobile IEEE 754 
in singola precisione (su 32 bit) con base di polarizzazione per 
l`esponente pari a 127 (01111111), tradurre il valore a) in decimale,
ed il valore b da decimale a rappresentazione IEEE 754:

    a)  0 10000011 11010000000000000000000 equivale a ...............
    svolgimento:
    segno +
    esponente = 10000011 - 01111111 = 131-127 = +4
    mantissa = 1.1101000... x 2^4 = 11101.0000... x 2^0 = 29

    b)  . ........ ....................... equivale a -7.25 
    svolgimento:
    segno: 1
    parte intera: 7 = 111 (alg. della divisione e prendo i resti)
    parte frazionaria = 0.25 x2 = 0.50 --> 0
                        0.50 x2 = 1.00 --> 1
			0.00 x2 = 0.00 --> 00000...
    mantissa = 111.010000...x2^0 
    normalizzo = 1.1101000 x2^2
    esponente (base polarizz. 127) = 2+127 = 129 = 10000001 
    e quindi si ottiene: 1 10000001 110100000000000000

In seguito si esprima il valore della somma (a+b) in formato IEEE 754.

 a + b = . ........ .......................

          a = 1.1101000... x 2^4
	  b = 1.1101000... x 2^2
porto nello stesso esponente (il minore dei due)
          a = 111.01000... x 2^2
	  b = 1.1101000... x 2^2

faccio la sottrazione in binario delle mantisse allineate

          a = 111.01000...   x 2^2 +
	  b = 001.1101000... x 2^2
              ------------
            = 101.01110...   x 2^2

normalizzo il risultato

            = 1.0101110...   x 2^4

per cui segno +, esponente = 4+127 = 131 = 10000011
(a+b) = 0 10000011 0101110000...


3) Quali delle seguenti operazioni eseguite con aritmetica binaria in
complemento a due su 4 bit generano un overflow?
Giustificare le risposte.

   a) 0111 + 0111 = .... overflow!  1110 e' negativo (+ + + = -)
   b) 1111 + 0111 = .... ok. 0110 (il bit che esce non e' OV) 
   c) 1000 + 1111 = .... overflow! (- + - = +)
   d) 1001 + 0111 = .... ok. 0000 (il bit che esce non e' OV)
   e) 1000 + 1000 = .... overflow (- + - = +)
   f) 1010 - 0010 = .... ok. 1000 (il bit che esce non e' OV)
   g) 1111 - 1000 = .... ok. 0111 (il bit che esce non e' OV)
   h) 1000 - 0001 = .... overflow! (- - + = +)
   i) 0111 - 1111 = .... overflow! (+ - - = -)
   l) 0111 - 0001 = .... ok. 0110 (il bit che esce non e' OV)
   m) 1010 - 0011 = .... overflow! (- - + = +)

------------------------------------------------------------------------

Martedi 4 Settembre 2001 (Parte di reti logiche)

------------------------------------------------------------------------
             Parte B: reti logiche e aritmetica binaria
------------------------------------------------------------------------

1) Una rete sequenziale "S" riceve in input una sequenza di bit x(t), 
potenzialmente infinita, da intendersi come la rappresentazione binaria 
in complemento a due di un valore intero.
Assumendo che i bit entranti siano ordinati dal bit meno significativo (LSB) 
al piu' significativo (MSB), si vuole realizzare un circuito automatico
sequenziale (bit a bit) per il complemento a due.
Il complemento a due di una rappresentazione binaria si ottiene
complementando tutti i bit e quindi sommando il valore uno al valore ottenuto.
L'uscita Z(t) della rete P restituisce quindi la sequenza di bit, ordinata dal 
bit LSB al bit MSB, del valore opposto (in complemento a due) rispetto al
valore ricevuto in ingresso.
(es. il valore 59 = 00111011 diventa -59 = 11000101, e viceversa)

                            ________ 
      MSB      LSB         |        |          MSB      LSB
 x(t)...00111011       x ->|  "P"   |--> Z(t) ...11000101
                           |        |
                       r ->|        |-->
                         |  --------   |
			 |             |
                         |-------------|
                       linee di retroazione

Progettare l`automa di Moore (o di Mealy) per la codifica e la minimizzazione
degli stati, la rete combinatoria P (in forma SP) che genera l`uscita Z e le 
linee di retroazione (r) utilizzando i metodi visti a lezione.
Riportare gli automi, le tabelle di flusso e di minimizzazione, le mappe di
Karnaugh, le espressioni finali in forma SP, ed una traccia scritta del 
procedimento seguito.

Automa di Moore codificato in tabella di flusso:

              input        0         1
   (stato iniziale)    A  B,0       E,1
                       B  B,0       C,1
		       C  C,1       D,0
		       D  C,1       D,0
		       E  E,1       F,0
		       F  E,1       F,0
Minimizzazione automa

                       B ec
		       C  x     x
		       D  x     x     o
		       E  x     x    df   ce,df
		       F  x     x   ce,df   ce    o
		          A     B     C     D     E
e quindi
                       B  o
		       C  x     x
		       D  x     x     o
		       E  x     x     o     o 
		       F  x     x     o     o    o
		          A     B     C     D     E


occorrono 2 stati (alfa e beta), e quindi due bit per codificare lo 
stato e quindi due linee di retroazione s0': siano 
                     s0'
Alfa = (A,B) =       0  
Beta = (C,D,E,F) =   1  

tabella di verita' delle funzioni Z(t) e Stato successivo (s1',s0' ovvero
le due linee di retroazione)

            s0 x | s0' Z(t)
	    -------------------
	    0  0 |  0   0   (se sono in Alfa con input 0 rimango in A, Z=0)
	    0  1 |  1   1   (ecc. )
	    1  0 |  1   1 
	    1  1 |  1   0

   Mappe di Karnaugh

   s0': somma mintermini (1,2,3)
           \  x 
        s0  
            0 1 
            1 1    = s0 + x

   Z(t): somma mintermini (1,2)
           \  x 
        s0  
            0 1
            1 0    = s0!x + !s0x


2) Assumendo di usare la rappresentazione in virgola mobile IEEE 754 
in singola precisione (su 32 bit) con base di polarizzazione per 
l`esponente pari a 127 (01111111), tradurre il valore a) in decimale,
ed il valore b da decimale a rappresentazione IEEE 754:

    a)  1 10000100 10010110000000000000000 equivale a ...............
    svolgimento:
    segno -
    esponente = 10000100 - 01111111 = 132-127 = +5
    mantissa = 1.1001011000... x 2^5 = 110010.11000... x 2^0 = -50.75

    b)  . ........ ....................... equivale a +22.50 
    svolgimento:
    segno: 0
    parte intera: 22 = 10110 (alg. della divisione e prendo i resti)
    parte frazionaria = 0.50 x2 = 1.00 --> 1
			0.00 x2 = 0.00 --> 00000...
    mantissa = 10110.10000...x2^0 
    normalizzo = 1.0110100000... x2^4
    esponente (base polarizz. 127) = 4+127 = 131 = 10000011
    e quindi si ottiene: 1 10000011 011010000000000000

In seguito si esprima il valore della somma (a+b) in formato IEEE 754.

 a + b = . ........ .......................


          a = -1.1001011000... x2^5
	  b = 1.0110100000... x2^4 
porto nello stesso esponente (il minore dei due)

          a = -11.001011000... x2^4
	  b = 1.0110100000... x2^4 
faccio la sottrazione in binario delle mantisse allineate
N.B. siccome |a| > |b| faccio b-a e poi ricordo di invertire il segno.

            11.0010110000 - 
	     1.0110100000
            ------------- 
            01.1100010000 x 2^4

risultato gia' normalizzato

per cui segno -, esponente = 4+127 = 131 = 10000011
(a+b) = 1 10000011 1100010000...


3) Quali sono tutte le possibili rappresentazioni dello zero, su 8 bit,
   in notazione

  a) binario naturale: 00000000
  b) binario in complemento a uno: 00000000 e 11111111
  c) binario in complemento a due: 00000000
  d) binaria polarizzata con base 127 (N.B. non IEEE 754): 01111111
  e) binaria polarizzata con base 128 (N.B. non IEEE 754): 10000000

  Quale e` il valore negativo (in base 10), con il massimo valore assoluto,
  che e` possibile rappresentare, su 8 bit, in notazione

  f) binario naturale: nessun valore negativo rappresentabile
  g) binario in complemento a uno: -127 (10000000)
  h) binario in complemento a due: -128 (10000000)
  i) binaria polarizzata con base 127 (N.B. non IEEE 754): -127 (00000000)
  l) binaria polarizzata con base 128 (N.B. non IEEE 754): -128 (00000000)

Giustificare le risposte.

------------------------------------------------------------------------

Lunedi 24 Settembre 2001 (Parte di reti logiche)


------------------------------------------------------------------------
             Parte B: reti logiche e aritmetica binaria
------------------------------------------------------------------------

1) Progettare una rete sequenziale "S" che riceva in input due sequenze di
bit sincrone (ingresso x1(t) e x2(t)) potenzialmente infinite, a partire 
da un tempo iniziale t0.
L'uscita Z(t) della rete P vale 1 se e solo se le due sequenze differiscono
di un numero di bit multiplo di 3 (maggiore di zero), dal tempo t0 fino al 
tempo t. 

                            ________ 
                           |        |
 x1(t)...00100011100     ->|  "P"   |--> Z(t) ...01111100000
 x2(t)...10100110110     ->|  "P"   |
                           |        |
                       r ->|        |-->
                         |  --------   |
			 |             |
                         |-----<-------|
                       linee di retroazione

Progettare l automa di Mealy (o di Moore) per la codifica e la minimizzazione
degli stati, la rete combinatoria P in forma SP che genera l uscita Z e le 
linee di retroazione (r) utilizzando i metodi visti a lezione.
Riportare per intero le tabelle, le mappe, i procedimenti e le
espressioni finali ottenute in forma SP, ed una traccia scritta del 
procedimento seguito.

Svolgimento:
Automa di Moore codificato in tabella di flusso:

              input        00        01       10       11
   (stato iniziale)    A  A,0       B,0      B,0      A,0
                       B  B,0       C,0      C,0      B,0
		       C  C,0       D,1      D,1      C,0
		       D  D,1       B,0      B,0      D,1
Minimizzazione automa

                       B bc
		       C  x   x
		       D  x   x   x
		          A   B   C
e quindi
                       B  x
		       C  x   x
		       D  x   x   x
		          A   B   C

occorrono 4 stati, e quindi due bit (s1 e s0) per codificare lo stato e quindi
ponendo A=00, B=01, C=10, D=11 si ottiene la seguente tabella di verita`.

   s1 s0 x2 x1 | s1` s0` Z
   -----------------------
   0  0  0  0  | 0   0   0  (se sono in A e arriva 00 rimango in A, Z=0)
   0  0  0  1  | 0   1   0 
   0  0  1  0  | 0   1   0 
   0  0  1  1  | 0   0   0 
   0  1  0  0  | 0   1   0 
   0  1  0  1  | 1   0   0 
   0  1  1  0  | 1   0   0 
   0  1  1  1  | 0   1   0 
   1  0  0  0  | 1   0   0 
   1  0  0  1  | 1   1   1 
   1  0  1  0  | 1   1   1 
   1  0  1  1  | 1   0   0 
   1  1  0  0  | 1   1   1 
   1  1  0  1  | 0   1   0 
   1  1  1  0  | 0   1   0 
   1  1  1  1  | 1   1   1 

dalla quale trovo le tre mappe di Karnaugh:

s1`:
           x2,x1 00 01 11 10
         s1,s0
           00    0  0  0  0
	   01    0  1  0  1
	   11    1  0  1  0  = s1!s0 + s1!x2!x1 + s1x2x1 + s0!x2x1 + s0x2!x1
	   10    1  1  1  1

s0`:
           x2,x1 00 01 11 10
         s1,s0
           00    0  1  0  1
	   01    1  0  1  0
	   11    1  1  1  1  = s1s0+s1!x2!x1+s0!x2!x1+s1x2x1+s0x2x1+...
	   10    1  0  1  0    ...+!s1!s0!x2x1+!s1!s0x2!x1 

Z:
           x2,x1 00 01 11 10
         s1,s0
           00    0  0  0  0
	   01    0  0  0  0
	   11    1  0  1  0  = s1s0!x2!x1+s1!s0!x2x1+s1s0x2x1+s1!s0x2!x1
	   10    0  1  0  1  


2) Assumendo di usare la rappresentazione in virgola mobile IEEE 754 
in singola precisione (su 32 bit) con base di polarizzazione per 
l`esponente pari a 127 (01111111), tradurre il valore a) in decimale,
ed il valore b da decimale a rappresentazione IEEE 754:

    a)  0 10000101 11010101000000000000000 equivale a ...............
Svolgimento:
    segno: +
    esponente: 10000101 - 01111111 = 133-127 = +6
    mantissa: 1.11010101000...x2^6 = 1110101.01 x 2^0 = +117.25

    b)  . ........ ....................... equivale a 19.5625 
Svolgimento:
    segno: 0
    parte intera: 19 = 10011
    parte frazionaria: 0.5625x2 = 1.125  --> 1
                       0.125 x2 = 0.250  --> 0
                       0.250 x2 = 0.500  --> 0
                       0.500 x2 = 1.000  --> 1
                       0.000 x2 = 0.000  --> 000000...
    mantissa: 10011.100100000 x2^0
    mantissa normalizzata: 1.00111001000...x2^4
    esponente: 127+4 = 131 = 10000011
e quindi: b = 0 10000011 00111001000000000000000

In seguito si esprima il valore della somma (a+b) in formato IEEE 754.

 a + b = . ........ .......................

Svolgimento:
porto in forma con stesso esponente (minore)

             a  1.11010101000...x2^6 = 111.010101000 x2^4
             b  1.00111001000...x2^4
ora sommo le mantisse allineate
             a  111.010101000...  x2^4
             b    1.00111001000...x2^4
	     ------------------------
               1000.100011010000  x 2^4
normalizzo il risultato
               1.000100011010000  x 2^7
esponente: 7+127 = 134 = 10000110

e quindi (a+b) = 0 10000110 00010001101000000000000



e si esprima il valore della parte intera di (a+b) in esadecimale.

 a + b = ......... esadecimale

Svolgimento:

    1.000100011010000 x 2^7 = 10001000.110100000 x2^0
quindi la parte intera e'

         10001000: raccogliendo da LSB (dx) i bit a 4 a 4 ottengo
	 1000 1000 che equivalgono alle due cifre 88 hex



3) Quali delle seguenti operazioni eseguite su una rappresentazione IEEE754
su 32 bit, con base di polarizzazione 127 (01111111) generano overflow oppure
underflow? Assumere di usare solo rappresentazioni normalizzate, e di avere
a disposizione tutti i valori rappresentabili dell`esponente su 8 bit.
Giustificare le risposte.

(Gli esponenti rappresentabili vanno quindi da -127 a +128...)
(N.B. la mantissa va sempre normalizzata, il segno del numero non va
confuso col segno dell'esponente, e attenzione all'operazione effettuata)

   a) 1*2^127 + 1*2^127 = 2*2^127 = 1*2^128  ok
   b) 1*2^128 + 1*2^128 = 2*2^128 = 1*2^129  overflow
   c) -1*2^127 - 1*2^127 = -2*2^127 = -1*2^128 ok
   d) 1*2^(-127) / 1*2^1  = 1*2^(-127-1) underflow
   e) 1*2^64  * 1*2^64 = 1*2^(64+64) ok
   f) -1*2^64  * 1*2^65 = -1*2^(64+65) = -1*2^129 overflow
   g) 1*2^127 - 1*2^128 = (1-2)x2^127 = -1*2^127 ok
   h) 1*2^(-127) * 1*2^128 = 1*2^(-127+128) = 2 ok
   i) -1*2^127 + 1*2^127 = 0 ok
   l) 1*2^(-127) * 1*2^(-1) = 1*2^(-127-1) = 1*2^(-128) underflow

------------------------------------------------------------------------

Lunedi 3 Giugno 2002 (Parte di reti logiche)

Progettare una rete sequenziale "S" che riceva in input una sequenza di bit di 
ingresso x(t) potenzialmente infinita, a partire da un tempo iniziale t0. 
Si deve realizzare una rete che assuma output Z(t)=1 se e solo se l'ultima coppia di valori 
di input osservati (x(t),x(t-1)) hanno lo stesso valore. 
La rete deve produrre output Z(t)=0 durante l'attesa e l'input del primo valore della sequenza.

                            ________ 
                           |        |
  x(t)...01001101001     ->|  "P"   |--> Z(t) ...00101000100
                           |        |
                       r ->|        |-->
                         |  --------   |
                         |             |
                         |-----<-------|
                       linee di retroazione
					   
Progettare l'automa di Moore, effettuare la minimizzazione degli stati ottenendo 
l'automa minimo in forma di Mealy, e progettare la rete combinatoria P in forma 
SP che genera l'uscita Z e le linee di retroazione (r) utilizzando i metodi visti 
a lezione. Riportare per intero le tabelle, le mappe, i procedimenti e le espressioni 
finali ottenute in forma SP, ed una traccia scritta del procedimento seguito.

Svolgimento:

Automa di Moore (in forma tabella di flusso)

             0     1
        A   B,0   C,0
        B   D,1   C,0
        C   B,0   E,1
        D   D,1   C,0
        E   B,0   E,1

Minimizzazione:

          B  X
          C  X  X
          D  X  O  X
          E  X  X  O  X
             A  B  C  D
			 
Automa minimo: 3 stati (due bit per codifica (s1, s0), scelta arbitraria) 
     {A}  = 00 
     {BD} = 01 
     {CE} = 10
Tabella di verità:
      s1 s0 x(t) | s1' s0' Z(t)
	  -------------------------
      0   0   0  |  0   1   0    se sono in {A} e arriva 0 vado in {BD} e Z=0...
      0   0   1  |  1   0   0
      0   1   0  |  0   1   1
      0   1   1  |  1   0   0
      1   0   0  |  0   1   0
      1   0   1  |  1   0   1
      1   1   0  |  X   X   X    lo stato 11 non esiste, quindi le funzioni binarie 
      1   1   1  |  X   X   X    hanno dei gradi di libertà che posso sfruttare nella
	                             copertura degli implicanti.
Mappe di Karnaugh:

   s1':
             \ s0 x 
        s1  
              0 1 1 0       0 1 1 0
              0 1 X X    =  0 1 1 0 =   s1' = x

   s0':
             \ s0 x 
        s1  
              1 0 0 1       1 0 0 1
              1 0 X X    =  1 0 0 1 =   s0' = !x

   Z(t):
             \ s0 x 
        s1  
              0 0 0 1       0 0 0 1
              0 1 X X    =  0 1 1 1 =   Z(t) = s1x + s0!x


Esercizio 2
  Assumendo di usare la rappresentazione in virgola mobile IEEE 754 in singola 
  precisione (su 32 bit) con base di polarizzazione per l'esponente pari a 127 
  (01111111), tradurre il valore (a) in decimale, ed il valore (b) da decimale 
  a rappresentazione IEEE 754:

a) 0 10000010 01010100000000000000000 equivale a ____________ segno: + esponente: 10000010 - 01111111 = 130-127 = +3 mantissa: 1.0101010000 x 2^3 = 1010.1010000 x 2^0 a= + (8+2+1/2+1/8) = +10.625 b) _ ________ _______________________ equivale a -33.125 segno - : bit 1 parte intera: 33:2 = 16 resto 1 (msb) 16:2 = 8 resto 0 8 :2 = 4 resto 0 4 :2 = 2 resto 0 2 :2 = 1 resto 0 1 :2 = 0 resto 1 (lsb) parte frazionaria: 0.125 x 2 = 0.250 parte intera 0 (msb parte frazionaria) 0.250 x 2 = 0.500 parte intera 0 0.500 x 2 = 1.000 parte intera 1 0.000 x 2 = 0.000 parte intera 0.... mantissa : 100001.0010000... x 2^0, normalizzo: 1.000010010000...x2^5 esponente = 5 = (127+5=132) = 01111111 + 00000101 = 10000100 b) = 1 10000100 00001001000000000000000 Esercizio 3: Completare la seguente tabella trasformando il valore espresso su ogni riga nel valore corrispondente alla rappresentazione sulle altre colonne. Valori binari vanno rappresentati su 8 bit. Denotare con X i valori non rappresentabili. Decimale Binario naturale Compl. a Due Polarizzata(b.p.127) a) ____0____ __00000000___ __00000000__ 01111111 b) ___255___ 11111111 _____X______ ______X_____ c) 100 __01100100___ __01100100__ __11100011__ d) ___-1____ ______X______ 11111111 __01111110__ e) -128 ______X______ __10000000__ ______X_____ f) 127 __01111111___ __01111111__ __11111110__ ------------------------------------------------------------------------

Venerdi 5 Luglio 2002 (Parte di reti logiche)

Progettare una rete sequenziale "S" che riceva in input una sequenza di bit 
(ingresso x(t)) potenzialmente infinita, a partire da un tempo iniziale t0. 
L'uscita Z(t) della rete P vale 1 se e solo gli ultimi tre bit della sequenza 
di bit ricevuta in ingresso realizzano una sequenza palindroma. (cioe' la 
sequenza degli ultimi tre bit rimane uguale se letta da sx a dx e viceversa). 
Assumere lo stato iniziale della rete determinato dalla sequenza fornita dai bit 
dell'esercizio precedente (x2,x1,x0).
Progettare l'automa di Moore per la codifica e la minimizzazione degli stati, 
l'automa di Mealy minimo, le mappe di Karnaugh, la rete combinatoria P in forma 
SP e PS che genera l'uscita Z e le linee di retroazione (r) utilizzando i metodi 
visti a lezione.
Riportare per intero gli automi, le tabelle, le mappe, le espressioni finali 
ottenute in forma SP e PS, ed una traccia scritta del procedimento seguito (non 
si deve disegnare alcuna rete).

Svolgimento: assumiamo (x2,x1,x0) = (001).
L'automa di Moore iniziale ha la seguente tabella di transizione (assumendo gli
stati etichettati con un nome equivalente alla memoria degli ultimi tre bit di
input):

            0      1
A=001      B,1    C,0
B=000      B,1    C,0
C=100      E,1    D,0
D=110      G,0    H,1
E=010      A,0    F,1
F=101      E,1    D,0
G=011      A,0    F,1
H=111      G,0    H,1

La tabella di minimizzazione diventa:

B     O
C (be),(cd)  (be),(cd)
D     X          X          X
E     X          X          X      (ga),(hf)
F (be),(cd)  (be),(cd)      O          X          X
G     X          X          X      (ga),(hf)      O        X
H     X          X          X          X      (ga),(hf)    X    (ga),(hf)
      A          B          C          D          E        F        G

per cui risultano indistinguibili gli stati:
Alfa = (A,B)
Beta = (C,F)
Gamma = (D,H)
Delta = (E,G)

essendo 4 stati bastano due bit per la codifica (s1 e s0)

        s1 s0
Alfa  = 0  0
Beta  = 0  1
Gamma = 1  0
Delta = 1  1

L'automa di Mealy minimo diventa:

         0        1
Alfa   Alfa,1   Beta,0
Beta   Delta,1  Gamma,0
Gamma  Delta,0  Gamma,1
Delta  Alfa,0   Beta,1

La tabella di verita' completa ottenuta diventa:

s1 s0 X  | s1' s0' Z
0  0  0  | 0   0   1
0  0  1  | 0   1   0
0  1  0  | 1   1   1
0  1  1  | 1   0   0
1  0  0  | 1   1   0
1  0  1  | 1   0   1
1  1  0  | 0   0   0
1  1  1  | 0   1   1

e quindi le forme SP e PS finali sono:

s1' = s1!s0 + !s1s0 (SP) = (s1+s0)(!s1+!s0) (PS)
s0' = s1!s0!X + !s1!s0X + s1s0X + !s1s0!X (SP) = (s1+s0+X)(!s1+s0+!X)(s1+!s0+!X)(!s1+!s0+X) (PS)
Z   = !s1!X + s1X (SP) = (s1+!X)(!s1+X) (PS)



Esercizio 2
Assumendo di usare la rappresentazione in virgola mobile IEEE 754 in singola 
precisione (su 32 bit) con base di polarizzazione per l'esponente pari a 127 
(01111111), quale e' il minimo valore positivo (b) in notazione IEEE754, che 
sarebbe possibile sommare ad (a), per vedere almeno un bit di differenza tra 
(a) e la somma (c)=(a)+(b)? Si deve considerare solo il troncamento (e non 
l'arrotondamento) della mantissa, e si deve riportare il procedimento svolto 
per determinare (b) e (c).
a) 0 10000010 (x2,x1,x0)10000000000000000000 equivale a ____________

Sia (x2,x1,x0)= (001), allora
segno = +
esponente = 10000010 - 01111111 = 3
mantissa = 1.(001)1000.. x 2^3 = 1001.1000..x2^0 = +9.5

c) = a + b = _ ________ _______________________ (in notazione Standard IEEE754)
il valore minimo superiore ad (a) che si possa rappresentare con almeno un bit di
differenza rispetto ad (a) e':
c) = 0 10000010 (001)10000000000000000001

per cui b) = c-a diventa
b) = 0.00000000000000000000001 x 2^3 = 1.00000000000000000000 x2^(-20) =
   = 0 01101011 00000000000000000000000



Esercizio 3
La somma di due valori discordi in complemento a due su n bit (A e B) in quali 
casi determina overflow? Giustificare l'affermazione.

Mai. 
I valori rappresentabili in complemento a due vanno da -2^n fino a +(2^n)-1.
Il valore della somma di due valori discordi genera sempre un valore compreso tra
i due valori iniziali (si dimostra facilmente). Ne risulta che, essendo i due valori
iniziali rappresentabili, anche il valore del risultato e' rappresentabile.

10 Settembre 2002 (Parte di reti logiche)

B/Esercizio 0

Tradurre in binario in complemento a due su 4 bit il valore opposto della penultima 
cifra decimale (d1) del numero di matricola (es. Matricola = (dn..d3,d2,d1,d0) = 0..123456, 
d1 = 5, tradurre –d1 = –5 in complemento a due su 5 bit).

Svolgimento: (supponiamo d1 = 9)
Penultima cifra decimale (d1) = __9__	
-d1 in complemento a due (b4,b3,b2,b1,b0) = -01001 = 10110+1 = 10111



B/Esercizio 1
Siano b2, b1 e b0 i valori ottenuti nell'esercizio precedente. (e quindi 111)
Progettare una rete sequenziale "S" che riceva in input due sequenze di bit di ingresso x(t) 
e y(t) potenzialmente infinite, a partire da un tempo iniziale t0. 
Si deve realizzare una rete che assuma output Z(t)= 0 se e solo se le due sequenze hanno visto 
l'ultimo e il terzultimo bit uguali e il penultimo bit diverso tra loro. 
Assumere lo stato iniziale della rete come lo stato nel quale gli ultimi tre bit delle sequenze 
erano [uguali=1, diversi=0] b2(t), b1(t-1), b0(t-2). (e quindi [uguali(t),uguali(t-1),uguali(t-2)]).

	
Progettare l'automa di Moore, effettuare la minimizzazione degli stati ottenendo l'automa minimo 
in forma di Mealy, e progettare la rete combinatoria P in forma SP che genera l'uscita Z e le 
linee di retroazione (r) utilizzando i metodi visti a lezione. 

Svolgimento:


Immaginiamo di associare ad ogni stato la memoria di quello che è accaduto relativamente
all'uguaglianza o meno degli ultimi tre bit visti:

H = 111 (ultimi tre bit diversi tra loro)
G = 110 (ultimo e penultimo bit diverso, terzultimo bit uguale)
F = 101 (ultimo e terzultimo bit diverso, penultimo bit uguale) N.B. unico caso in cui Z(t)=0.
...
A = 000 (ultimi tre bit uguali tra loro)
Sono in tutto 8 possibili combinazioni.
Si assume di partire dallo stato H=111, prevedendo un arco in uscita per ogni possibile
input delle due sequenze al tempo t attuale. 
In particolare, i possibili input dell'automa sono dati dalle possibili combinazioni di 
input (sincrone) delle due sequenze: 
input X(t)=0 e Y(t)=0 ---> 00 (cioè uguali)
input X(t)=0 e Y(t)=1 ---> 01 (cioè diversi)
input X(t)=1 e Y(t)=0 ---> 10 (cioè diversi)
input X(t)=1 e Y(t)=1 ---> 11 (cioè uguali)

Automa in forma tabella di flusso:

                         input x(t),y(t)
     stato         00    01    10    11
       A           E,1   A,1   A,1   E,1
       B           E,1   A,1   A,1   E,1
       C           F,0   B,1   B,1   F,0
       D           F,0   B,1   B,1   F,0
       E           G,1   C,1   C,1   G,1
       F           G,1   C,1   C,1   G,1
       G           H,1   D,1   D,1   H,1
       H           H,1   D,1   D,1   H,1
	   
   Procediamo alla minimizzazione:
   
       B    O
       C    X       X
       D    X       X       O
       E  eg,ac   eg,ac     X       X
       F  eg,ac   eg,ac     X       X       O
       G  eh,ad   eh,ad     X       X     gh,cd     gh,cd
       H  eh,ad   eh,ad     X       X     gh,cd     gh,cd     O
            
            A       B       C       D       E         F       G
	   
	   Da cui si deduce che
	   {AB}, {CD}, {EF}, {GH}
	   e che
	   {eg,ac} risulta distinguibile
	   {eh,ad} risulta distinguibile
	   {gh,cd} risulta indistinguibile, in quanto sia gh che cd sono indistinguibili.
	   Per cui vale anche {eg},{eh},{fg},{fh}.
	   Gli stati dell'automa minimo sono quindi tre: 
	   Alfa = {AB}
	   Beta = {CD}
	   Gamma = {EFGH}
	   
	                00       01       10       11
	   Alfa       Gamma,1  Alfa,1   Alfa,1   Gamma,1
	   Beta       Gamma,0  Alfa,1   Alfa,1   Gamma,0
	   Gamma      Gamma,1  Beta,1   Beta,1   Gamma,1

 A questo punto si possono denominare arbitrariamente gli stati con una coppia di bit s1,s0
 e procedere alla definizione della tabella di verità.
 La tabella prevede 16 combinazioni di input (s1,s0,x(t),y(t)) delle quali 4 sono indifferenti
 (X) sull'output. Gli output definiti sono 3: s1', s0', Z(t) e quindi si devono scrivere 3
 mappe di Karnaugh a 16 celle. Si lascia lo svolgimento relativo per esercizio.
 N.B. identificando le coppie 00 e 11 come (uguali), le coppie 01 e 10 come (diverse) si
 possono ridurre le celle delle mappe di karnaugh a 8 (es. ponendo uguali=1 e diverse=0),
 e sostituendo a x(t),y(t) il solo bit (uguali) o (diverse).
 

B/Esercizio 2:
Siano d1 e d0 le due cifre decimali meno significative della matricola, e b2,b1,b0 i valori dei bit dell'esercizio 0.
Sia K = 128 + (d1*10) + d0 = ____________
Assumendo di usare la rappresentazione in virgola mobile IEEE 754 in singola precisione (su 32 bit) con base di 
polarizzazione per l'esponente pari a 127 (01111111), tradurre il valore (a) in decimale, ed il valore (b) da decimale a 
rappresentazione IEEE 754:

    a)  0 1000001(b0) (b1,b2)000000000000000000000     equivale a ____________
	
	Svolgimento:
	1.(b1,b2)00000000 x 2^(3+b0)
	

    b)  _ __________  ___________________________     equivale a     -K .4375 
	
	Svolgimento:
	segno: 1 (negativo)
	esponente: 10000110 (+7) in quanto il bit più significativo è sempre relativo a 2^7 (128).
	mantissa: K in binario . 0111 (parte decimale 1/4+1/8+1/16)

B/Esercizio 3:  0.2 
Giustificare le risposte.
Quale è il massimo valore minore di 1, rappresentabile nello Standard IEEE754 in doppia precisione (64 bit) con base 
di polarizzazione 011111111111 =1023 ?

Svolgimento: il valore massimo positivo minore di uno è 1.1111111111111111111111111111111 x 2^-1
pari a 1/2+1/4+1/8+..........+1/(2^-52) . Infatti basta sommare 1 x 2^-52 alla mantissa per
ottenere UNO. Tale valore si rappresenta come

0  01111111110  111111111111111111111111111111111111111111111111111

Quale è il minimo valore maggiore di -1, rappresentabile nello Standard IEEE754 in doppia precisione (64 bit) con base 
di polarizzazione 011111111111 =1023 ?

Lo stesso di prima con solo il bit di segno opposto (1).