Introduzione alle logiche digitali programmabili

Schemi di elettronica digitale, microcontrollori, FPGA, hardware
Rispondi
Avatar utente
Marco1971
Messaggi: 780
Iscritto il: mer 18 lug 2018, 17:38
Località: Lucca
Contatta:

Introduzione alle logiche digitali programmabili

Messaggio da Marco1971 »

Questa sarà una piccola e senza grosse pretese, introduzione al mondo grande, grandissimo delle logiche digitali programmabili.
L'Universo delle logiche programmabili digitali (uno dei tanti acronimi cari al mondo anglosassone le definisce come PLD, programmable logic devices) si compenetra storicamente nel ventesimo secolo, con quello della progettazione digitale tramite circuiti integrati a bassa e media scala di integrazione.
La tassonomia che definisce le scale di integrazione storicamente si basava sul numero di porte logiche integrate all'interno del singolo circuito integrato ad esempio appartenente alla famiglia 54/74 in tecnologia TTL (altro acronimo che significa transistor transistor logic).
A fine anni '60 abbiamo già menzione delle prime forme di logiche programmabili. Nel 1969 Motorola presenta l'XC157 un circuito a matrice di porte programmabile tramite maschere in fabbrica con 12 porte e 30 piedini di ingresso/uscita; nel 1970 Texas Instrument altro nome storico nel mondo dei semiconduttori sviluppa una memoria associativa a sola lettura, il dispositivo TMS2000 con programmabilità in fabbrica intervenendo sulla alterazione degli strati metallici; con questo viene coniato anche l'acronimo PLA (programmable logic array) ovvero matrice logica programmabile.

Con una PLA si possono implementare funzioni logiche combinatorie (ovvero con le uscite funzioni solo degli ingressi alla rete) disponendo di gradi di libertà sul piano AND ed OR di uscita (termini di prodotto logici o minterm).
Sono logiche programmabili anche quelle presenti nelle memorie a sola lettura ROM (read only memory) che erano già disponibili nei primi anni '70 del ventesimo secolo ad esempio sviluppate da General Electric.

Abbiamo quindi una suddivisione a seconda della tecnologia impiegata per la realizzazione della PLA ovvero di tipo bipolare tramite matrici di diodi ed elementi fusibili per la programmazione; impiego di transistor MOS a gate fluttuante (FAMOS).

Per superare i due principali problemi/limiti intrinseci alla tecnologia PLA venne introdotta verso la fine degli anni '70, una nuova famiglia di dispositivi programmabili aventi un solo piano di porte logiche, programmabili il piano OR. Problema di costo di realizzazione e ritardi elevati di propagazione dovuti alla presenza degli elementi circuitali necessari per avere i due piani di logica programmabile. Nacquero così le PAL acronimo di programmable array logic.
Nei dispositivi PAL è possibile implementare equazioni logiche costituite da somme di prodotti.

Immagine

Immagine

Nei dispositivi programmabili sequenziali abbiamo anche la presenza di elementi di memoria (flip flop) necessari per realizzare contatori, registri a scorrimento e macchine a stati (secondo il modello di Moore, Mealy ad esempio). Nella PAL commercialmente disponibile 16L8 il numero "16" indica il numero di ingressi al piano AND mentre "8" si riferisce al numero massimo di uscite disponibili.

Principali linguaggi di programmazione per le logiche PAL

Nel corso degli anni sono stati sviluppati diversi linguaggi di descrizione dell'hardware (HDL), i prinicipali sono stati:

PALASM

Il linguaggio PALASM (da "PAL assembler") fu sviluppato da John Birkner nei primi anni '80 per la MMI (Monolithic Memories).

Immagine

http://www.computerhistory.org/silicone ... ntroduced/

Esempio di descrizione in PALASM di un contatore a 4 bit con clear sincrono

Immagine

Immagine

CUPL

Compiler for Universal Programmable Logic, rilasciato nel settembre 1983 come primo strumento di sviluppo commerciale in grado di supportare famiglie multiple di PLD. Inizialmente per personal computer IBM e sistema operativo MS-DOS. Oggi i diritti di tale "compilatore" sono detenuti dalla australiana Altium Ltd.

http://www.swtpc.com/mholley/PLD_Histor ... 83_ocr.pdf

ABEL

Ovvero Advanced Boolean Expression Language, sviluppato dalla DATA I/O corp. nel 1984.

Immagine

http://www.swtpc.com/mholley/PLD_Histor ... _small.pdf

http://www.swtpc.com/mholley/PLD_Histor ... 9_1981.pdf

Immagine

History of the ABEL project at Data I/O

http://www.swtpc.com/mholley/PLD_Histor ... _Memos.htm

Dispositivi CPLD (complex programmable logic devices)

Un parametro di progetto frequentemente utilizzato per classificare la complessità di un dispositivo logico programmabile, è la complessità in porte equivalenti. Quest'ultima è in correlazione stretta al numero di porte logiche NAND a due ingressi necessarie per implementare una funzione logica. Invece di aumentare il numero di ingressi al piano programmabile AND nei dispositivi CPLD vengono integrate più "celle logiche" simili a PAL interconnesse opportunamente tra di loro.
Schema interno di una architettura CPLD con in evidenza i blocchi funzionali programmabili (FB) e la matrice di interconnessione.

Immagine

Implementazione del singolo blocco funzionale, programmabile...

Immagine

Introduzione allo sviluppo di logica digitale tramite impiego di CPLD e FPGA (field programmable array)

http://pldworld.org/html/technote/intro ... design.pdf

Differenze salienti tra un CPLD ed una FPGA

Immagine

http://www.idc-online.com/technical_ref ... d_CPLD.pdf

1) Le FPGA in genere offrono centinaia di blocchi integrati definiti CLB (configurable logic block) e tabelle di lookup (LUT); elementi di memoria (flip-flop), logica combinatoria in una struttura a grana più fine rispetto ad un CPLD

2) tramite CPLD in genere si implementa la parte di controllo mentre con le FPGA la parte operativa o datapath di una rete logica complessa. Con una FPGA è possibile implementare contatori, unità aritmetiche con sommatori, moltiplicatori, comparatori e memoria RAM, ad elevato grado di complessità

3) le FPGA in genere sono dispositivi che hanno necessità di avere all'avvio/accensione il caricamento della loro configurazione operativa mentre nei CPLD tale configurazione risiede in una memoria riprogrammabile di tipo EEPROM (electrically erasable programmable only memory)

Datasheet FPGA famiglia XC400 di Xilinx

https://media.digikey.com/pdf/Data%20Sh ... 00,A,H.pdf

ASIC ovvero Application-Specific Integrated Circuit

Circuito logico progettato per impiego specifico ovvero non di tipo general purpose. A seconda della tipologia di progettazione abbiamo la seguente tassonomia di definizione:

Full custom ASIC

In un tale tipo di ASIC tutte le maschere utilizzate durante il processo di fabbricazione litografica sono "su specifica" richiesta dalla particolare applicazione. Si ha quindi in genere, la massima "velocità di funzionamento" unitamente al minimo costo per componente.

Progettazione secondo standard cell

Ovvero ASIC sviluppati avvalendosi di celle standard disponibili all'interno di librerie delle varie suite EDA (sistemi CAD di progettazione integrata rivolti al mondo elettronico).

ASIC di tipo gate-array

Progettati avvalendosi di una matrice di dispositivi attivi (transitor) già prefabbricati unitamente a librerire di macro celle.

http://web.cecs.pdx.edu/~mperkows/CLASS ... D-FPGA.pdf

http://www.csit-sun.pub.ro/resources/asic/CH01.pdf

Un ASIC di tipo gate array che mostra le celle logiche predefinite e le interconnessioni custom-made

Immagine

Tre illustri ASIC che hanno fatto la storia dell'home computing evoluto...Agnes, Denise e Paula...

http://obligement.free.fr/files/amiga_p ... holson.pdf

Work in progress...

Marco
Avatar utente
pgv
Messaggi: 484
Iscritto il: gio 17 set 2020, 13:16
Località: Ginevra

Re: Introduzione alle logiche digitali programmabili

Messaggio da pgv »

E un suggerimento per una schedina FPGA con cui cominciare a farsi identi?
tiziao
Messaggi: 4941
Iscritto il: sab 17 mar 2018, 9:23
Contatta:

Re: Introduzione alle logiche digitali programmabili

Messaggio da tiziao »

pgv ha scritto: ven 23 apr 2021, 21:26 E un suggerimento per una schedina FPGA con cui cominciare a farsi identi?
Guarda sul sito Arrow c' è una notevole offerta.... una serie mi pare abbia la toolchain free e corposi convegni a supporto.
Avatar utente
Pier Aisa
Amministratore
Messaggi: 2530
Iscritto il: ven 16 mar 2018, 9:43
Località: Bologna
Contatta:

Re: Introduzione alle logiche digitali programmabili

Messaggio da Pier Aisa »

Grande Marco! Finalmente qualcuno che si occupa della parte anche PGA che al momento è rimasta un po' scoperta molto interessante e grazie per la intro completissima.
Ciao e alle prossime puntate
Rispondi