Fabbricazione PCB di precisione, PCB ad alta frequenza, PCB ad alta velocità, PCB standard, PCB multistrato e assemblaggio PCB.
La fabbrica di servizi personalizzati PCB e PCBA più affidabile.
PCB Tecnico

PCB Tecnico - Perché gli sviluppatori embedded dovrebbero usare FPGA

PCB Tecnico

PCB Tecnico - Perché gli sviluppatori embedded dovrebbero usare FPGA

Perché gli sviluppatori embedded dovrebbero usare FPGA

2021-08-17
View:453
Author:IPCB

In un campo, se l'unica costante è il cambiamento, allora non c'è bisogno di rivedere lo sviluppo e i cambiamenti della tecnologia elettronica e dei metodi di progettazione per testimoniare come i cambiamenti consentono ai progettisti di creare la prossima generazione di prodotti innovativi. Dopo l'applicazione su larga scala dei microprocessori, nuove tecnologie economiche e di alta qualità hanno aperto le porte alla progettazione di prodotti elettronici innovativi basati su software. Questo è un buon esempio. In breve, dopo aver trasferito l'elemento principale della progettazione - qui è l'intelligenza di controllo - nel dominio soft, i progettisti possono creare prodotti migliori, più intelligenti e più economici in un periodo di tempo più breve.


Questo cambiamento significa che gli sviluppatori di software embedded sono i principali driver della definizione odierna delle funzioni e delle caratteristiche dei prodotti elettronici, e alla fine produrranno hardware. Il fattore di successo di questo metodo risiede nella riduzione della complessità hardware e nella flessibilità aperta portata dalla trasformazione degli elementi di controllo del progetto al campo programmabile.


Oggi, l'arrivo di dispositivi programmabili ad alta capacità e a basso costo ha portato la stessa speranza allo sviluppo della progettazione elettronica di prodotto, perché è diventato possibile definire l'hardware di sistema stesso nel campo soft. Dispositivi su larga scala come gli FPGA di grande capacità sono ideali per soddisfare questa domanda. Questi periodi possono essere generalmente utilizzati per costruire grandi parti dei blocchi di funzioni logiche periferiche del sistema, incluse interfacce bus, blocchi I/O e persino memoria. L'introduzione di una grande quantità di logica nel campo FPGA ha un impatto profondo sullo sviluppo hardware e apre le porte a una nuova era del design "soft", che offre flessibilità senza precedenti per il design e ha un potenziale illimitato per ridurre le dimensioni e la complessità della scheda.


Sebbene abbia il potenziale di rivoluzionare il processo di sviluppo elettronico del prodotto, la maggior parte degli sviluppatori di software embedded funziona ancora come prima: scegliere processori hardware discreti all'inizio del processo di progettazione, creare una piattaforma fisica e quindi scrivere software Usa la piattaforma. La mancanza di esplorazione nei campi "soft" e hardware dello sviluppo di sistemi embedded è dovuta principalmente alla mancanza di strumenti per i programmatori C per utilizzare le loro competenze a livello hardware programmabile. Infatti, la maggior parte degli attuali flussi di progettazione FPGA provengono principalmente dal campo della progettazione di chip e richiedono competenze molto professionali.

Porta il design morbido al livello successivo


Per andare oltre le applicazioni logiche di colla FPGA richiede una visione più ampia, compresa l'utilizzo completo di dispositivi programmabili e l'introduzione di più hardware possibile nel dominio soft. Ciò include l'introduzione delle funzioni stesse del processore. Oggi, i processori soft negli FPGA vengono sempre più trasformati in piattaforme embedded. Fondamentalmente parlando, passare a un processore soft con FPGA porterà i vantaggi di flessibilità strutturale, dimensioni della scheda più piccole e più semplici. Ma le applicazioni più profonde porteranno vantaggi più interessanti.


Quando la funzione programmabile di FPGA viene utilizzata per ottenere il livello di astrazione sulla parte superiore del processore, apre infinite possibilità agli sviluppatori embedded, non solo per realizzare il disegno astratto del livello nel software, ma anche nell'hardware. Immaginate un sistema in cui il processore è collegato alla sua memoria e alle sue periferiche attraverso hardware configurabile (essenzialmente un pacchetto hardware) - questo astrae l'interfaccia del processore. La semplice riprogrammazione dell'FPGA cambia il pacchetto hardware e il progettista di sistema può facilmente cambiare il nucleo del processore, o anche passare tra processori duri e soft, senza modificare altro hardware di sistema. Dal punto di vista del sistema, tutti i processori sono simili, il che semplifica il processo di progettazione hardware. Naturalmente, estendere questo al campo del software applicativo richiede anche un compilatore in grado di fornire compatibilità a livello C tra processori.


Il vantaggio di questo sistema è che non c'è bisogno di fare una scelta del processore "in anticipo". Il sistema può essere sviluppato utilizzando un certo processore, ma la fase di sviluppo ha scoperto che erano necessarie prestazioni più elevate e dispositivi più veloci sono stati utilizzati. A causa del livello di wrapping, il processore può essere morbido, duro o anche il nucleo del processore hardware all'interno dell'FPGA, senza influenzare l'hardware circostante, perché il livello di conversione crea solo un'interfaccia standard per il collegamento delle periferiche. Infatti, la connessione del dispositivo periferico stesso può essere astrata allo stesso modo. In questo schema, FPGA fornisce connettività universale per tutti i componenti del sistema embedded e diventa effettivamente la struttura di interconnessione del sistema. In altre parole, diventa effettivamente la "spina dorsale" dell'interfaccia standard, e sia l'hardware che il software possono comunicare facilmente con il processore e le periferiche.


Infine, l'introduzione di un wrapper trasparente sul processore creerà un ambiente di sviluppo basato su FPGA che garantisce una reale indipendenza del processore. La velocità di sviluppo software e hardware è aumentata, la selezione del processore può essere effettuata nelle fasi successive del processo di progettazione e diventa possibile un'efficace co-progettazione software/hardware.

Convertire tra software e hardware


Un'estensione dell'idea di creare un processore e un layer di wrapper periferico in hardware configurabile consiste nel generare automaticamente hardware di sistema specifico per applicazioni ed eseguire algoritmi software nell'hardware, una sorta di coprocessore hardware "own".


L'idea di generare direttamente hardware dal codice C non è nuova. Sono stati implementati diversi sistemi. L'idea finora è quella di creare un hardware di sistema completo attraverso un linguaggio simile a C. In sostanza, questo non è diverso dall'uso di HDL (come VHDL o Verilog) per progettare FPGA, richiedendo agli sviluppatori di software di imparare e adottare nuovi metodi di progettazione. Ciò che funziona davvero per gli sviluppatori embedded è rendere il processo trasparente. Lo strumento di progettazione deve essere in grado di elaborare l'input del codice ANSI C standard e convertire le funzioni selezionate dal programmatore in hardware. Non solo, il sistema deve essere in grado di generare tutto il codice necessario per utilizzare l'hardware generato. In questo modo, i programmatori embedded scaricano l'algoritmo dedicato dal processore all'hardware dedicato senza conoscere alcun dettaglio di progettazione dell'hardware sottostante.


Sfruttare appieno il potenziale di FPGA


Ovviamente, dal punto di vista degli strumenti, sfruttare appieno le opportunità offerte dai dispositivi programmabili (come gli FPGA) richiede un sistema che migliora il livello di astrazione del processo di sviluppo, in modo che gli elementi fondamentali del progetto possano essere facilmente modificati attraverso tecniche e processi progettuali simili. Tale sistema deve essere in grado di unificare l'intero processo di sviluppo elettronico del prodotto e integrare lo sviluppo di hardware, software e hardware programmabile in un unico ambiente coerente.

Figura 1. Sfruttare appieno le potenzialità di FPGA significa portare tutti gli elementi del progetto (inclusi hardware e software) nel campo riprogrammabile.


Altium Designer introduce un processore semplice e di alto livello per raggiungere questo obiettivo, soddisfacendo i requisiti software, FPGA e PCB, e un ambiente integrato di sviluppo del prodotto che integra tutti i processi richiesti in un'unica applicazione (Figura 1). Lo sviluppo hardware e software sono unificati a livello di piattaforma, rendendo possibile una rapida co-progettazione software/hardware. Con processori basati su FPGA e core incorporati in processore, i progettisti possono scegliere Altium Designer o qualsiasi processore di terze parti supportato, pur mantenendo tutte le caratteristiche del design, inclusa la facile connessione alle periferiche FPGA. Il compilatore Viper di Altium Designer garantisce la compatibilità del codice a livello C tra tutte le architetture di processore supportate dal sistema.


Oltre al potenziale di sviluppo rapido del prodotto, la natura integrata di Altium Designer porta anche nuove possibilità di design e funzionalità per gli sviluppatori embedded. Altium ha inoltre sviluppato una nuova tecnologia integrata di compilatori hardware/software, che sarà presto supportata da Altium Designer. Questa tecnologia genera contemporaneamente codice eseguibile altamente ottimizzato e implementazione hardware FPGA simultanea dal codice C standard, e genera il codice necessario per collegare i due insieme durante il runtime. In pratica, ciò significa che gli sviluppatori possono specificare funzioni di codice C che vengono scaricate dal processore all'hardware, e l'ambiente software/hardware integrato di Altium Designer rende il processo veloce e trasparente (Figura 2).

Figura 2. Con strumenti software avanzati, gli sviluppatori embedded possono influenzare, modificare e eseguire il debug dell'hardware di sistema sottostante quando diventano ingegneri hardware.


Tali sistemi offrono agli sviluppatori embedded la possibilità di selezionare le caselle di controllo del sistema per ottenere il potenziale di miglioramento delle prestazioni finali e dei costi nel trasferimento di funzioni software dedicate all'hardware. Ciò consente agli sviluppatori di trasferire efficacemente funzioni tra hardware e software e continuare a integrarsi su soluzioni applicative ottimizzate. Un fenomeno interessante che vale la pena notare è che gli sviluppatori di software che utilizzano questa funzionalità di Altium Designer e altre funzionalità di alto livello (come i core di pacchetti incorporati e i componenti software pre-sincronizzati basati su libreria) possono utilizzare efficacemente l'hardware all'interno del meccanismo FPGA. In breve, gli ingegneri software che utilizzano questo sistema possono utilizzare le loro competenze esistenti per utilizzare facilmente l'hardware FPGA senza coinvolgere la struttura sottostante del dispositivo target o la programmazione RTL (Figura 3).

ATL

Figura 3, l'integrazione del flusso di progettazione compreso hardware, hardware programmabile e software consente ai dispositivi FPGA di essere utilizzati e creare sistemi embedded completi, e questo richiede solo tecnologie comuni.


La combinazione dell'ambiente di sviluppo integrato di Altium Designer e FPGA su larga scala a basso costo consente agli sviluppatori embedded di sfruttare appieno il potenziale dei dispositivi programmabili. Dopo aver utilizzato il corretto ambiente di sviluppo, l'ampio spazio di progettazione riconfigurabile portato dall'attuale FPGA rende possibile un nuovo metodo di progettazione embedded e i progettisti possono portare innovazioni rivoluzionarie allo sviluppo di prodotti elettronici, proprio come pochi decenni fa. L'introduzione dei processori ha rivoluzionato l'industria elettronica.