Rete Sincrona La rete elabora dati ricevuti in ingresso relativi a porzioni di codice genetico. Attraverso due ingressi A e B sono trasmesse serialmente due sequenze di 6 bit. Ognuna delle due sequenze di fatto non ha interruzioni, ma idealmente è divisa in tre coppie di bit. Ogni coppia di bit codifica una base azotata presente nella porzione di DNA in analisi, e precisamente: • 00 -> adenina • 11 -> timina • 01 -> citosina • 10 -> guanina Una sequenza di 6 bit è pertanto la traduzione in codice binario di un codone(tripletta). Un segnale VALID si attiva contemporaneamente all’acquisizione, da parte della rete, del primo bit significativo, tornando a zero alla fine della ricezione delle sequenze. La rete ha un segnale di RESET utile a ripristinare il sistema alla condizione di partenza. Dispone anche di un unico CLOCK per sincronizzare i vari componenti. In base ad un segnale di controllo CTRL, che non varia durante l’arrivo dei dati utili, si distinguono due differenti funzioni, i cui risultati vengono mostrati attraverso le due uscite OUT_0 e OUT_1 : • CTRL=1 La rete verifica se i due filamenti di DNA possono essere appaiati. Alle tre basi azotate di un codone devono dunque corrispondere, nell’altra tripletta, basi complementari. (Adenina<->Timina , Citosina<->Guanina) A tal fine si deve contare quante delle tre coppie di basi azotate sono complementari, portando tale numero nelle due uscite. La possibilità di un corretto appaiamento si avrà pertanto solo in caso di uscita 11. • CTRL=0 La rete verifica l’uguaglianza dei due filamenti di DNA. A tal fine si deve contare quante delle tre coppie di basi azotate sono differenti, portando tale numero nelle due uscite. L’identità dei due codoni si avrà pertanto solo in caso di uscita 00. Esempi Simulazione Behavioral Finchè RESET rimane ad 1 le uscite sono tutte a 0, quando RESET va a 0 la rete può iniziare ad elaborare i dati. Al fronte di salita di VALID corrisponde il primo bit significativo. Ogni due bit significativi la rete analizza la coppia di basi azotate codificate attraverso gli ingressi A e B. Al fronte successivo del CLOCK, in base al valore di CTRL, viene segnalata la loro differenza o complementarità incrementando il valore delle uscite OUT_0 e OUT_1. Simulazione Post-Route (1/3) CTRL=0 -> la rete conta le differenze A=0 A=0 B=1 B=1 A=1 A=0 B=1 B=0 differenti A=1 A=1 B=0 B=0 uguali differenti (incrementa) (conserva) (incrementa) Simulazione Post-Route (2/3) CTRL=1 -> la rete conta le complementarità A=1 A=1 B=0 B=0 A=1 B=0 A=0 B=1 A=0 B=1 A=1 B=0 complementari complementari complementari (il valore delle uscite viene sempre incrementato) Simulazione Post-Route (3/3) CTRL=0 -> la rete conta le differenze A=1 A=1 B=1 B=1 A=1 A=0 B=1 B=0 uguali A=0 A=1 B=0 B=1 uguali uguali (il valore delle uscite non viene mai incrementato)