Monolithic Memories PAL Dispositivi programmabili con matrice OR fissa e matrice AND programmabile I 1 I 2 PROGR. I 3 O 1 FISSA O 2 O 3 O 4 1
Caratteristiche Ciascun dispositivo si distingue per: n pin ingresso n pin uscita n pin I/O n termini prodotto su ciascuna uscita n di flip-flop (PAL REGISTERED) polarità delle linee PALASM Il PALASM è uno strumento per la programmazione di dispositivi PAL. Comprende: dispositivo che brucia le connessioni della matrice AND della PAL software per simulazione funzionamento PAL e programmazione del dispositivo di bruciatura 2
PALASM - Software La specifica di come programmare un dispositivo e verificarne il funzionamento è effettuata attraverso un design file. Il design file viene elaborato dal software palasm in due passi: Verifica di sintassi ed assemblaggio: verifica la correttezza delle specifiche e la loro compatibilità con la PAL scelta Simulazione: simula il funzionamento del dispositivo per prefissate combinazioni di ingressi Design Design file file Verifica di sintassi ed assemblaggio Simulazione PALASM - Software Il design file è un file di testo (estensione PDS, Pal Design Specification) in cui sono specificati: Dati sul progetto (opzionali: se assenti causano warnings) Tipo di dispositivo PAL da usare Dichiarazione simboli di linea Equazioni che legano ingressi e uscite Specifiche di simulazione Title Pattern 4 bit counter counter.pds CHIP GATES PAL16RP4 ; PINS 1 2 3 4 5 6 7 8 9 10 CLK EN RS NC NC NC NC NC NC GND ; PINS 11 12 13 14 15 16 17 18 19 20 /OC NC NC D C B A NC NC VCC EQUATIONS D := /D*/RS*EN + /RS*/EN*D C := /C*D*/RS*EN + C*/D*/RS*EN + /RS*/EN*C SIMULATION TRACE_ON A B C D EN RS OC CLK SETF /EN RS OC CLOCKF CLK TRACE_OFF 3
DESIGN FILE - Dati Title PROVA DI ESEMPIO Pattern prova.pds Revision v 2.1 Author Bart Simpson Company DSI Date 27 nov. 2002 DESIGN FILE - Tipo CHIP prova PAL12H6 4
DESIGN FILE - Dichiarazione La specifica delle equazioni richiede che a ciascun pin della PAL venga assegnato un simbolo. Per questo si specifica una sequenza di simboli, uno per ogni pin del dispositivo. A B GND??? 1 2 3 6 5 4??? VCC D C DESIGN FILE - Dichiarazione Per esempio, per un dispositivo con 6 pin si potrebbe avere: A B GND C D VCC In questo modo il pin 1 viene associato al simbolo A, il pin 2 al simbolo B... Simboli dedicati: GND VCC OC CLK NC Per ogni pin deve comparire un simbolo (al limite NC) 5
DESIGN FILE - Dichiarazione Per rendere il file più leggibile si sfrutta la possibilità di inserire dei commenti: tutto ciò che su una linea segue un carattere ; è un commento. ; 1 2 3 A B GND ; 4 5 6 C D VCC A B GND C D VCC DESIGN FILE - Equazioni Le equazioni specificano il legame logico tra linee di uscita e linee ingresso (e I/O) Operatori: = Assegnazione uscita combinatoria := Assegnazione uscita registered + OR * AND / NOT :+: XOR (da usare solo su dispositivi provvisti di porte XOR) 6
DESIGN FILE - Equazioni EQUATIONS C = A * B ; funzione AND D = A + B ; funzione OR Attenzione: i pin di ingresso non possono comparire a sinistra del segno = DESIGN FILE - Simulazione Attraverso la simulazione si ha la possibilità di impostare il valore delle linee di ingresso e verificare il valore assunto dalle linee di uscita in funzione delle equazioni specificate. Questo consente di verificare il funzionamento del dispositivo prima di procedere alla sua effettiva (ed irreversibile) programmazione. 7
DESIGN FILE - Simulazione TRACE_ON : specifica le linee da monitorare SETF simbolo : pone ad 1 il valore della variabile di ingresso simbolo Per assegnare 1 ad A: SETF A Per assegnare 0 ad A: SETF /A CHECK simbolo : Verifica che il valore della variabile simbolo sia 1 Per verificare che A sia 1: CHECK A Per verificare che A sia 0: CHECK /A DESIGN FILE - Simulazione SIMULATION TRACE_ON A B C D SETF A B CHECK C D SETF /A B CHECK /C D SETF /A /B CHECK /C /D TRACE_OFF 8
DESIGN FILE - Simulazione Il comando CLOCKF CLK induce un impulso di clock. Con i seguenti comandi si inducono 4 impulsi di clock consecutivi: FOR I:=1 TO 4 DO BEGIN CLOCKF CLK END Esempio - 1 Programmare una PAL in modo che dati due ingressi A e B fornisca le seguenti uscite: A negato AND logico tra A e B OR logico tra A e B AND logico tra A negato e B negato OR logico tra A negato e B negato XOR logico tra A e B 9
Esempio - 1 Quale PAL scegliere? Almeno due ingressi Almeno 6 uscite PAL12H6 Pin 1~9, 11, 12, 19 INGRESSI Pin 13~18 USCITE Pin 10 GND Pin 20 VCC Esempio - 1 Con l applicazione NOTEPAD (Start Programmi Accessori Notepad) creare il design file C:\ PALASM2\ GATES.PDS Dati generici: Tipo: Title Pattern basic gates gates. pds CHIP GATES PAL12H6 10
Dichiarazioni: Esempio - 1 ; PINS 1 2 3 4 5 6 7 8 9 10 A B NC NC NC NC NC NC NC GND ; PINS 11 12 13 14 15 16 17 18 19 20 NC NC C D E F G H NC VCC Equazioni: EQUATIONS Esempio - 1 C = /A D = A*B E = A+B F = /A*/B G = /A+/B H = /A*B + A*/B 11
Esempio - 1 Simulazione: SIMULATION TRACE_ON A B C D E F G H SETF A B CHECK /C D E /F /G /H SETF A /B CHECK /C /D E /F G H SETF /A B CHECK C /D E /F G H SETF /A /B CHECK C /D /E F G /H TRACE_OFF Esempio - 1 Salvare il file nella directory c:\ palasm2 con nome gates.pds Aprire una finestra DOS lanciando il comando cmd.exe (dal menù principale, opzione esegui) Portarsi nella directory c:\ palasm2 ed eseguire palasm 12
Esempio - 1 Esempio - 1 13
Esempio - 1 1 2 3 Eventuali messaggi di errore o warning sono scritti nel file c:\ palasm2\ menu.log Esempio - 1 14
Esempio - 1 Esempio - 2 Programmare una PAL in modo da realizzare un contatore a 4 bit. Oltre alle 4 uscite si vogliono un ingresso di ENABLE (EN) ed uno di RESET (RS) 15
Esempio - 2 Quale PAL scegliere? Almeno due ingressi Almeno 4 uscite registered PAL16RP4 Pin 1 Pin 2~9 Pin 14~17 Pin 11 Pin 12,13,18,19 Pin 10 Pin 20 CLK INGRESSI I/O REG. OE I/O GND VCC Esempio - 2 Creare con NOTEPAD il file c:\ palasm2\ counter. pds Dati generici: Tipo: Title Pattern 4 bit counter counter. pds CHIP GATES PAL16RP4 16
Dichiarazioni: Esempio - 2 ; PINS 1 2 3 4 5 6 7 8 9 10 CLK EN RS NC NC NC NC NC NC GND ; PINS 11 12 13 14 15 16 17 18 19 20 /OC NC NC D C B A NC NC VCC Esempio - 2 Equazioni. Passo 1: trascuriamo EN ed RS Una generica cifra deve essere 1 se al passo precedente è 0 e tutte quelle meno significative 1 oppure se al passo precedente è 1 ed almeno una delle meno significative è 0 D := /D C := /C*D + C*/D B := /B*C*D + B*/C + B*/D A := /A*B*C*D + A*/B + A*/C + A*/D 17
Esempio - 2 Equazioni. Passo 2: gestiamo RS D := /D*/RS C := (/C*D + C*/D)*/RS B := (/B*C*D + B*/C + B*/D )*/RS A := (/A*B*C*D + A*/B + A*/C + A*/D)*/RS Esempio - 2 Equazioni. Passo 3: gestiamo EN D := /D*/RS*EN + /RS*/EN*D C := (/C*D + C*/D)*/RS*EN + /RS*/EN*C B := (/B*C*D + B*/C + B*/D)*/RS*EN + /RS*/EN*B A := (/A*B*C*D + A*/B + A*/C + A*/D)*/RS*EN + /RS*/EN*A 18
Esempio - 2 Equazioni in forma somma di prodotti: EQUATIONS D := /D*/RS*EN + /RS*/EN*D C := /C*D*/RS*EN + C*/D*/RS*EN + /RS*/EN*C B := /B*C*D*/RS*EN + B*/C*/RS*EN + B*/D*/RS*EN + /RS*/EN*B A := /A*B*C*D*/RS*EN + A*/B*/RS*EN + A*/C*/RS*EN + A*/D*/RS*EN + /RS*/EN*A Esempio - 2 Simulazione: SIMULATION TRACE_ON A B C D EN RS OC CLK SETF /EN RS OC CLOCKF CLK SETF /EN /RS FOR I := 1 TO 3 DO BEGIN CLOCKF CLK END SETF EN /RS FOR I := 1 TO 2 DO BEGIN CLOCKF CLK END SETF EN RS FOR I := 1 TO 5 DO BEGIN CLOCKF CLK END TRACE_OFF 19
Esempio - 2 Esercizio - 1 Realizzare un rilevatore per la sequenza: 1 0 1 1 Verificarne il funzionamento per la sequenza 1 1 0 1 1 20
Esercizio - 2 Sintesi di un circuito sincrono con un ingresso di RESET e le seguenti uscite: Y 1 Y 2 Y 3 T 1 T 2 21