I produttori di FPGA affermano che se si utilizza un "soft core", ovvero un microcontrollore scritto in VHDL, la progettazione di VHDL può essere implementata su qualsiasi hardware FPGA programmabile futuro, liberandoti così dalla probabilità che un particolare componente hardware si spenga di produzione.
Per acquistare tale argomento, dovresti presumere che l'hardware programmabile continuerà a essere disponibile nel tuo intervallo di tempo (che è probabile) e continuerà a essere disponibile in dimensioni, costi e tensioni dei chip che si adattano al tuo prodotto (che trovo più difficile credere). Per usare questo approccio, dovresti accettare che potresti dover fare un nuovo design hardware per accettare un nuovo pacchetto, che in qualche modo sconfigge il tuo oggetto senza grandi cambiamenti.
Il mio approccio, e il mio consiglio sarebbe, di isolare l'elaborazione del controllo dal resto dei circuiti su una piccola scheda e definire la propria interfaccia ad essa, minore è il numero di pin, meglio è. Forse SPI crea un'interfaccia adatta, o un bus nybble con lettura / scrittura dei dati e indirizzi stroboscopici. Quindi, se il processore prescelto diventa obsoleto durante la vita del prodotto, devi solo riprogettare e testare una scheda piccola, anziché una scheda grande con funzioni analogiche vitali sul prodotto.
Programmare il processore di controllo in C. Suddividere il codice rigorosamente in algoritmo generico e moduli di interfaccia hardware. Quindi, se particolari bit di hardware devono cambiare, hai isolato la riscrittura su un piccolo numero di moduli e non stai eseguendo la scansione di tutto il codice.
Scegli una tensione adatta, preferirei 3.3v a 5v per esempio.
Quando scegli la tua piccola scheda di controllo, potresti fare di peggio che scegliere un fattore di forma che corrisponda a una scheda di sviluppo Arduino o PIC disponibile. Quindi, il tuo sviluppo e la prototipazione ottengono un vantaggio e potresti persino iniziare la produzione a basso costo con i moduli acquistati prima di progettare una sostituzione a costi inferiori.