Università di Roma "La Sapienza" - Facoltà di Ingegneria
Laurea Specialistica in Ingegneria Informatica - Corso di Reti Logiche
[ Precedente ][ Indice ][ Successivo ] |
|
||||||
Date: Wed, 5 Dec 2007 18:32:05 +0100 Subject: Progetti vari di Calcolatori Elettronici II |
||||||
Mi permetto di inoltrarle alcuni dei progetti di calcolatori svolti da me in questi
giorni.
Ho cercato di iniziare dai più semplici, sperando sempre di averli fatto bene.
|
||||||
28 giugno 2002 (IFMAX) ====================== In questo progetto la CPU non invia alcun dato all'interfaccia, deve dare soltanto uno Start. Di conseguenza, il registro in alto a sinistra, anche questo incorrettamente indicato come PISO, non ha alcuna funzione. I dati EXTDATA, inoltre, non provengono dalla CPU ma dal mondo esterno, e non sono in alcun modo sincronizzati con essa, ma con un clock EXTCLK anch'esso proveniente dal mondo esterno. La porta di input in alto a destra: a che serve, se poi il risultato viene (correttamente) prelevato in basso a sinistra dal registro cjhe mantiene il massimo valore trovato?
9 luglio 2002 (IFRANGE) I dati provengono dall'esterno, non dall'I/O Data Bus, dunque non puo' sincronizzarli con I/O Write poiche' la CPU non ha modo di sapere quand'e' che arrivano. Inoltre, perche' indica con "PISO" un semplice registro D (latch o edge-triggered che sia)? PISO significa "Parallel-Input Serial-Output", dunque e' un qualcosa con piu' linee di ingresso e una sola linea di uscita, e non e' questo il suo caso!
23 luglio 2002 (SERIN) A che serve la porta di output che ha disegnato per prima, per di piu' connessa all'I/O Address Bus anziche' all'I/O Data Bus? In questo progetto la CPU non invia alcuna informazione all'interfaccia, ne' da' alcuno Start: l'interfaccia lavora in continuazione, e l'unico trasferimento di dati avviene dall'interfaccia *verso* la CPU. Tra il SIPO e il bus (la porta di destra) conviene inserire un "registro tampone", altrimenti la CPU ha a disposizione un solo periodo di XCLK per reagire all'interrupt: se non lo fa, al clock successivo il SIPO potrebbe venire modificato e il dato da passare alla CPU verrebbe perso. La sequenza e' la seguente: al 12-esimo clock il contenuto del SIPO viene copiato nel registro tampone e viene generato l'interrupt; la CPU legge il dato dal registro tampone (e non dal SIPO) avendo in questo modo almeno 12 periodi di XCLK di tempo per reagire all'interrupt.
9 settembre 2002 (SEROUT) Qui c'e' gran confusione. Il primo registro che fa da porta, e' incorrettamente indicato come PISO (ha infatti 12 uscite). Il secondo registro, in alto a destra, anche questo incorrettamente indicato come PISO, non ha nessuna funzione: questa interfaccia non invia alcun dato alla CPU! Il vero PISO invece e' il registro in basso a sinistra, la cui uscita seriale tuttavia non deve andare alla CPU ma al mondo esterno. 13 dicembre 2002 (IFPTY) Anche qui il solito PISO (in alto a sinistra) che non serve a nulla: i dati provengono dall'esterno, non dalla CPU. La parità si calcola con un albero di XOR, non con Half Adder ne' con ROM -- quindi non va bene ne' la prima ne' la seconda soluzione. Inoltre, i dati arrivano in parallelo, non in serie, dunque la parita' va calcolata in un singolo periodo di clock e di conseguenza il contatore mod 16 non deve esistere. 21 luglio 2003 (IFKEY) Questo va abbastanza bene. Due soli appunti: (1) il clock non e' un generico XCLK (mai citato nel testo del progetto) ma puo' benissimo essere il System Clock (2) Il SEL delle due porte di input *deve* essere lo stesso (è compito dell'uscita di comparatore A=B decidere quale delle due deve essere abilitata), la CPU legge il risultato da un unico device_address, ne' puo' sapere quale e' la effettiva sorgente del dato che sta leggendo. |
|
|||
Date: Fri, 7 Dec 2007 22:15:37 +0100 (CET) Subject: Progetti vari di Calcolatori Elettronici II |
|||
Le mando altri progetti svolti, spero di aver superato i problemi che ha riscontrato nei
progetti precedenti
|
|||
28 giugno 2004 (IFSTR) ====================== Manca la comparazione con la stringa S'.
17 dicembre 2004 (IFSPK) (pag 2) La ROM contiene gia' i campioni del segnale che occorre emettere in uscita, non c'e' bisogno di alcunn decoder: le uscite della ROM vanno direttamente all'uscita (che, come dice il testo, e' *un* canale ad 8 bit). 6 luglio 2005 (IFABS) (pag 3 in alto) A cosa servono i tri-state abilitati da INIZIO? Se ci pensa un attimo, non hanno alcuna funzione. A cosa serve un XOR con un ingresso fisso a 0? A nulla, lascia comunque passare l'altro ingresso inalterato e dunque e' equivalente a un pezzo di conduttore. Puo' anche risparmiare i tri-state verso il bus interno semplicemente connettendo il bit di segno, qualunque esso sia, agli ingressi degli XOR in pag. 2 e al carry-in del sommatore. (pag 3 in basso) L'interrupt non deve essere generato dall'OR di E0, E1 ma dalla decodifica dello stato #1023 |
[ Precedente ][ Indice ][ Successivo ] |
Last update 2008-01-19 15:01