La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale.

Presentazioni simili


Presentazione sul tema: "Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale."— Transcript della presentazione:

1 Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale d’uscita Z può modificare il suo valore solo quando si verifica o un fronte di salita di X1 o un fronte di salita di X2: nel primo caso si deve avere Z=1, nel secondo Z=0. Esame di Reti Logiche - T 1 Obiettivo: eseguire il progetto, senza riduzione degli stati, in schematico Xilinx, corredato da simulazione behavioural e post-route Alberto Geniola

2 Diagramma degli stati Si è scelto di svolgere la risoluzione del problema con il modello di macchina a stati di Mealy. Esame di Reti Logiche - T 2 Alberto Geniola

3 Tabella degli stati Alberto Geniola Esame di Reti Logiche - T 3 Ricaviamo dal precedente diagramma la seguente tabella degli stati. Ogni riga rappresenta le possibili transizioni da uno stato ad un altro al variare degli ingressi. In grassetto sono riportati gli stati stabili per gli ingressi della medesima colonna.

4 Tabella degli stati: considerazioni Sono presenti otto stati, codificabili con tre variabili binarie Per ipotesi due segnali di ingresso non cambiano mai di valore contemporaneamente. Questo ci permette di avere una indifferenza per ogni riga della tabella. In altre parole da uno stato X stabile la rete può spostarsi solamente in altri 3 stati al variare degli ingressi, in quanto una quarta variazione sarebbe «illegale» Per ogni colonna della tabella esistono più stati stabili (due per ogni configurazioni di ingresso). Questo fa presumere che bisognerà imporre uno stato iniziale definito dal quale far partire la rete (mediante l’introduzione di un reset). Alberto Geniola Esame di Reti Logiche - T 4

5 Codifica Alberto Geniola Esame di Reti Logiche - T 5 Analizzate le varie opportunità di codifica, si è scelta la seguente (codice gray a 3 bit), la quale ci ha permesso di avere un numero di corse accettabile e aggirabili senza aumentare il numero di variabili di stato. StatoCodifica A000000,0100,0-,-001,1 B001011,1-,-010,0001,1 C011011,1100,0-,-001,1 D010-,-100,0010,0110,0 E110000,0-,-010,0110,0 F111-,-101,1111,1001,1 G101011,1101,1111,1-,- H100000,0100,0111,1-,-

6 Corse: identificazione Alberto Geniola Esame di Reti Logiche - T 6 Le connessioni di colore rosso indicano i cambi di stati che richiedono il variare di più di un solo bit di stato. Possiamo perciò ora passare all’identificazione e risoluzione delle corse in tabella. Al fine di identificare le possibili corse dovute al cambiamento di più di un bit di stato che dovrebbe avvenire simultaneamente (cosa altamente improbabile in natura), si è costruito il seguente diagramma delle adiacenze.

7 Corse: workaround Alberto Geniola Esame di Reti Logiche - T 7 La politica scelta per aggirare le corse prevede l’utilizzo minimo delle caselle di indifferenza, massimizzando invece la condivisione di caselle di passagio (stati non stabili), al fine di garantire maggiore semplicità nel processo di sintesi. Un esempio potrebero essere le due corse arancione e viola: entrambe i cammini con ingresso 01 condividono il passaggio per lo stato 000, che reindirizza allo stato 100. La seguente tabella riporta le corse corrette in modo da evitare malfunzionamenti della rete. Si è scelto di usare colori diversi per ogni caso identificato (in totale 7). Per arrivare allo stadio 010 con uscita 0, si è preferito passare attraverso 000. Questo stato ha come uscita per 11 una INDIFFERENZA. Per evitare glitch sull’uscita della rete quindi, andremo a modificare la tabella degli stati per Z, forzando lo stato 000 con ingresso 11 ad uscita 0. Ingegneristicamente tale decisione si traducerà in una PORTA and in più sul circuito (+ consumo, + spazio occupato) ma eviterà un’uscita falsata seppur per pochissimo tempo.

8 Tabella finale StatoCodifica A000000,0100,0010,0001,1 B001011,1000,- 0001,1 C011011,1001, ,-001,1 D ,-000,0010,0110,0 E110100, ,-010,0110,0 F ,-101,1111,1011,1 G101001,1101,1111,1-,- H100000,0100,0101,1-,- Alberto Geniola Esame di Reti Logiche - T 8

9 Sintesi dei segnali: Y1 Sintetizziamo ora i vari segnali, a partire da quelli che identificano le variabili di stato e saranno usati in retroazione sulla nostra rete Alberto Geniola Esame di Reti Logiche - T 9 X1X2\Y2Y3X1X2\Y2Y X1X2\Y2Y3X1X2\Y2Y Y1=0Y1=1

10 Sintesi dei segnali: Y2 Alberto Geniola Esame di Reti Logiche - T 10 X1X2\Y2Y3X1X2\Y2Y X1X2\Y2Y3X1X2\Y2Y Y1=0Y1=1

11 Sintesi dei segnali: Y3 Alberto Geniola Esame di Reti Logiche - T 11 X1X2\Y2Y3X1X2\Y2Y X1X2\Y2Y3X1X2\Y2Y Y1=0Y1=1

12 Sintesi dei segnali: Z Alberto Geniola Esame di Reti Logiche - T 12 X1X2\Y2Y3X1X2\Y2Y X1X2\Y2Y3X1X2\Y2Y Y1=0Y1=1 Uscita che avrebbe previsto un glitch su Z passando da 10 a 11 allo stato 000 Uscita che non presenta glitch Per garantire la massima qualità della rete, si sceglierà la seconda opzione, più costosa ma più precisa.

13 Sintesi dei segnali Alberto Geniola Esame di Reti Logiche - T 13 Le funzioni logiche che caratterizzano i segnali di stato e quello d’uscita. Il prossimo step consiste nel generare una rappresentazione schematica di tali risultati e produrre una simulazione di funzionamento.

14 Rappresentazione schematico Alberto Geniola Esame di Reti Logiche - T 14

15 Il banco di prova: test VHDL Alberto Geniola Esame di Reti Logiche - T 15 Al fine di testare il corretto funzionamento della rete, si fa uso di un semplice listato VHDL-Test-Bench per simulare il comportamento della rete in risposta a diversi stimoli di ingresso. Ecco i passaggi che si andranno a sviluppare in VHDL 1.Porre la rete in uno stato noto, grazie al segnale di RESET 2.Impostare i due segnali di ingresso al valore 00 3.Alzare ad 1 il segnale X1 (ci si aspetta fronte positivo di Z) 4.Alzare ad 1 il segnale X2 (ci si aspetta fronte negativo di Z) 5.Abbassare a 0 il segnale X2 (ci si aspetta Z invariato) 6.Abbassare a 0 il segnale X1 (ci si aspetta Z invariato) 7.Alzare a 1 X2 (ci si aspetta Z ancora a 0) 8.Alzare a 1 X1 (ci si aspetta un fronte positivo di Z) Si noti che per ipotesi gli ingressi non cambiano mai simultaneamente, perciò anche nel listato VHDL non inseriremo istruzioni parallele per l’impostazione dei valori di ingresso (compresi aventuali valori iniziali)

16 Banco prova: VHDL 1 LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; LIBRARY UNISIM; USE UNISIM.Vcomponents.ALL; ENTITY schematico_schematico_sch_tb IS END schematico_schematico_sch_tb; ARCHITECTURE behavioral OF schematico_schematico_sch_tb IS COMPONENT schematico PORT( Z:OUTSTD_LOGIC; X1:INSTD_LOGIC; X2:INSTD_LOGIC; A_RES : IN STD_LOGIC); END COMPONENT; SIGNAL Z:STD_LOGIC; SIGNAL X1:STD_LOGIC; SIGNAL X2:STD_LOGIC; SIGNAL A_RES : STD_LOGIC; BEGIN UUT: schematico PORT MAP( Z => Z, X1 => X1, X2 => X2, A_RES => A_RES ); Alberto Geniola Esame di Reti Logiche - T 16

17 Banco prova: VHDL 2 -- *** Test Bench - User Defined Section *** tb : PROCESS BEGIN A_RES<='1'; -- I segnali non cambiano mai contemporaneamente per ipotesi X1<='0'; wait for 100 ns; X2<='0'; A_RES<='0'; wait for 100 ns; X1<='1'; -- Fronte positivo di X1 wait for 100 ns; X2<='1'; -- Fronte positivo di X2 wait for 100 ns; X2<='0'; -- Fronte negativo di X2 wait for 100 ns; X1<='0'; -- Fronte negativo di X1 wait for 100 ns; Alberto Geniola Esame di Reti Logiche - T 17

18 Banco prova: VHDL 3 X2<='1'; -- Fronte positivo di X2 wait for 100 ns; X1<='1'; -- Fronte positivo di X1 WAIT; -- will wait forever END PROCESS; -- *** End Test Bench - User Defined Section *** END; Alberto Geniola Esame di Reti Logiche - T 18

19 Simulazione: behavioural Alberto Geniola Esame di Reti Logiche - T 19 Tutto funziona come previsto: Con reset alto, l’uscita si porta a 0. Una volta configurati i due ingressi a 00, appena X1 diventa alto anche Z si porta ad 1. Dopo 200 ns, al fronte di salita di X2 Z si porta a valore 0. Successivamente vengono abbassati entrami i segnali a 0, e l’uscita rimane stabile. Al fronte positivo di X2 all’istante 600 ns, Z rimane 0, per poi diventare 1 al fronte positivo di X1 (700 ns). Questa simulazione non mostra ritardi nella variazione tra segnale di ingresso e quello di uscita; è perciò un modello ideale.

20 Simulazione: post route Alberto Geniola Esame di Reti Logiche - T 20 Anche in questo caso tutto funziona, ma ovviamente sono presenti dei ritardi. Seppur di lieve entità, notiamo dei ritardi significativi che oscillano tra i 7 ed i 10 ns sul commutare del segnale di uscita. Nonostante tutto si tratta di un ottimo risultato, migliorabile se si prendesse in considerazione una tecnologia più avanzata per i componenti AND, OR e NOT usati di default dal software Xilinx.


Scaricare ppt "Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale."

Presentazioni simili


Annunci Google