[LugBS] Nuovi Arduini
Diego Guella
diego.guella a sircomtech.com
Mer 23 Maggio 2018 11:07:20 UTC
Il 23/05/2018 09:39, Enrico Colombini ha scritto:
> On 23-May-18 08:40, Diego Guella wrote:
>> Ricordati di queste se ti interessano le FPGA:
>>
>> https://www.xilinx.com/products/boards-and-kits/arty.html
>> https://www.xilinx.com/products/boards-and-kits/1-elhae0.html
>>
>> Sono in vendita già da parecchio tempo, e ce ne sono altre con prezzi
>> sotto i 100$
>
> Un paio d'anni fa mi sono già studiato un po' di VHDL con questo :
>
> http://papilio.cc/index.php?n=Papilio.PapilioOne
Vedo che mettono molto l'accento "Open Source" su questa board, ma credo
questo ambito si riferisca solo ai file del progetto.
Ad esempio, rendono disponibile un file UCF, che è un file da dare in
pasto ai tool di Xilinx, i quali però non sono open source.
E quel file non sarà "digerito" dai tool che gestiscono il progetto per
una FPGA Altera/Intel, come quella sulla board Arduino.
I file di layout della board, forse invece potrebbero essere abbastanza
"condivisibili" tra tool diversi (ma non conosco i software CAD open
source).
Da questo punto di vista, tutte le evaluation board non sono molto
differenti e sono già allo stesso livello di "open-source ready" (e per
forza, altrimenti non ci potresti fare granchè, nemmeno valutarne
l'acquisto!).
Tu cosa usavi per progettare su quella board? I tool di Xilinx (ISE,
EDK, ecc..) o altro?
> Del nuovo Arduino mi interessa vedere il sistema di costruzione a
> moduli, accessibile (dicono) anche ai non elettronici.
>
> E soprattutto vedere se si possano anche creare nuovi moduli.
Non so se tu abbia già lavorato con la toolchain di Xilinx, ma quella ti
permette (con Xilinx Platform Studio, XPS, incluso in EDK) di gestire il
tuo progetto in un modo abbastanza familiare (alla "PC"), incentrato sul
soft-processor MicroBlaze (è un processore che viene realizzato
all'interno dell'FPGA, creando registri, ALU, e tutto il resto usandone
la logica interna) e un bus di sistema principale, al quale andrai a
collegare tutte le tue periferiche che faranno il "lavoro sporco" in HDL
(che è il linguaggio con cui si programma l'hardware: tra i più usati
VHDL, Verilog, e ora SystemVerilog, SystemC, ...).
XPS è in realtà simile a un IDE, che lancia di volta in volta altri tool
che stanno sotto (infatti, su Winzoz viene installato anche Cygwin).
Con XPS puoi aggiungere periferiche al sistema (drag & drop), collegarle
sul bus (un click), assegnare loro un indirizzo, e poi gestirle dal
MicroBlaze programmando in C.
Poi ti puoi creare i tuoi nuovi moduli/periferiche, e gestirli con la
stessa interfaccia.
Molti moduli sono già pronti, e utilizzabili liberamente a patto che su
resti su Xilinx (incluso il Microblaze).
Il compilatore per il Microblaze (che viene gestito dal tool) si chiama
"mb-gcc", direi che ricorda qualcosa no? ;-)
Puoi anche far girare Linux sul Microblaze, anche se io l'ho sempre
usato senza OS. Al giorno d'oggi non dovrebbe essere troppo difficile.
Quindi diciamo che, usando le periferiche già pronte, anche per un non
elettronico, ma informatico, è abbastanza semplice da capire e usare.
Il problema è/era nell'alto costo del tool: Xilinx Platform Studio costa
500$ di licenza da solo.
Il bello è, che con queste "nuove" schedine hai il tool incluso nel
prezzo, anche se lockato sul modello di FPGA specifico della board che
hai acquistato!
Il nuovo Arduino, integrando una FPGA Intel/Altera, dovrà per forza di
cose legarsi ai loro tool, e quindi non sarai "libero" di passare a
Xilinx, o Lattice, ecc...
Oppure avranno inventato un IDE loro, open-source, e con magari una
libreria di moduli/periferiche già pronti?
> Purtroppo per gli FPGA non mi pare esista uno strumento open source
> paragonabile alla toolchain gcc e bisogna ogni volta dipendere dal
> tool dello specifico costruttore con relative licenze, attivazioni,
> incompatibilità, obsolescenze programmate, ecc.
Già.
Qui non è come con GCC che compili da C e finisci direttamente in codice
macchina x86, ma c'è un altro passaggio di mezzo, del quale non credo ci
libereremo presto: il passaggio da HDL a RTL (per i non addetti ai
lavori: RTL è un linguaggio che descrive i collegamenti tra elementi
logici digitali semplici, come porte logiche, flip-flop, ecc), e da RTL
al bitstream che configura tutta la logica interna dell'FPGA (questo è
simile al "binario eseguibile" che noi diamo in pasto ai nostri x86, e
viene caricato dall'FPGA all'accensione da una memoria non volatile).
I tool del produttore possono fare la sintesi HDL -> RTL (sintesi si può
tradurre come "compilazione" per i non addetti), oppure si possono usare
altri tool più costosi ed evoluti.
Ma la parte finale, il Place&Route e configurazione delle celle logiche
dell'FPGA, deve ancora essere fatta da un tool del produttore.
Oltretutto, se usi XPS con i moduli/periferiche comodi che ti danno
loro, questi sono sempre su licenza d'uso gratuita, a patto che tu usi
il tutto su un device Xilinx.
Se ti realizzi tutto da solo in HDL, potresti passare a un altro
produttore, ma appunto perderesti la comodità dei "blocchetti a moduli"
e la facilità d'uso anche per un non-elettronico.
Per quanto riguarda le "obsolescenze programmate", non credo facciano
parte del mondo degli FPGA: ad esempio, la Spartan-3 presente sulla
board che hai citato è ancora supportata, forse non più venduta così
com'è, ma sicuramente viene venduta nelle "nuove" versioni Spartan-3E e
Spartan-3A.
Si tratta comunque di periferiche vecchie ben più di 10 anni, che in
alcune incarnazioni finiscono su satelliti, aerei, ecc.: tutte cose che
hanno una vita decisamente lunga.
> Sono curioso di vedere che approccio abbiano scelto e se ciò potrebbe
> davvero 'democratizzare' lo sviluppo per FPGA come dicono.
Democratizzarlo nel senso di farlo conoscere alle masse, speriamo!
Ma arrivare al livello di avere tutta una toolchain open-source... Credo
che siamo ancora mooolto lontani, di decenni a questo risultato.
Primo, tutti i produttori dovrebbero rendere disponibile dei file che
descrivono l'architettura interna dei loro FPGA, con licenze di utilizzo
libere.
Poi, si dovrebbe sviluppare una community per, appunto, realizzare
questi tool open-source indipendenti: si tratta di valanghe di ore di
ingegneri elettronici (e non... il Place & Route va a toccare problemi
matematici molto complessi) a lavoro.
Penso sia più vicino a un'utopia, ma non si sa mai!
Ciao,
Diego
P.S.: Ho cercato anch'io di descrivere meglio alcune parti. Per te
saranno ovvie, ma così rendiamo il nostro discorso un po' più
comprensibile anche ai non-elettronici ;-)
Maggiori informazioni sulla lista
Lug
|