AlienCortex, una board compatibile con Arduino multiprocessore

AlienCortex-AV-Front_web

I microcontrollori sono molto utili in tanti contesti ma alle volte risultano fin troppo spartani. Una congrua via di mezzo tra un processore di ultima generazione ed un microcontrollore sono le FPGA, vediamo quindi una soluzione compatibile con Arduino.

Se avete bisogno di una potenza di calcolo più consistente di quella che può offrirvi un normale microcontrollore allora Alien Cortex AV è la soluzione che fa per voi. Sotto tanti punti di vista simile ad Arduino e compatibile con esso e le relative estensioni, Alien Cortex AV offre una board molto più sofisticata appositamente pensata per applicazioni che richiedono maggiore potenza di calcolo e versatilità. Vediamone le principali caratteristiche tecniche:

- FPGA:  Xilinx PQ208 Spartan 3e (500K)

- RAM:  512KB 133Mhz 16 bit Synchronous SRAM

- SPI FLASH: 1MB (8 megabit) Numonyx Flash EEPROM per la configurazione della FPGA

- due porte da 5V compatibili con il joystick Atari

- ingressi PS/2 per tastiera e mouse

- sedici ingressi analogici da 5V

- 54 pins da 5V di vario tipo: Digital/PWM I/O, compatibili con Arduino Mega128/256

- jack 1/8" per audio stereo digitale 

- un connettore VGA da 15 pin

- quattro LED programmabili

- quattro tasti programmabili

- un tasto di reset

- una porta Xilinx JTAG (compatibile con il cavo USB per la piattaforma Xilinx)

La board di Alien Cortex AV è mostrata nella figura sottostante.

L’uso di una FPGA (Field Programmable Gate Array) costituscie la differenza sostanziale rispetto ad Arduino. Anche per Alien Cortex sono disponibili delle estensioni, chiamate "cores" come per Arduino ci sono le "shields". Le varie cores non sono altro che una opportuna riprogrammazione della FPGA per la gestione di appositi dispositivi. Ci sono ad esempio cores multi  processore come la Alien Xtreme-R ed altre per la riproduzione di midi (in figura sottostante). Il codice per riprogrammare l’FPGA è open source e compatibile con il software gratuito Xilinx’s ISE Webpack.

La differenza tra un microcontrollore ed una FPGA, senza entrare troppo nel dettaglio, è la seguente: il microcontrollore è configurato per svolgere determinate operazioni il cui controllo viene eseguito tramite il linguaggio assembler (ciò l’insieme di istruzioni messe a disposizione dal costruttore), la FPGA può essere programmata per svolgere le operazioni desiderate ma non ha una struttura logica fissa predefinita, bensì è composta da una certo numero di porte logiche che possono essere usate per i propri scopi. Quindi in base a come viene programma, la FPGA più svolgere operazioni diverse con prestazioni diverse.

Ovviamente la scelta tra FPGA o microcontrollore dipende da tanti fattori. Per prima cosa le FPGA consumano molto di più, quindi non sono adatte nei contesti in cui il consumo energetico è un fattore determinante. La differenza di costo è notevole anche se col passare del tempo le FPGA stanno diventando più economiche. Il linguaggio di programmazione necessario è diverso. Esistono compilatori C anche per FPGA ma a pagamento, ed il consiglio è sempre quello di usare VHLD o Verilog per avere un controllo migliore sul risultato finale.

 

Abbiamo visto una interessante proposta, che non necessariamente deve sostituire Arduino ma può benissimo affiancarlo in molti contesti. Come sempre non esiste una soluzione definitiva e la scelta dell’hardware dipende fortemente dai vincoli di progetto, quindi Alien Cortex AV è uno strumento in più a nostra disposizione ma non la panacea di tutti i mali.

Arduino è disponibile da Farnell

3 Comments

  1. Fabrizio87 19 ottobre 2011
  2. telegiangi61 19 ottobre 2011
  3. Berni 19 ottobre 2011

Leave a Reply