Calcolatori Elettronici - Intranet...
Transcript of Calcolatori Elettronici - Intranet...
C.Brandolese, F.Salice Politecnico di Milano
SNAPSNAP™™
Synthesis Netlist and Program Synthesis Netlist and Program SoftwareSoftware
Calcolatori Elettronici
Calcolatori Elettronici 2
SommarioSommario• Introduzione• SNAP: Interfaccia• I tools di SNAP: Panoramica• Progetti• Tools• Progetto gerarchico• La libreria SNAP100.SYM• Le equazioni• Esempi
Calcolatori Elettronici 3
IntroduzioneIntroduzione• SNAP e’ un pacchetto applicativo per la progettazione di circuiti
digitali utilizzando PLD della Philips• SNAP supporta diversi formalismi per la specifica di progetto
• Schematico OrCAD• Netlist in formato EDIF• Equazioni logiche testo• Equazioni di stato testo
• SNAP consente di combinare differenti modalita’ di specifica.
Calcolatori Elettronici 4
IntroduzioneIntroduzione• E’ possibile utilizzare SNAP per le seguenti funzioni:
• Creare, mostrare e modificare gli stimoli per la simulazione• Simulare le funzioni logiche ed il comportamento temporale• Determinare la copertura ai guasti per un dato insieme di ingressi• Generare i vettori di test• Generare la fuse map per un dispositivo PLD target• Estrarre la netlist di una realizzazione PLD per la simularne il
comportamento• Scaricare la fuse map ed i vettori di test sul programmatore di PLD
Calcolatori Elettronici 5
IntroduzioneIntroduzione• La generazione delle specifiche logiche del progetto e’
indipendente dal tipo di PLD.• Il collegamento ad un dato tipo di dispositivi puo’ essere
effettuato dopo la simulazione e la verifica del progetto.• I dispositivi supportati da SNAP sono del tipo:
• Programmable Macro Logic PML• Programmable Logic Sequencer PLS• Programmable Logic Array PLA• Programmable Array Logic PAL (Advanced Micro Device)
Calcolatori Elettronici 6
SNAP: InterfacciaSNAP: Interfaccia
4
7
9
10
12 14
1 3
2 5
6
13
16
minime opzioni richieste per specificare un progetto
8
11
15
Calcolatori Elettronici 7
II tools tools di SNAP di SNAP• Punti 1 e 2: ScCapture, NetGen
• Specifica, anche gerarchica, del progetto utilizzando il generatore dischematico (schematic capture) e successiva conversione in una netlistintermedia (.MAC).
• Punti 3, 4 e 5: Equation, Minimizer, NetConv• Specifica mediante equazioni logiche o di stato, che possono essere
eventualmente minimizzate, e successiva conversione in una netlistintermedia (.MAC).
• Il progetto puo’ essere realizzato combinando schematici edequazioni logiche.
• Parti differenti di progetto possono essere specificateseparatamente.
• Ogni parte del progetto diviene una macro riutilizzabile.
Calcolatori Elettronici 8
II tools tools di SNAP di SNAP• Punto 6: Merger
• Unisce netlist disgiunte dette macro (.MAC) in una singola netlist (.NET).
• Punto 7: SimNet• Converte la netlist principale in un formato binario da utilizzare per la
simulazione (.BIN).
• Punto 8: Waveforms• E’ un editor grafico per la creazione di segnali di ingresso per la
simulazione che vengono convertiti in un formato SCL - Simulation ControlLanguage (.SCL).
Calcolatori Elettronici 9
II tools tools di SNAP di SNAP• Punto 9: SimScl
• Simulatore della funzionalità logica e temporale del progetto facendo usodi segnali di ingresso precedentemente creati. Il risultato è salvato in unfile (.RES).
• Punto 10: Plot• Visualizzatore grafico dei risultati della simulazione.
• Punto 11: SimPrt• Interfaccia per la stampa dei risultati della simulazione (su file, stampate o
schermo).
Calcolatori Elettronici 10
II tools tools di SNAP di SNAP• Punto 12: SimFlt
• Simulatore in presenza di guasti (.FLT).• Riporta la percentuale di guasti che possono essere rilevati per un dato
insieme di configurazioni di segnali di ingresso. I segnali di test possonoessere specificati da un file ASCII o come forme d’onda.
• Punto 13: Compiler• Generatore della fuse map per la realizzazione del dispositivo dopo aver
selezionato il tipo di PLD ed aver specificato il nome dei segnali di I/Oassociati ad ogni piedino del dispositivo.
• Il progetto viene ottimizzato per il dispositivo selezionato, in formatostandard JEDEC (.JED).
• La percentuale di utilizzo viene mostrata a schermo e salvata (.USE).
Calcolatori Elettronici 11
II tools tools di SNAP di SNAP• Punto 14: ModGen
• Genera una netlist simulabile (.MOD) a partire dal tipo di PLD selezionato edalla fuse map.
• Punto 15: TestVector• Converte i vettori di test, costituiti dai segnali di ingresso ed i valori di
uscita corrispondenti, nel formato JEDEC.
• Punto 16: DPI• Scarica verso il programmatore di PLD, attraverso la porta seriale, i vettori
di test e la fuse map.• Il programmatore di una PLD utilizza la fuse map per programmare il
dispositivo ed i vettori di test per verificarlo.
Calcolatori Elettronici 12
ProgettiProgetti• SNAP consente di lavorare su di un progetto solo alla volta.• Un progetto e’ una realizzazione logica completa specificata in
termini di netlist o da un insieme di equazioni logiche e/o di stato• Più file sono associati ad un unico progetto e risiedono tutti in
uno stesso direttorio.• Progetti differenti possono essere combinati gerarchicamente
per dar origine ad un unico progetto utilizzando il Merger.• Tipicamente, un unico direttorio è utilizzato per contenere il
progetto top-level ed tutti i progetti lower-level ad esso correlato.• E’ buona norma tenere progetti non correlati in direttori differenti.
Calcolatori Elettronici 13
ProgettiProgetti• SNAP richiede il sistema operativo MS-DOS.• Posizionarsi nel direttorio relativo al progetto.• Invocare SNAP• Specificare il nome del progetto usando F3.• Utilizzare i tasti cursore per selezionare l’operazione desiderata,
quindi premere <invio> o F2 per invocare l’operazione, oppure<Esc> o F10 per annullare l’operazione.
• Utilizzare <Esc> o F10 per uscire da SNAP.
Calcolatori Elettronici 14
Esempio 1:Esempio 1: Half Adder Half Adder
• Utilizzando F3, definire il nome del progetto HADD1, quinditornare al menu principale.
• Viene creato automaticamente un file HADD1.EQN.• La tabella della verità di un half adder e’ mostrata di seguito:
In1 In2 Carry Sum
0 00 11 01 1
0 00 10 11 0
Calcolatori Elettronici 15
Esempio 1: Editing del file EQNEsempio 1: Editing del file EQN
• Descrizione:• Definizione delle equazioni logiche che descrivono la funzionalità del
dispositivo.
• Operazione: Equations• Formato ingresso: EQN• Formato uscita: EQN
@PINLIST@GROUPS@TRUTHTABLE@LOGIC EQUATIONS@INPUT VECTORS@OUTPUT VECTORS@STATE VECTORS@TRANSITIONS
Calcolatori Elettronici 16
Esempio 1: Editing del file EQNEsempio 1: Editing del file EQN
• @PINLIST: elenco dei segnali di ingresso ed uscita:
• @LOGIC EQUATIONS: elenco delle equazioni logiche:
@PINLIST In1 I; In2 I; Sum O; Carry O;
Le lettere I, O e B indicano rispettivamente ingressi, uscite esegnali bidirezionali.
@LOGIC EQUATIONS Sum = In1 :+: In2; Carry = In1 * In2;
Calcolatori Elettronici 17
ToolsTools:: Minimizzazione Minimizzazione
• Descrizione:• Minimizzazione delle equazioni logiche che descrivono la funzionalita’ del
dispositivo.
• Operazione: Minimizer• HIGH Elevata ottimizzazione• BEST Migliore ottimizzazione• LOW Bassa ottimizzazione
• Formato ingresso: EQN• Formato uscita: EQM• Premendo F8 mantenendo evidenziato Minimizer si attiva
l’editor sul file EQM.• Si noti che il Minimizer agisce solo sulle equazioni.
Calcolatori Elettronici 18
ToolsTools : Conversione in netlist : Conversione in netlist• Descrizione:
• Controlla le equazioni logiche e converte il formato in una netlist.• Si ottiene cosi’ una macro, riutilizzabile più volte in un progetto gerarchico.
• Operazione: NetConv• NORMAL• MINIMIZED
• Formato ingresso: EQN EQM EQJ EQQ• Formato uscita: MAC• In caso si verifichino errori utilizzare il tasto F4 per la
visualizzazione del file ERR contenente informazioni di errore.• Premendo F8 mantenendo evidenziato NetConv si attiva l’editor
sul file MAC.
Calcolatori Elettronici 19
ToolsTools : : Merging Merging di più netlist di più netlist• Descrizione:
• Combina le parti ed i livelli gerarchicamente differenti del progetto ecostruisce una netlist appiattita che non e’ caratterizzata per nessundispositivo specifico.
• Operazione: Merger• Formato ingresso: MAC• Formato uscita: NET• In caso si verifichino errori utilizzare il tasto F4 per la
visualizzazione del file ERR contenente informazioni di errore.• Premendo F8 mantenendo evidenziato Merger si attiva l’editor
sul file NET.• Gli elementi logici presenti nella netlist tipicamente non
coincidono con quelli del dispositivo target per cui il progettodovra’ essere ottimizzato e convertito in una nuova netlist.
Calcolatori Elettronici 20
ToolsTools : Preparazione simulazione : Preparazione simulazione• Descrizione:
• Converte la netlist del progetto in un file binario per la simulazione logicoe/o temporale ed assegna i ritardi di propagazione agli elementi logici delprogetto.
• Operazione: SimNet.• NETLIST Utilizza il file NET• MODEL Utilizza l’uscita prodotta da ModGen
• Formato ingresso: NET• Formato uscita: BIN SCL LESIM.SET• Il file SCL contiene alcuni segnali di ingresso (arbitrari)
modificabili con Waveforms.• Il file LESIM.SET contiene una lista dei parametri per la
simulazione.
Calcolatori Elettronici 21
ToolsTools : Preparazione simulazione : Preparazione simulazione• Descrizione:
• Consente di creare, modificae e salvare i segnali di stimolo da utilizzarecome ingresso ai simulatori logico, temporale e di guasti.
• Le forme d’onda sono modificabili a livello grafico.• Operazione: Waveforms• Formato ingresso: SCL• Formato uscita: SCL
Calcolatori Elettronici 22
ToolsTools : Preparazione simulazione : Preparazione simulazione
• Funzionalita’:• F7 comprime la scala del tempo• F8 espande la scala del tempo• ← , → si muove lungo l’asse del tempo• H, L inserisce un impulso alto (H) o basso (L), della durata di 20ns,
sulla traccia su cui e’ posizionato il cursore.• <Del> cancella• F9 menu: aggiunge una forma d’onda
copia una forma d’ondacancella una forma d’onda
rinomina un segnalevisualizza il periodo di clockspecifica il termine della simulazionesalva
• C la prima pressione ripete indefinitamente la forma d’onda tra iltempo zero ed il tempo corrente. La seconda pressione eliminatutta la forma d’onda ad eccezione del primo periodo.
Calcolatori Elettronici 23
ToolsTools : Simulazione : Simulazione• Descrizione:
• Simulazione logica e temporale del progetto.• Operazione: SimScl• Formato ingresso: BIN SCL• Formato uscita: RES• Funzionalita’:
• F5 durante una simulazione timing, consente di modificare alcuniparametri:Delay CalcualtionOne Time Slot Means
Calcolatori Elettronici 24
ToolsTools : Visualizzazione risultati : Visualizzazione risultati• Descrizione:
• Visualizza i risultati della simulazione logica e temporale.• Operazione: Plot• Formato ingresso: RES• Funzionalita’:
• F7 comprime la scala del tempo• F8 espande la scala del tempo• ← ,→ si muove lungo l’asse del tempo, 4 unita’ alla volta• F7, F8 modificano la scala dei tempi• <Ctrl> si muove lungo l’asse del tempo, 1 unita’ alla volta• F3 sposta l’origine dell’asse dei tempi• F4 annulla lo spostamento dell’asse dei tempi
Calcolatori Elettronici 25
ToolsTools : Stampa risultati : Stampa risultati• Descrizione:
• Stampa dei risultati della simulazione logica e temporale in forma, testualeo grafica.
• Operazione SimPrt• Alphanumeric Formato alfanumerico• Graphical Fromato grafico• Printer Stampante• Disk Disco• Screen Video
• Formato ingresso: RES
Calcolatori Elettronici 26
ToolsTools : Simulazione di guasti : Simulazione di guasti• Descrizione:
• Simula la funzionalita’ del progetto inserendo in esso dei guasti edeterminando quali guasti possono essere rilevati osservando le uscite.
• Lo scopo e’ trovare un vettore di test.• Operazione: SimFlt• Formato ingresso: BIN SCL• Formato uscita: FLT• Funzionalita’
• F5 Consente di modificare i parametri della simulazioneMode of Fault Simulation Exhaustive, DelayDelay Calculation Nominal, Worst, BestPotential Detected Threshold Off, 1, 10, 100, 1000
Calcolatori Elettronici 27
ToolsTools : Generazione fuse map : Generazione fuse map• Descrizione:
• Genera la fuse-map per il dispositivo selezionato dopo aver assegnato isegnali di ingresso e uscita ai piedini del dispositivo.
• Operazione: Compile• DevSelect Selezione di uno dei PLD disponibili• PinSelect Definizione della pinout• FuseMap Generazione della fuse map
• Formato ingresso: NET• Formato uscita: JED USE PIN• Il file JED e’ la fuse map.• Il file USE e’ un sommario dell’utilizzo del dispositivo.• Il file PIN contiene la pinout, ovvero la corrispondenza tra i
segnali ed i pin del dispositivo.
Calcolatori Elettronici 28
ToolsTools : Estrazione netlist : Estrazione netlist• Descrizione:
• Genera una nuova netlist o un nuovo insieme di equazioni logicheestraendole dalla sulla fuse-map ed utilizzando le le informazioni relativealle caratteristiche del dispositivo.
• Operazione: ModGen• Model Estrae una netlist dalla realizzazione sul dispostivo
selezionato (inclusi i buffer di I/O ed altri dispositivi).Genera un nuovo file BIN caratterizzato in tempo esovrascrive il vecchio file BIN.
• Equations: Estrae un nuovo insieme di equazioni dalla realizzazionesul dispostivo selezionato.
• Formato ingresso: JED UPD• Formato uscita: MOD opzione Model
EQJ opzione Equations
Calcolatori Elettronici 29
ToolsTools : Generazione vettori di test : Generazione vettori di test• Descrizione:
• Genera un nuovo file in formato JED che contiene i vettori di test per ildispositivo programmato.
• Operazione: TestVector• PLOT2VEC Converte i file PIN, MOD e RES in un file VEC.• GENERATOR Genera un .VEC.
• Formato ingresso: PIN MOD RES opzione Plot2Vecnessuno opzione Generator
• Formato uscita: VEC
Calcolatori Elettronici 30
ToolsTools : : Dowloading Dowloading• Descrizione:
• Scarica, sulla macchina per la programmazione dei dispositivi, facendouso della porta seriale, i file relativi al fuse map ed ai vettori di test.
• Operazione: DPI• Formato ingresso: JED VEC• Formato uscita: JWV
Calcolatori Elettronici 31
Progetto GerarchicoProgetto Gerarchico• E’ possibile realizzare un progetto gerarchico utilizzando OrCad.• OrCad consente di definire tutti i moduli presenti nella gerarchia.• Si procede bottom-up ovvero dal livello gerarchico più basso al
più alto.• Le operazioni da compiere sono:
• SNAP Si cambia il nome del progetto• SNAP Si invoca OrCad utilizzando ScCapture• OrCad Si definisce un dispositivo• SNAP Si genera la macro con NetGen
• Raggiunto il livello gerarchico piu’ alto, tutti i moduli vengonoassemblati utilizzando il Merger di SNAP.
Calcolatori Elettronici 32
Progetto GerarchicoProgetto Gerarchico• I comandi di OrCad per definire un modulo sono mostrati dalla
figura seguente:
delimita lo spazio della cella
definisce la piedinatura
definisce il nome del modulo
Place
Wire
Module Port
Junction
Sheet
Begin
End
Add Net
Name
delimita lo spazio della cella
connessioni
ingressi e uscite
contatti
Calcolatori Elettronici 33
Progetto GerarchicoProgetto Gerarchico• I comandi per utilizzare moduli di libreria sono mostrati nella
figura seguente:Get
Which library
Place
SNAP100.SYM
TTL.LIB
USER.LIB
...
posizionamento
Edit
Edit
...
Reference
Which Device
identifica il modulo
identifica il componente
Calcolatori Elettronici 34
Progetto GerarchicoProgetto Gerarchico• Le librerie standard sono utilizzabili senza alcun intervento
dell’utente.• E’ possibile costruire delle librerie personalizzate.• Le librerie sono file di testo che descrivono, secondo un
formalismo ben definito, i vari moduli che le compongono.• Le librerie vengono salvate in formato MLA• I file MLA generati dall’utente possono essere trasformati in
librerie utilizzabili compilandole con il comando LIB_COMP.EXEeseguibile da DOS.
• Le librerie compilate possono essere riconvertite in file leggibili emodificabili con il comando LIB_DCOMP.EXE eseguibile da DOS
Calcolatori Elettronici 35
Progetto GerarchicoProgetto Gerarchico• Il procedimento per sviluppare un progetto gerarchico
nell’ambiente SNAP è descritto di seguito.• I moduli presenti nella gerarchia si definiscono utilizzando il
meccanismo delle macro.• Partendo dal livello gerarchico più basso (non necessariamente)
e procedendo verso il livello più alto:• Si cambia il nome del progetto.• Si definisce con il tool MacSel il dispositivo.• Con il tasto F8 si modifica la struttura della cella facendo eventualmente
riferimento ad altre macro, definite in precedenza.• Raggiunto il livello gerarchico più alto, si combinano i vari moduli con il toolMerger.
Calcolatori Elettronici 36
Esempio 2:Esempio 2: Ripple Carry Adder Ripple Carry Adder• Si consideri ad esempio la realizzazione di un Full Adder Ripple
Carry a 4 bit.• La sua struttura e la sua descrizione sono:
CIN A1 B1 A2 B2 A3 B3 A4 B4
S1 S2 S3 S4 COUT
FA FA FA FA
MACROZ A4RC I(A3,A2,A1,A0,B3,B2,B1,B0, CIN) O(S3,S2,S1,S0,COUT)U1 FA (A0,B0,CIN) O(S0,COUT0)U2 FA (A1,B1,CIN0) O(S1,COUT1)U3 FA (A2,B2,CIN1) O(S2,COUT2)U4 FA (A3,B4,CIN2) O(S3,COUT) MEND
Calcolatori Elettronici 37
Esempio 2:Esempio 2: Ripple Carry Adder Ripple Carry Adder• Lo schema di un Full Adder e la sua descrizione sono:
MACROZ FA I(A,B,CIN) O(S,COUT)U1 HA I(A,B) O(TS,C1)U2 HA I(TS,CIN) O(S,C2)U3 OR2 I(C1,C2) O(COUT) MEND
A B CIN
COUT S
HA
HA
Calcolatori Elettronici 38
Esempio 2:Esempio 2: Ripple Carry Adder Ripple Carry Adder• Lo schema di un Half Adder e la sua descrizione sono:
MACROZ HA I(A,B) O(S,C)U1 INV I(A) O(NA)U2 INV I(B) O(NB)U3 AN2 I(A,NB) O(T1)U4 AN2 I(B,NA) O(T2)U5 OR2 I(T1,T2) O(S)U6 AN2 I(A,B) O(C) MEND
S
BA
COUT
Calcolatori Elettronici 39
Progetto GerarchicoProgetto Gerarchico• Un meccanismo alternativo per sviluppare progetti gerarchici
prevede:• Utilizzo di macro per i livelli alti della gerarchia• Definizione di equazioni per il livello più basso
• La procedura è la seguente:• Si definiscono i livelli alti della gerarchia secondo il metodo mostrato
nell’esempio precedente.• Si definiscono le equazioni dei moduli dell’ultimo livello gerarchico. Tali
moduli possono essere sia combinatori che sequenziali.• Si convertono i moduli cosi’ definiti in macro con il tool NetConv.• Raggiunto il livello gerarchico piu’ alto, si combinano i vari moduli con il
tool Merger.
Calcolatori Elettronici 40
Esempio 3:Esempio 3: Ripple Carry Adder Ripple Carry Adder• Le descrizioni dei vari livelli del Ripple Carry Adder divengono:
MACROZ A4RC I(A3,A2,A1,A0,B3,B2,B1,B0, CIN) O(S3,S2,S1,S0,COUT)U1 FA (A0,B0,CIN) O(S0,COUT0)U2 FA (A1,B1,CIN0) O(S1,COUT1)U3 FA (A2,B2,CIN1) O(S2,COUT2)U4 FA (A3,B4,CIN2) O(S3,COUT) MEND
MACROZ FA I(A,B,CIN) O(S,COUT)U1 HA I(A,B) O(TS,C1)U2 HA I(TS,CIN) O(S,C2)U3 OR2 I(C1,C2) O(COUT) MEND
@PINLIST A I; B I; S O; C O;@LOGIC EQUATIONS S = A :+: B; C = A * B;
Livello 2
Livello 1
Livello 0
Calcolatori Elettronici 41
Progetto GerarchicoProgetto Gerarchico• Tutti i meccanismi riportati in precedenza possono essere
combinati per formare un progetto gerarchico.• Le possibilità sono riassunte dallo schema seguente:
• Livello 0:• Schematico OrCad utilizzando i componenti di libreria• Macro SNAP• Equazioni
• Altri livelli:• Schematico OrCad utilizzando i componenti di libreria• Macro SNAP
Calcolatori Elettronici 42
La libreria SNAP100.SYMLa libreria SNAP100.SYM• Porte logiche:
• NA = Nand (NA2, NA3, …, NA11, NA16)• AN = And (AN2, AN3, …, AN11, AN16)• OR = Or (OR2, OR3, …, OR11, OR16)• NO = Nor (NO2, NO3, …, NO11, NO16)• INV = Not (INV)• EX = Xor (EX2)
• Celle di ingresso/uscita:• IN = ingresso diretto• NIN = ingresso complementato• OUT = uscita diretta• NOUT = uscita complementata• TOUT = uscita in tri-state diretta• TNOUT = uscita in tri-state complementata
Calcolatori Elettronici 43
La libreria SNAP100.SYMLa libreria SNAP100.SYM• Elementi sequenziali:
• LAD = Latch D• DFFR = Flip-flop D con reset• DFFS = Flip-flop D con set• DFFSR = Flip-flop D con set e reset
• Soft Macros:
Calcolatori Elettronici 44
Le equazioniLe equazioni• Il formato Equations di SNAP permette di descrivere equazioni
logiche e di stato• Le equazioni vengono salvate in file EQN• I file EQN sono organizzati secondo sezioni introdotte da parole
chiave precedute dal simbolo “@”:
@PINLIST@GROUPS@TRUTHTABLE@LOGIC EQUATIONS@INPUT VECTORS@OUTPUT VECTORS@STATE VECTORS@TRANSITIONS
Calcolatori Elettronici 45
Le equazioniLe equazioni• Regole sintattiche:
• Le quazioni terminano con un “;”• Ogni riga non deve superare i 128 caratteri• Spazi extra e linee vuote sono ignorati• Maiuscole e minuscole non vengono distinte• Gli identificatori devono iniziare con una lettera e possono contenere
caratteri alfanumerici e undescore• I commenti possono essere inseriti dovunque ed iniziano e terminano con
un “;”
Calcolatori Elettronici 46
Le equazioni: Le equazioni: @PINLIST@PINLIST
• Descrive la lista dei segnali di ingresso, uscita e bidirezionali.• Ingressi: <segnale> I• Uscite: <segnale> O• Segnali bidirezionali: <segnale> B
• Esempio:
@PINLIST a I; b I; Sum O; Carry O;
Calcolatori Elettronici 47
Le equazioni: Le equazioni: @GROUPS@GROUPS
• Definisce i nomi che devono essere gestiti come gruppi disegnali
• La notazione per la descrizione di BUS e’ la seguente:• <nome>[0..<N>] equivale a <nome0>, <nome1>, … , <nomeN>• Questa notazione puo’ essere utilizzata dovunque nel progetto, non
richiede una esplicita diciharazione e segue le stesse regole utilizzate perla definizione delle equazioni logiche.
• Ogni elemento del BUS può essere usato separatamente
• Esempio:
dataQ[0..7].rst = RESET;dataQ[4..7] = DATA[0..3];dataQ0 = InputData;
Calcolatori Elettronici 48
Le equazioni: Le equazioni: @GROUPS@GROUPS
• In molti casi e’ conveniente raggruppare segnali con funzionisimili ma con nomi differenti in un unico elemento.
• A differenza dei BUS, i gruppi di segnali devono essere dichiaratiin questa sezione
• Esempio:
@GROUPS G1 = [A,B,C,D]; gruppo di segnali G2 = E[0..3]; gruppo definito come bus G3 = [0,1,0]; gruppo definito con costanti G4 = [F,G,1,0]; gruppo definito con costanti e segnali G5 = [F,G,E[0..3]]; gruppo definito con segnali e BUS G6 = [G1, G2]; gruppo definito con gruppi
Calcolatori Elettronici 49
Le equazioni: Le equazioni: @GROUPS@GROUPS
• Ad un gruppo può essere assegnato un valore.• I valori possono essere in forma binaria (B) o esadecimale(H)• Esempio:
@GROUPS G1 = [A, B, C, D]: ... G1 = 6H; corrisponde a A=0, B=1, C=1, D=0; G1 = 1100B; corrisponde a A=1, B=1, C=0, D=0;
• Sui BUS e sui GRUPPI si possono effettuare operazioni piu’complesse delle semplici operazioni logiche
Calcolatori Elettronici 50
Le equazioni: Le equazioni: @GROUPS@GROUPS
• La tabella seguente riassume le operazioni sui BUS e GRUPPI
Operatore Descrizione Risultato Esempio= Assegnamento GRUPPO G1 = G2/ Complemento a 1 GRUPPO / G2* AND GRUPPO G1 * G2+ OR GRUPPO G1 + G2
Logiche
:+: XOR GRUPPO G1:+: G2== Uguale SEGNALE G1 == G2
>, <, >=, <= Maggiore, minore… SEGNALE G1 >= G2Relazionali!= Diverso SEGNALE G1!= G2- Complemento a 2 GRUPPO - G2- Sottrazione GRUPPO G1 – G2Aritmetiche# Addizione GRUPPO G1 # G2
Calcolatori Elettronici 51
Le equazioni: Le equazioni: @GROUPS@GROUPS
• In una operazione è possibile usare GRUPPI e SEGNALI:
A[1..3] = D[0..2] * In + B[7..9];
A1 = D0 * In + B7;A2 = D1 * In + B8;A3 = D2 * In + B9;
@LOGIC EQUATIONS MuxOut = a[0..3] * /select + b[0..3] * select; MusOut = a[0..3] * select==0 + b[0..3] * select==1;
equivale a:
• Esempio
Calcolatori Elettronici 52
Esempio 4: BCD - 7 segmentiEsempio 4: BCD - 7 segmenti• Encoder BCD per un display a sette segmenti
@GROUPS In = [x,y,z,w]; Seg = [a,b,c,d,e,f,g];@LOGIC EQUATIONS Seg = In==[0,0,0,0] * [1,1,1,1,1,1,0] + In==[0,0,0,1] * [0,1,1,0,0,0,0] + In==[0,0,1,0] * [1,1,0,1,1,0,1] + In==[0,0,1,1] * [1,0,0,1,1,1,1] + In==[0,1,0,0] * [0,1,1,0,0,1,1] + In==[0,1,0,1] * [1,0,1,1,0,1,1] + In==[0,1,1,0] * [0,0,1,1,1,1,1] + In==[0,1,1,1] * [1,1,1,0,0,0,0] + In==[1,0,0,0] * [1,1,1,1,1,1,1] + In==[1,0,0,1] * [1,1,1,0,0,1,1];
a
g
de c
bf
Calcolatori Elettronici 53
Le equazioni: Le equazioni: @TRUTHTABLE@TRUTHTABLE
• Specifica una tabella della verità• I valori consentiti sono:
• Segnali di ingresso: 1, 0, X (don’t care)• Segnali d’uscita: 0, 1, Z (alta impedenza)
• Esempio:
@TRUTHTABLE [a,b,c,d : A,B,C] 000X : ZZ1; 10XX : 100; 1100 : 101;
• I segnali in alta impedenza devono avere un segnale diabilitazione definito.
Calcolatori Elettronici 54
Le equazioni: Le equazioni: @LOGIC EQUATIONS@LOGIC EQUATIONS
• Definisce l’insieme delle equazioni logiche multi livello chedescrivono la funzionalità del dispositivo
• La forma generale di una equazione logica e’:
<segnale> = <espressione>
• Gli operatori disponibili sono
Operatore Descrizione Esempio/ Complemento a 1 / S2* AND S1 * S2+ OR S1 + S2
:+: XOR S1:+: S2
Calcolatori Elettronici 55
Le equazioni: Le equazioni: @LOGIC EQUATIONS@LOGIC EQUATIONS
• Gli elementi logici sequenziali disponibili sono:è consentito l’usodei seguenti elementi logici:• Flip-flop D• Flip-flop J-K• Flip-flop S-R• Buffer three-state
• Per utilizzare gli elementi sequenziali si aggiunge al nume delsegnale un opportuno suffisso:
<segnale>.<suffisso> = <espressione>
• Non esistono suffissi che indicano le uscite
Calcolatori Elettronici 56
Le equazioni: Le equazioni: @LOGIC EQUATIONS@LOGIC EQUATIONS
• La tabella che segue riassume i suffissi disponibili.
Suffisso Dispositivo Descrizione Attivo.D Flip-Flop D Ingresso D -.J Flip-Flop JK Ingresso J -.K Flip-Flop JK Ingresso K -.R Flip-Flop SR Ingresso R -.S Flip-Flop SR Ingresso S -.SET Flip-Flop generico Preset Basso.RST Flip-Flop generico Reset Basso.CLK Flip-Flop generico Clock -.OE Buffer three-state Output enable Alto.LD Latch Load -
Calcolatori Elettronici 57
Le equazioni: Le equazioni: @LOGIC EQUATIONS@LOGIC EQUATIONS
• La massa e l’alimentazione hanno i nomi predefiniti:• Vcc Massa 0 logico• GND Alimentazione 1 logico
• Il clock è per default collegato al clock globale.• Esempio:
@LOGIC EQUATIONS Q0.D = A * B; Q0.CLK = MCLK; Q0.RST = C; Q0.SET = D * E;
AB
DE
MCLK
C
Q0D Qpreset
clear
Calcolatori Elettronici 58
Le equazioni: Le equazioni: @LOGIC EQUATIONS@LOGIC EQUATIONS
• Nel caso di macchine a stati questa sezione viene utilizzata perspecificare i segnali di controllo ai flip-flop.
• Esempio:
@LOGIC EQUATIONS Q0.CLK=CLOCKA; Q1.CLK=CLOCKA; QO.RST=RESET; Q1.RST=RESET;
• I segnali di SET e RESET sono attivi bassi.• Per le macchine a stati, quando RESET e’ basso lo stato viene
forzato allo stato iniziale S0.
Calcolatori Elettronici 59
Le equazioni: Le equazioni: @INPUT VECTORS@INPUT VECTORS
• Definisce i vettori di ingresso.• Un vettore di ingresso è l’insieme dei valori (simboli) di ingresso
al dispositivo.• Esempi:
@INPUT VECTOR IN1 = A3*/A2*A1*A0; IN2 = /A3*/A2*/A1*/A0; IN3 = A3*A2*/A1*A0;
@INPUT VECTOR [A3,A2,A1,A0] IN1 = 1011 B; IN2 = 0000 B;
• I vettori di ingresso vengono usati per associare un nomesimbolico ai simboli di ingresso.
Calcolatori Elettronici 60
Le equazioni: Le equazioni: @OUTPUT VECTORS@OUTPUT VECTORS
• Definisce i vettori di uscita associati agli stati logici del sistema.• Un vettore di uscita è l’insieme dei valori di uscita del dispositivo
corrispondenti ad una condizione d’uscita.• Una condizione d’uscita è associata:
• Ad uno stato (Macchine di Moore).• Ad una combinazione ingresso-stato (Macchine di Mealy).
• Esempi:
@OUTPUT VECTOR OUT1 = O2*O1*O0; OUT2 = O2*/O1*/O0; OUT3 = /O2*O1*/O0;
@OUTPUT VECTOR [O2,O1,O0] OUT1=111B; OUT2=100B;
Calcolatori Elettronici 61
Le equazioni: Le equazioni: @OUTPUT VECTORS@OUTPUT VECTORS
• E’ possibile campionare le uscite con un tipo specifico di flip-flop.• Esempio:
• Il modo in cui sono realizzati i flip-flop dipende dalla lorodisponibilità nel dispositivo.
• Se assenti, vengono realizzati mediante porte NAND oppurefacendo uso di altri tipi (DFF).
@OUTPUT VECTOR [O1, O2, O3] SRFF OUT1=101 B; OUT2=110 B;
Calcolatori Elettronici
Le equazioni: Le equazioni: @STATE VECTORS@STATE VECTORS
• Specifica i vettori di stato.• I vettori di stato sono funzioni delle uscite dei flip-flop.• E’ possibile specificare il tipo di flip-flop che si desidera utilizzare
specificandolo dopo la dichiarazione del vettore di stato.• Esempi:
@STATE VECTOR ST1 = Y3*/Y2*Y1; ST2 = /Y3*/Y2*/Y1; ST3 = /Y3*Y2*/Y1;
@STATE VECTOR [Y3,Y2,Y1] SRFF ST1=101 B; ST2=000 B;
Calcolatori Elettronici
Le equazioni: Le equazioni: @TRANSITIONS@TRANSITIONS
• Specifica le cause ed gli effetti delle transizioni di stato.
• Si possono utilizzare i due costrutti equivalenti:• while-if-then-else• while-case-endcase
• Ogni istruzione specifica, per ogni stato:• Le transizioni mediante l’elenco dei possibili stati raggiungibili.• Le condizioni di ingresso che causano le transizioni.• Lo stato prossimo.• Le uscite (associate allo stato o alla transizione).
• SNAP consente di realizzare 4 differenti architetture.
Calcolatori Elettronici 64
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Moore con registri sulle uscite
• Le uscite provengono dai flip-flop e sono coincidono con le configurazionidi stato.
• Macchina di Moore senza registri sulle uscite• Le uscite provengono dalla rete combinatoria funzione del solo stato.
• Macchina di Mealy con registri sulle uscite• Le uscite primarie sono quelle della rete combinatoria funzione dello stato
e degli ingressi, campionate.
• Macchina di Mealy senza registri sulle uscite• Le uscite primarie sono quelle della rete combinatoria funzione dello stato
e degli ingressi, campionate
Calcolatori Elettronici 65
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Nella descrizione dei costrutti per la specifica di macchine a stati
finiti, si farà uso dei seguenti termini:• stato presente, stato prossimo
• Uno degli stati definiti nella sezione @STATE VECTORS
• ingresso• Un vettore di ingresso definito nella sezione @INPUT VECTORS• Un segnale di ingresso definito nella @PINLIST• Un segnale interno presente nella sezione @LOGIC EQUATION• Una espressione logica dei precedenti
• uscita• Una delle uscite definite nella sezione @OUTPUT VECTORS
Calcolatori Elettronici 66
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Moore con registri sulle uscite
WHILE [stato presente] IF [ingresso] THEN [stato prossimo] IF [ingresso] THEN [stato prossimo] ... ELSE [stato prossimo]
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Calcolatori Elettronici 67
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Moore con registri sulle uscite
WHILE [stato presente]CASE [ingresso] :: [stato prossimo] [ingresso] :: [stato prossimo] ... ELSE [stato prossimo]ENDCASE
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Calcolatori Elettronici 68
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Moore senza registri sulle uscite
WHILE [stato presente] WITH [uscita] IF [ingresso] THEN [stato prossimo] IF [ingresso] THEN [stato prossimo] ... ELSE [stato prossimo]
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Funzione diuscita
Calcolatori Elettronici 69
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Moore senza registri sulle uscite
WHILE [stato presente] WITH [uscita]CASE [ingresso] :: [stato prossimo] [ingresso] :: [stato prossimo] ... ELSE [stato prossimo]ENDCASE
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Funzione diuscita
Calcolatori Elettronici 70
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Melay con registri sulle uscite
WHILE [stato presente] IF [ingresso] THEN [stato prossimo] WITH [uscita] IF [ingresso] THEN [stato prossimo] WITH [uscita] ... ELSE [stato prossimo] WITH [uscita]
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Funzione diuscita
Registri diuscita
Calcolatori Elettronici 71
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Melay con registri sulle uscite
WHILE [stato presente]CASE [ingresso] :: [stato prossimo] WITH [uscita] [ingresso] :: [stato prossimo] WITH [uscita] ... ELSE [stato prossimo] WITH [uscita]ENDCASE
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Funzione diuscita
Registri diuscita
Calcolatori Elettronici 72
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Melay generale (senza registri sulle uscite)
WHILE [stato presente] IF [ingresso] WITH [uscita] THEN [stato prossimo] IF [ingresso] WITH [uscita] THEN [stato prossimo] ... ELSE [stato prossimo] WITH [uscita]
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Funzione diuscita
Calcolatori Elettronici 73
Le equazioni: Macchine a statiLe equazioni: Macchine a stati• Macchina di Melay generale (senza registri sulle uscite)
WHILE [stato presente]CASE [ingresso] WITH [uscita] :: [stato prossimo] [ingresso] WITH [uscita] :: [stato prossimo] ... ELSE [stato prossimo] WITH [uscita]ENDCASE
Funzione di statoprossimo
Registri distato
ingressiuscite
clock
Funzione diuscita
Calcolatori Elettronici 74
Esempio 5: Macchina di Esempio 5: Macchina di MooreMoore• Diagramma degli stati e codifica
RESET RESET
RESET
00
0
0
1
1
1
1
S0 S1
S2S3
S0 00S1 01S2 10S3 11
Stato Codifica
Calcolatori Elettronici 75
Esempio 5: Macchina diEsempio 5: Macchina di Moore Moore• La specifica in SNAP e’ la seguente:
@PINLISTseriale I;uscita[1..2] O;
CLK I;RESET I;
@LOGIC EQUATIONSFF0.rst = RESET;FF1.rst = RESET;
(continua)
Ingressi del circuito. In base a questi ingressi vengono costruiti gli input vectors.
Clock e segnale di reset. Il segnale di reset deve esserespecificato esplicitamente nel file di stimoli.
Condizioni di reset. I segnali FF0 ed FF1 sono i segnaliche rappresentano lo stato.
Calcolatori Elettronici 76
Esempio 5: Macchina diEsempio 5: Macchina di Moore Moore
@INPUT VECTORS[seriale]zero = 0 B;uno = 1 B;
@OUTPUT VECTORS[uscita1, uscita2]init = 00 B;run = 10 B;ok = 11 B;
@STATE VECTORS[FF1,FF0]s0 = 00 B;s1 = 01 B;s2 = 10 B;s3 = 11 B;
(continua)
Ai valori logici 0 ed 1 vengono assegnati i nomi simbolici‘zero’ ed ‘uno’, rispettivamente.
Ai valori logici 00, 01 ed 11 vengono assegnati i nomi simbolici ‘init’, ‘run’ e ‘ok’, rispettivamente. Questi nomisaranno usati per la generazione delle uscite.
Agli stati viene assegnato un nome simbolico (s0, … , s3)ed una codifica binaria. Questi nomi saranno usati perla generazione della funzione di stato prossimo.
Calcolatori Elettronici 77
Esempio 5: Macchina diEsempio 5: Macchina di Moore Moore
@TRANSITIONSWHILE[s0] WITH [init] IF[zero] THEN [s0] IF[uno] THEN [s1]
WHILE[s1] WITH [run] IF[zero] THEN [s1] IF[uno] THEN [s2]
WHILE[s2] WITH [run] IF[zero] THEN [s3] IF[uno] THEN [s2]
WHILE[s3] WITH [ok] IF[zero] THEN [s3] IF[uno] THEN [s0]
Per ogni stato ed in base alle condizioni di ingresso e diuscita, viene assegnato lo stato prossimo.La prima linea indica lo stato presente ‘s0’ ed il valore dell’uscita ‘init’.La seconda indica che lo stato prossimo, quando l’ingresso vale ‘zero’, e’ ‘s0’.La terza indica che lo stato prossimo, quando l’ingressovale ‘uno’, e’ ‘s1’.
Calcolatori Elettronici 78
Esempio 5: Macchina diEsempio 5: Macchina di Moore Moore• File degli stimoli
Aggiunto a mano.E’ attivo basso.
Clock di sistema.
Calcolatori Elettronici 79
Esempio 5: Macchina diEsempio 5: Macchina di Moore Moore• Risultato della simulazione
Stato ed uscite.
Calcolatori Elettronici 80
Esempio 5: Macchina diEsempio 5: Macchina di Moore Moore• Compilazione (fasi 1 e 2):
• Il circuito contiene dei FF che, per default, sono di tipo JK con reset.• Il dispositivo da utilizzare e’ il PLC42VA12
Calcolatori Elettronici 81
Esempio 5: Macchina diEsempio 5: Macchina di Moore Moore• Compilazione (fase 3)
• Resource Summary
Sono stati usati due flip-flop JK con reset.
Calcolatori Elettronici 82
Esempio 6: Macchina di Esempio 6: Macchina di MelayMelay• Descrizione funzionale:
• Da tastiera si introduce una sequenza numerica• La sequenza di attivazione e’ 091827• Sono presenti due tasti uno di conferma ed uno di reset
• La pressione del tasto di reset porta nello stato iniziale.• La pressione simultanea di un numero compreso tra 0 e 9 e del tasto di
conferma può modificare lo stato.• Se il valore introdotto non appartiene alla sequenza si torna allo stato
iniziale.• Le uscite sono 6 ed assumono le seguenti configurazioni:
Valore Significato Valore Significato000000 inattivo 111111 ok000001 attivo1 000010 attivo2000100 attivo3 001000 attivo4010000 attivo5 100000 attivo6
Calcolatori Elettronici 83
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay• Rappresentazione schematica:
Priority Encoder(BCD)
tastiera[9..0]Riconoscitore 091827
Mealy con latch
Output Decoder
tastiera10
tastiera11
Enter
Reset
OUT[5..0]
BCD[2..0]
Calcolatori Elettronici 84
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay• Diagramma degli stati del riconoscitore:
S0 S1
/Enter - 000 Zero * Enter - 001
S2
Nove * Enter - 010
/Enter - 001
/Enter - 011S3
Uno * Enter - 011
S4S5
S7
S6
Otto * Enter - 100Sette * Enter - 110
Due * Enter - 101
Per ogni ingresso - 111
/Enter - 100/Enter - 101
/Enter - 110
Per ogni ingresso - 111 /Enter - 010
Reset - 000In tutti gli altri casi
Calcolatori Elettronici 85
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay• La specifica in SNAP è la seguente:
@PINLISTTastiera[9..0] I;Tastiera10 I;Tastiera11 I;
OUT[5..0] O;
CLK I;
(continua)
Ingressi primari. La tastiera genera sequenze di bit dacodificare secondo uno schema a priorità.
Uscite primarie
Clock di sistema
Calcolatori Elettronici 86
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay
@TRUTHTABLE[Tastiera[9..0]:BCD[3..0]]1XXXXXXXXX:1001;01XXXXXXXX:1000;001XXXXXXX:0111;0001XXXXXX:0110;00001XXXXX:0101;000001XXXX:0100;0000001XXX:0011;00000001XX:0010;000000001X:0001;0000000001:0000;0000000000:1111;
(continua)
Tabella della verità per la generazione del codice BCDrelativo agli ingressi da tastiera. Il codice 1111, che nonè significativo in BCD, è riservato al tasto Enter.
Calcolatori Elettronici 87
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay
[uscita[2..0]:OUT[5..0]]000:000000;001:000001;010:000010;011:000100;100:001000;101:010000;110:100000;111:111111;
@LOGIC EQUATIONSd0.rst = /Tastiera11;d1.rst = /Tastiera11;d2.rst = /Tastiera11;
uscita0.rst = /Tastiera11;uscita1.rst = /Tastiera11;uscita2.rst = /Tastiera11;
(continua)
Tabella della verità per la generazione delle uscite primarie a partire dallo stato della macchina di Melay.
Reset dei registri di stato della machina a stati. Il segnale di reset à attivo basso e quindi va negato.
Reset dei registri di uscita della macchina a stati.
Calcolatori Elettronici 88
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay
@INPUT VECTORS[BCD[3..0]]zero = 0000B;uno = 0001B;due = 0010B;tre = 0011B;quattro = 0100B;cinque = 0101B;sei = 0110B;sette = 0111B;otto = 1000B;nove = 1001B;
(continua)
Vettore di ingresso della macchina a stati.
Calcolatori Elettronici 89
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay
@OUTPUT VECTORS[uscita[2..0]]disattivo = 000B;attivo1 = 001B;attivo2 = 010B;attivo3 = 011B;attivo4 = 100B;attivo5 = 101B;attivo6 = 110B;OK = 111B;
(continua)
Vettore di uscita della macchina a stati.
Calcolatori Elettronici 90
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay
@STATE VECTORS[d2,d1,d0]s0 = 000B;s1 = 001B;s2 = 010B;s3 = 011B;s4 = 100B;s5 = 101B;s6 = 110B;s7 = 111B;
(continua)
Vettore di stato della macchina a stati. I segnali d2, d1 e d0 sono i flip-flop.
Calcolatori Elettronici 91
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay
@TRANSITIONSWHILE[s0] IF [zero*Tastiera10] THEN [s1] WITH [attivo1] ELSE [s0]WHILE[s1] IF [nove*Tastiera10] THEN [s2] WITH [attivo2] IF [/Tastiera10] THEN [s1] WITH [attivo1] ELSE [s0]WHILE[s2] IF [uno*Tastiera10] THEN [s3] WITH [attivo3] IF [/Tastiera10] THEN [s2] WITH [attivo2] ELSE [s0]WHILE[s3] IF [otto*Tastiera10] THEN [s4] WITH [attivo4] IF [/Tastiera10] THEN [s3] WITH [attivo3] ELSE [s0]
(continua)
Pressionecontemporaneadei tasti ‘Enter’ e‘Zero’.
Calcolatori Elettronici 92
Per ogni ingresso
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay
WHILE[s4] IF [due*Tastiera10] THEN [s5] WITH [attivo5] IF [/Tastiera10] THEN [s4] WITH [attivo4] ELSE [s0]WHILE[s5] IF [sette*Tastiera10] THEN [s6] WITH [attivo6] IF [/Tastiera10] THEN [s5] WITH [attivo5] ELSE [s0]WHILE[s6] IF [] THEN [s6] WITH [OK]
Calcolatori Elettronici 93
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay• File per la simulazione (.SCL)P TASTIERA11, TASTIERA10, TASTIERA9, TASTIERA8, TASTIERA7, TASTIERA6,# TASTIERA5, TASTIERA4, TASTIERA3, TASTIERA2, TASTIERA1, TASTIERA0,# CLK, VCC, OUT[5..0] PCO S 1 (220, 1920, 2020, 10000580, ETC) TASTIERA11 S 0 (340, 2200, 2460, 10000980, ETC) TASTIERA10 S 0 (660, 820, 10000160, ETC) TASTIERA9 S 0 (1060, 1200, 10000140, ETC) TASTIERA8 S 0 (1460, 1560, 10000100, ETC) TASTIERA7 S 0 (10000000, ETC) TASTIERA6 S 0 (10000000, ETC) TASTIERA5 S 0 (10000000, ETC) TASTIERA4 S 0 (10000000, ETC) TASTIERA3 S 0 (1260, 1360, 10000100, ETC) TASTIERA2 S 0 (880, 1040, 2660, 3880, 5080, 6280) TASTIERA1 S 0 (460, 640, 2240, 2600) TASTIERA0 S 0 (100, 200, ETC) CLK S 1 (7200) VCC SU time = 7200 F
Indica che i segnali da OUT5ad OUT0 devono esserevisualizzati sotto forma di bus.
Calcolatori Elettronici 94
Esempio 6: Macchina diEsempio 6: Macchina di Melay Melay• Risultato della simulazione:
Rappresentazione esadecimale delbus OUT[5..0]
Calcolatori Elettronici 95
Esempio 7: Macchine interagentiEsempio 7: Macchine interagenti• Macchine a stati interagenti
T0 T1
T2
Attivo / due
RESET
Inattivo / zeroAttivo / zero
Inattivo / zero
Attivo /uno
Inattivo /uno
RESET
seriale RESET
control
count[0..1]
S0/0 S1/0
S3/1 S2/0
Per ogni ingresso
RESET
seriale /seriale seriale
/seriale
/seriale
RESET + /seriale
Codifica Nome simbolico 0 Inattivo 1 Attivo FSM 1
FSM 2
Calcolatori Elettronici 96
Esempio 7: Macchine interagentiEsempio 7: Macchine interagenti• Specifica in SNAP@PINLISTseriale I;count[0..1] O;
CLK I;RESET I;
@LOGIC EQUATIONS“Reset della FSM 1”FF0_1.RST = RESET;FF1_1.RST = RESET;
“Reset della FSM 2”FF0_2.RST = RESET;FF1_2.RST = RESET;
(continua)
Ingressi ed uscite primari.
Reset della FSM 1
Reset della FSM 1
Calcolatori Elettronici 97
Esempio 7: Macchine interagentiEsempio 7: Macchine interagenti@OUTPUT VECTORS“Uscita della FSM 1”[control]Inattivo = 0 B;Attivo = 1 B;
“Uscita della FSM 2”[count0, count1]zero = 00 B;uno = 01 B;due = 10 B;
(continua)
Uscite simboliche della FSM 1.Queste condizioni vengonousate come ingressi per laFSM 2.
Uscite simboliche della FSM 2.Queste condizioni sono leuscite primarie del circuito.
Calcolatori Elettronici 98
Esempio 7: Macchine interagentiEsempio 7: Macchine interagenti@STATE VECTORS”Codifica degli stati della FSM 1"[FF1_1, FF0_1] SRFFRs0 = 00 B;s1 = 01 B;s2 = 10 B;s3 = 11 B;
”Codifica degli stati della FSM 2"[FF1_2, FF0_2] DFFRt0 = 00 B;t1 = 01 B;t2 = 10 B;
(continua)
Flip-flop SR con reset
Flip-flop D con reset
Calcolatori Elettronici 99
Esempio 7: Macchine interagentiEsempio 7: Macchine interagenti@TRANSITIONS”Transizioni della FSM 1 (Moore)"WHILE [s0] WITH [Inattivo] IF [seriale] THEN [s0] IF [/seriale] THEN [s1]
WHILE [s1] WITH [Inattivo] IF [seriale] THEN [s1] IF [/seriale] THEN [s2]
WHILE [s2] WITH [Inattivo] IF [seriale] THEN [s0] IF [/seriale] THEN [s3]
WHILE [s3] WITH [Attivo] IF [/seriale + seriale] THEN [s0]
(continua)
I valori ‘Inattivo’ e ‘Attivo’sono associati al segnale‘control’; quest’ultimo èuscita di FSM 1 e ingressodi FSM 2.
Calcolatori Elettronici 100
Esempio 7: Macchine interagentiEsempio 7: Macchine interagenti”Transizioni della FSM 2 (Melay)"WHILE [t0] IF [control] WITH [zero] THEN [t1] IF [/control] WITH [zero] THEN [t0]
WHILE [t1] IF [control] WITH [uno] THEN [t2] IF [/control] WITH [zero] THEN [t1]
WHILE [t2] IF [control] WITH [due] THEN [t0] IF [/control] WITH [uno] THEN [t2]
Il segnale ‘control’, uscitadella FSM 1, pilota la FSM 2.
I valori simbolici ‘zero’, ‘uno’ e‘due’ sono le uscite primaredel circuito.Tali valori sono assegnati alsegnale ‘count[0..1]’.
Calcolatori Elettronici 101
Esempio 8: FSMDEsempio 8: FSMD• Procedura (OCCAM II)
• Architettura:• è costituita da una unità di controllo (FSM) e da una sezione per
l’elaborazione dei dati (DATA PATH)• HP: una sola unità funzionale (una sola ALU)
WHILE (true)SEQ
PARDATO1 ? aDATO2 ? b
c:=c+a+b
Canali:dati da 4 bit;un flag segnala che il dato è pronto.
Calcolatori Elettronici 102
Esempio 8: FSMDEsempio 8: FSMD• Architettura
Unità di
Controllo
Unità di
Controllo
Unità di
Elaborazione
Unità di
Elaborazione
Bus
Test
Controllo
Calcolatori Elettronici 103
Esempio 8: FSMDEsempio 8: FSMD• Scheduling
• Servono 3 registri: uno per a, uno per b ed uno per c• il risultato temporaneo viene memorizzato in uno dei registri presenti
(questo giustifica la presenza di due segnali β).
ba
+
+
c
Passo di duratanon definita
Risualtoparziale
α, β1, β2
β1, β2, δ
δ, γ
Segnali dicontrollo
Calcolatori Elettronici 104
Esempio 8: FSMDEsempio 8: FSMD• Data Path
Registro 1 Registro 2 Registro 1
+
αβ1
β2 γ
δ
0
0
0 0
0
Calcolatori Elettronici 105
Esempio 8: FSMDEsempio 8: FSMD• Unità di Controllo (FSM)
S0
/(flaga+flagb)
S1 - αS2 - β1, β2
flagaflagb
/flaga /flagb
S4 - α
flaga
S3 - β1, β2
flagb
S5 - /δ, /β1, β2
S6 - δ, δγ
ba
+
+
c
Passo di duratanon definita
Risualtoparziale
α, β1, β2
β1, β2, δ
δ, γ
Segnali dicontrollo
Quando non specificati, i segnali Alfa, Beta2 e Gammadevono assumere valore 0 (non si memorizza alcun valore)
Calcolatori Elettronici 106
Esempio 8: FSMD - DataEsempio 8: FSMD - Data Path Path• Multiplexer 2 to 1 (MUX2TO1)
Calcolatori Elettronici 107
Esempio 8: FSMD - Data Esempio 8: FSMD - Data PathPath• Multiplexer 8 to 4 (MUX8TO4)
Calcolatori Elettronici 109
Esempio 8: FSMD - DataEsempio 8: FSMD - Data Path Path• Multiplexer e Registro (REGMUX)
• simulazione
Calcolatori Elettronici 110
Esempio 8: FSMD - DataEsempio 8: FSMD - Data Path Path• Adder (ADDER4)
@PINLISTIa[0..3] I;Ib[0..3] I;S[0..3] O;
@LOGIC EQUATIONSS0=Ia0:+:Ib0;R0=Ia0*Ib0;
S1=Ia1:+:Ib1:+:R0;R1=(Ia1:+:Ib1)*R0+Ia1*Ib1;
S2=Ia2:+:Ib2:+:R1;R2=(Ia2:+:Ib2)*R1+Ia2*Ib2;
S3=Ia3:+:Ib3:+:R2;
Calcolatori Elettronici 111
Esempio 8: FSMD - DataEsempio 8: FSMD - Data Path Path• Data Path (DATAPATH)
Calcolatori Elettronici 112
Esempio 8: FSMD - Esempio 8: FSMD - Macchina a StatiMacchina a Stati
• Unità di Controllo (UC)@PINLISTFlagA I;FlagB I;Reset I;Clock I;
Alfa O;Beta1 O;Beta2 O;Gamma O;Delta O;
@LOGIC EQUATIONSst0.RST=Reset;st1.RST=Reset;st2.RST=Reset;st0.CLK=Clock;st1.CLK=Clock;st2.CLK=Clock;
@OUTPUT VECTORS[Alfa,Beta1,Beta2,Gamma,Delta]S0_out= 0-00-b;S14_out=1-00-b;S23_out=0110-b;S5_out= 00100b;S6_out= 0-011b;
@STATE VECTORS[st0,st1,st2]S0=000b;S1=001b;S2=010b;S3=011b;S4=100b;S5=101b;S6=110b;@TRANSITIONSWhile [S0] with [S0_out] If[/(FlagA+FlagB)] Then [S0] If[FlagA] Then [S1] If[FlagB] Then [S2]While [S1] with [S14_out] If[/FlagB] Then [S1] If[FlagB] Then [S3]While [S2] with [S23_out] If[/FlagA] Then [S2] If[FlagA] Then [S4]While [S3] with [S23_out] If[] Then [S5]While [S4] with [S14_out] If[] Then [S5]While [S5] with [S5_out] If[] Then [S6]While [S6] with [S6_out] If[] Then [S0]