Progetto Sincrono

18
Progetto Sincrono Schematico

description

Progetto Sincrono. Schematico. Specifiche. - PowerPoint PPT Presentation

Transcript of Progetto Sincrono

Page 1: Progetto Sincrono

Progetto Sincrono

Schematico

Page 2: Progetto Sincrono

Specifiche• Una rete sequenziale sincrona riceve in ingresso seriale 2 sequenze

di 8 bit (a partire dal bit meno significativo) attraverso i due segnali di input X1 e X2. Le sequenze di 8 bit sono intervallate da 8 periodi di clock. Tali sequenze dovranno essere prese in considerazione solo mentre il segnale di input E è a 1. Viceversa, per E = 0 i bit in entrata verranno scartati. La rete dovrà elaborare le sequenze in entrata in modo che se presentano lo stesso numero di ‘1’ esse siano sommate e il risultato della somma mandato in output in modo seriale (a partire dal bit meno significativo) negli 8 periodi di clock successivi alla lettura. Se ciò non è verificato, le due sequenze dovranno essere divise per 2, sommate e mandate in output parallelo nel periodo di clock subito successivo alla lettura.

Page 3: Progetto Sincrono

Schematico (1)La rete è stata realizzata con sintesi diretta. Lo schematico a lato è stato suddiviso in 8 blocchi funzionali:

In blu : lettura

In rosso : conteggio degli ‘1’

In verde : confronto dei conteggi

In magenta : selezione delle sequenze da sommare

In azzurro : somma delle sequenze

In viola : uscita parallela

In arancio : uscita seriale

In giallo : contatore

Page 4: Progetto Sincrono

Schematico (2)

La lettura delle due sequenze in seriale è realizzata con 2 shift register a 8 bit con reset sincrono. Il CE è attivo se E = ‘1’, cioè nella fase di input appunto.

Page 5: Progetto Sincrono

Schematico (3)

Mediante 2 accumulatori, viene conteggiato il numero di ‘1’ per ogni sequenza. Il Carry In degli accumulatori è caricato con il primo pin out degli shift register, in questo modo il conteggio verrà incrementato se si incontrerà un ‘1’ appunto. Il CE, come per gli shift register, è caricato con il valore di E. ADD è tenuto a ‘1’ per far si che l’accumulatore continui a conteggiare, mentre il LOAD è tenuto a ‘0’ per non influenzare il conteggio.Gli accumulatori vengono resettati in modo sincrono se il reset è a ‘1’ oppure se l’output è terminato (vedere contatore).

Page 6: Progetto Sincrono

Schematico (4)

Con 3 XNOR messi in AND si verifica se i due conteggi sono uguali.

Page 7: Progetto Sincrono

Schematico (5)

Le uscite degli shift register vengono multiplexate in modo da scegliere le sequenze stesse oppure il loro valore dimezzato, in base al risultato del controllo sui conteggi. Il controllo dei multiplexer è infatti assegnato all’uscita dell’AND degli XNOR, così da lasciar passare le sequenze di partenza se il controllo ha restituito ‘1’ oppure le sequenze dimezzate se il controllo risulta ‘0’.

Page 8: Progetto Sincrono

Schematico (6)

Mediante un FULL ADDER a 8 bit vengono sommate le sequenze opportune, provenienti dalle uscite dei multiplexer. Il risultato della somma viene mandato ad entrambe le uscite, che saranno discriminate sempre in base al risultato del controllo.

Page 9: Progetto Sincrono

Schematico (7)

L’uscita parallela è realizzata mediante un registro parallelo a 8 bit, sempre attivo e resettato in modo sincrono dal reset, da E (fase di lettura) oppure dal controllo positivo del conteggio (si attiva l’uscita seriale).

Page 10: Progetto Sincrono

Schematico (8)

Anche in questo caso, l’uscita seriale è realizzata mediante un FlipFlop Delay resettato in modo sincrono dal reset, da E (fase di lettura) oppure dal controllo negativo dei conteggi (si attiva l’uscita parallela).Per fare in modo che dall’uscita seriale esca la somma delle sequenze a partire dal bit meno significativo, le uscite del FULL ADDER sono multiplexate e controllate dal contatore: ad ogni ciclo di clock verrà lasciato passare il bit opportuno, a cominciare, appunto, da quello meno significativo.

Page 11: Progetto Sincrono

Schematico (9)

E’ stato utilizzato un contatore a 4 bit per realizzarne uno x8. Il contatore a 4 bit sarà dunque resettato dopo la fine del conteggio (Q3 = 1, reset sincrono). Il contatore è resettato anche dal reset oppure da E (fase di lettura). L’OR in alto a sinistra tra il segnale di reset e il raggiungimento di ‘7’ nelle uscite del contatore va a resettare gli accumulatori per il conteggio degli ‘1’.

Page 12: Progetto Sincrono

Testbench VHDL (1)Librerie ed entity

Architecture: componentSegnaliPort Map

Page 13: Progetto Sincrono

Testbench VHDL (2)

Clock_process per la gestione del clock e Reading_process per la gestione del segnale E

Page 14: Progetto Sincrono

Testbench VHDL (3)

Prima lettura:

X1 = «00001101»X2 = «00100110»

Page 15: Progetto Sincrono

Testbench VHDL (4)

Seconda lettura:

X1 = «00100111»X2 = «01001100»

Page 16: Progetto Sincrono

Simulazione behavioral

<<<<<

Nella zona in arancio vediamo che si attiva l’uscita seriale, come da specifiche (X1 = «00001101» e X2 = «00100110» hanno lo stesso numero di ‘1’). Negli 8 clock successivi alla fine della lettura l’uscita seriale porta in output la sequenza «11001100». Le specifiche parlavano di uscita seriale dal bit meno significativo, dunque la nostra sequenza di uscita sarà «00110011», cioè la somma tra X1 e X2.

Nella zona in giallo si attiva invece l’uscita parallela (X1 = «00100111» e X2 = «01001100» non hanno lo stesso numero di ‘1’). Per 8 clock successivi alla fine della lettura l’uscita parallela porta in output la sequenza «00111001». Essendo X1 / 2 = «00010011» e X2 / 2 = «00100110», la sequenza in output è uguale alla somma di X1 e X2 dimezzati, come da specifiche.

Page 17: Progetto Sincrono

Simulazione post-route (1)

Comportamento analogo alla behavioral, con introduzione dei ritardi.

Page 18: Progetto Sincrono

Simulazione post-route (2)

Si può notare un ritardo di 7,702 ns tra il fronte del clock e l’attivazione dell’uscita seriale.

Per quanto riguarda l’uscita parallela, prima di una configurazione stabile abbiamo un ritardo di 7,736 ns.

Troviamo una differenza di 34 ps trai due ritardi.