categorie: Circuiti a microcontrollore
Numero di visite: 21445
Commenti sull'articolo: 0

Qual è FPGA un linguaggio semplice per i principianti

 

A cosa è associata l'elettronica digitale? Prima di tutto, con elementi logici AND, OR, NOT. Inoltre, registri a scorrimento, decodificatori, multiplexer, ecc., Entrano in memoria. Tuttavia, poiché la complessità dei dispositivi elettronici e la tendenza verso la miniaturizzazione aumentano, la creazione di dispositivi basati su circuiti integrati (CI) dai componenti di cui sopra è diventata più difficile, i circuiti integrati personalizzati della topologia e dei circuiti richiesti si sono dimostrati utili solo quando il dispositivo è stato replicato in gran numero, in altri casi è stato irragionevolmente costoso.

La via d'uscita da questa situazione era lo sviluppo di circuiti logici integrati programmabili (abbreviato come FPGA, abbreviazione straniera come dispositivo logico programmabile, PLD). Di cosa si tratta e dove viene utilizzato lo diremo in questo articolo.

Qual è FPGA un linguaggio semplice per i principianti

Differenze dai microcontrollori

Con la parola "programmabile", la maggior parte dei principianti si associa con microcontrollori. Nonostante siano anche programmati, gli FPGA sono un dispositivo completamente diverso.

Per gli sviluppatori di microcontrollori, è disponibile un set fisso di soluzioni e strumenti inerenti a un determinato chip, che non funzionerà in alcun modo per ritirarsi dall'architettura. Ti viene dato un set di comandi con cui esegui operazioni di interazione con l'ambiente, leggendo i dati dagli ingressi digitali e analogici e inviando segnali agli attuatori usando le uscite.

Inoltre, è possibile eseguire calcoli, salvare i dati nei registri o nelle ROM, nonché operare con i dati memorizzati nella memoria del microcontrollore. Su questo, in sostanza, è lo scopo e le caratteristiche di lavorare con i microcontrollori.

Programmabile 769; log 769; intero 769; lino 769; ma (FPGA, dispositivo logico programmabile, PLD)

I circuiti integrati logici programmabili (FPGA) differiscono per il fatto che durante la programmazione di un dispositivo si crea personalmente un'architettura dagli elementi logici di base. In questo modo si ottiene l'alta velocità e flessibilità del chip. Ciò rende possibile, senza cambiare un chip, realizzare diversi progetti.

In generale, il dispositivo FPGA interno può essere diviso in tre gruppi principali:

1. Una matrice di elementi logici (macrocellule, blocchi logici).

2. Blocchi di input / output (IO).

3. Linee di comunicazione tra loro e il dispositivo che controlla queste connessioni.

Tuttavia, tale strutturazione è molto generalizzata, considereremo questo problema in modo più dettagliato di seguito.

Programmando, si collegano gli elementi come si farebbe, assemblando un dispositivo da singoli elementi e collegando i loro ingressi e uscite ai conduttori.

Nota:

La differenza principale tra FPGA e microcontrollori è che nel microcontrollore non è possibile modificare le connessioni interne tra gli elementi più semplici e la programmazione e il funzionamento con essi si basa sulla registrazione delle connessioni in FPGA.

La scelta dei microcontrollori si basa su molti criteri, quali:

  • Velocità e velocità di clock;

  • La quantità di ROM e RAM;

  • Il numero di ingressi e uscite.

Altre caratteristiche funzionali e periferiche, come il supporto per linee e protocolli di comunicazione (I2C, un filo, segnale PWM, ecc.).

Quando si sceglie un FPGA, il criterio principale è il numero di blocchi programmabili: dovrebbero essere sufficienti per implementare l'attività.

A seconda dell'FPGA specifico, il numero di blocchi può variare notevolmente e anche il costo cambia.

Il microcontrollore esegue in sequenza tutte le operazioni prescritte nel suo programma, mentre i blocchi FPGA eseguono il compito in parallelo e indipendentemente l'uno dall'altro, pertanto il confronto di questi dispositivi in ​​base alla frequenza di clock è impraticabile. Il loro principio di funzionamento è troppo diverso.

Tipi FPGA

tipi

Attualmente rilevanti sono due tipi principali di FPGA:


1. CPLD (dispositivo logico programmabile complesso - circuito integrato logico programmabile, infatti, si tratta di FPGA nel suo senso classico). Di solito ha una memoria non volatile integrata in cui è caricato il firmware.

La struttura interna è costruita su una matrice di macrocelle o blocchi logici e il numero di elementi in esse contenuti è compreso tra centinaia e migliaia di pezzi. Per la loro relativa semplicità, sono più economici del prossimo tipo di logica programmabile. Tutto ciò porta al fatto che il CPLD viene utilizzato principalmente in circuiti in cui sono necessari alta velocità e un gran numero di uscite, mentre si eseguono compiti semplici.


2. FPGA (array di gate programmabile sul campo - array di gate programmabile dall'utente, tuttavia viene spesso definito FPGA) - dispositivi più sviluppati e complessi rispetto al CPLD, sono costruiti su blocchi logici con commutazione flessibile e contengono un numero maggiore di elementi (decine o centinaia di migliaia di pezzi).

Il firmware viene generalmente archiviato nella memoria non volatile esterna. Oltre agli elementi logici più semplici, gli FPGA possono contenere blocchi già pronti per eseguire qualsiasi operazione, ad esempio blocchi di elaborazione del segnale DSP. Tutto ciò consente di implementare un processore, dispositivi di elaborazione del segnale e altri dispositivi complessi.


meraviglia I:

Sebbene in effetti la presenza di memoria non volatile non renda CPLD logico programmabile. Questo è parzialmente fuorviante. La principale differenza tra CPLD e FPGA è la struttura interna.

La differenza tra CPLD e FPGA è la struttura interna

Il dispositivo CPLD interno è mostrato in maggior dettaglio nella figura seguente.

Dispositivo interno CPLD

E lo schema approssimativo della sua macrocell appare così:

Esempio di layout di macrocellula CPLD

La macrocellula è composta da multiplexer programmabili, trigger (uno o più) e forma un gruppo di segnali FB di uscita in diverse versioni.

Di seguito è riportato un altro esempio: uno schema a blocchi di un chip CPLD della famiglia di chip Altera MAX II.

Diagramma di flusso Altera MAX II CPLD

E il piano strutturale dei chip della stessa famiglia.

Schema a blocchi Altera MAX II CPLD

I pneumatici intermedi vengono assegnati alle macrocellule usando un nodo come un distributore in inglese. sembra un allocatore logico, che viene mostrato nel diagramma seguente, mostra anche la matrice di commutazione (Global Routing Pool) e alle macrocellule di uscita (macrocellule) hanno due feedback.

Distributore e matrice di commutazione

Le uscite esterne del microcircuito sono collegate alle uscite delle macrocellule attraverso un altro blocco (matrice) - ORP (Output Routing Pool), si noti che attraverso di essa la logica INPUT è collegata a GRP, come mostrato nella figura sotto.

Nota:

Alcuni CPLD hanno il cosiddetto ingressi diretti (ingresso diretto): sono collegati direttamente agli ingressi delle celle, riducendo i ritardi.

La struttura FPGA ha la forma:

Struttura FPGA
  • L - blocco logico configurabile;

  • S (blocco di sostituzione) - un blocco di sostituzione, riceve un certo numero di bit per mossa, si converte, secondo un certo algoritmo, e genera un diverso numero di bit in uscita. In altre parole, un decodificatore, un codificatore e uno switch.

  • C (blocco di connessione) - blocco di connessione.

Schema a blocchi S:

 

Schema a blocchi a S.



programmazione


HDL (Hardware Description Language) - questa è la lingua con cui sono programmati gli FPGA. Popolari e versatili sono Verilog HDL e VHDL. Esistono altre lingue, come quelle specifiche per i produttori, come AHDL per i prodotti ALTERA.

La programmazione grafica è disponibile per gli sviluppatori che lavorano con FPGA. Cioè, puoi semplicemente disegnare circuiti logici o combinare il codice con la grafica. Quest'ultimo è chiamato il metodo di sviluppo modulare, quando vengono prescritti moduli specifici, e il modulo superiore, in cui tutto è combinato, è programmato graficamente.


Esempi di produttori e serie popolari

Al momento della scrittura, i più famosi sono i prodotti di due produttori.

  • Altera (fondata nel 1983);

  • Xilinx (fondata nel 1984).

Altera

Altera ha diverse serie principali di logica programmabile:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Cyclone;

  • Arria;

  • Stratix.

Consideriamo ciascuno di essi in modo più dettagliato. Nelle tabelle seguenti sono riportate informazioni generali sui chip della famiglia.

Caratteristiche delle principali serie di logica programmabile
Caratteristiche delle principali serie di logica programmabile

Altera 3 CPLD CPLD:

  • MAX è un CPLD da utilizzare in dispositivi mobili, i tratti distintivi sono il consumo energetico e la dissipazione del calore relativamente bassi. A seconda della complessità e degli anni di rilascio, si distinguono le seguenti modifiche:

  • 7000S è obsoleto, è stato rilasciato nel 1995.

  • 3000A - rilasciato nel 2002, è prodotto utilizzando la tecnologia 300nm. È costituito da un numero limitato di macrocellule (32-512)

  • MAX II, rilasciato nel 2004, è prodotto utilizzando la tecnologia 100nm, è costituito da un numero maggiore di unità (240-2210) che operano a frequenze fino a 304 MHz. Il prodotto è realizzato in casi di tipo TQFP 0,5 con mulino da 100 o più gambe.

  • MAX IIZ - 2007, la caratteristica principale è il ridotto consumo energetico - questo è un punto positivo, tuttavia, le frequenze sono ridotte a 152 MHz. Questi microcircuiti sono alimentati da 1,8 V.

  • MAX V - 2010 anno. È prodotto secondo la tecnologia a 180 nm, può contenere da 40 a 2210 blocchi e operare a frequenze fino a 152 MHz o 304 MHz - dipende dal numero di blocchi.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone è un chip di tipo FPGA economico. Ci sono cinque generazioni che sono contrassegnate con numeri greci (da I a V, rispettivamente). La prima generazione è stata lanciata nel 2002, prodotta con la tecnologia a 180 nm e la quinta generazione è stata lanciata nel 2011 e prodotta con la tecnologia a 28 nm. Vale la pena notare che tutte le generazioni rimangono rilevanti.

  • Arria: fare riferimento anche all'FPGA di fascia media.

  • Stratix: potenti FPGA.

Di seguito sono riportate le tabelle pivot logiche programmabili Altera FPGA.

Funzionalità FPGA
Funzionalità FPGA
Funzionalità FPGA

E la tabella completa al link:

Il produttore Xilinx CPLD presentato in serie:

  • XC9500XL di 36-288 macrocellule. Operano a frequenze fino a 178 MHz e modelli a 288 macrocellule a 208 MHz. Viene eseguito come in piccoli casi con 44 pin (cavi) a una distanza di 0,8 mm l'uno dall'altro - tali casi sono considerati facilmente saldabili. Disponibile anche con 64 e 100 gambe con incrementi di 0,5 mm, nonché modelli in custodie tipo PLCC.

  • La serie CoolRunner-II è un CPLD efficiente dal punto di vista energetico ma produttivo. Una funzione è alimentata da una tensione di 1,8 V, gli ingressi e le uscite sono progettati per funzionare nell'intervallo 1,5-3,3 V. Sono costituiti da 32-512 macrocellule e sono prodotti utilizzando la tecnologia 180nm. A seconda del numero di celle, funzionano nella gamma di frequenza 179-323 MHz e più piccole sono le celle, maggiore è la frequenza che possono funzionare in questo caso. Si trovano in diversi casi, anche facilmente saldabili, come nei microcircuiti della serie considerata sopra.

La società Xilinx non è passata e FPGA:

  • Spartan-6: sono costituiti da blocchi logici a 6 input, il loro numero è compreso nell'intervallo 3840-147443 pezzi. Interessante in quanto possono contenere controller per lo scambio di dati come DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA ecc ...

  • La serie Vitrex-7 è complessa, i microcircuiti possono contenere fino a 2.000.000 di blocchi logici e 1.200 contatti.

Di seguito puoi trovare le tabelle riassuntive con le specifiche CPLD e FPGA delle serie Xilinx 6 e 7, nonché Zynq-7000.

Funzionalità FPGA Xilinx serie 6 e 7
Caratteristiche degli FPGA Virtex-6
Caratteristiche della famiglia FPGA Spartan-6
Caratteristiche della famiglia FPGA Spartan-6
Funzionalità FPGA
Funzionalità FPGA

conclusione

FPGA e PPVM sono prodotti anche da altre società come Lattice Semiconductor (nel 2002 ha iniziato a produrre FPGA), Actel e i suoi noti lettori del nostro sito. microcontrollori ATMEL e molti altri. Sulla logica programmabile, è possibile implementare un numero di dispositivi, implementare calcoli paralleli indipendenti l'uno dall'altro in un dispositivo, tuttavia, per i progetti domestici, il loro acquisto è spesso finanziariamente ingiustificato, ma allo stesso tempo abbastanza ragionevole su scala di produzione, in alternativa ai circuiti integrati personalizzati.

Post scriptumGuarda il video, in esso vedrai un esempio dell'implementazione della console di gioco Nintendo sull'FPGA:

Vedi anche su electro-it.tomathouse.com:

  • Functional Block Diagram Language (FBD) e sua applicazione
  • Tipi di circuiti integrati moderni - tipi di logica, casi
  • Chip logici. Parte 1
  • Microcontrollori PIC per principianti
  • Controllori logici programmabili per l'automazione domestica

  •