2010-05-29 17 views
6

Per la programmazione di FPGAS, è possibile scrivere le proprie routine di percorso &? [Il punto non è che il mio sarebbe meglio; il punto è se ho la libertà di farlo) - oppure l'output dello stage route & in bitfile non documentati, mi costringe essenzialmente a utilizzare strumenti proprietari?FPGA Place & Route

Grazie!

risposta

9

C'è stata qualche discussione su comp.arch.fpga in passato. La conclusione è generalmente che, a meno che non si desideri attirare un'intensa azione legale dalle società FPGA, probabilmente non si vuole fare qualcosa del genere. i formati bitfile sono segreti strettamente custoditi delle aziende FPGA e probabilmente dovresti capire il formato del file per fare ciò che vuoi fare. Ciò implica che sarà necessario decodificare il formato e che (se rendi pubblico lo strumento in qualsiasi modo) ti farebbe una causa in breve tempo.

Aggiungerò che probabilmente ci sono file intermedi e che probabilmente non leggereste o scrivete il bitfile stesso per fare ciò che volete fare, ma quei file intermedi tendono a non essere documentati. Leggi l'EULA per il tuo strumento di sintesi FPGA (ISE di Xilinx, per esempio) - qualsiasi tipo di reverse engineering è severamente vietato. Sembra che l'unico modo in cui avremo mai alternative open source in questo spazio è che emerga un'architettura FPGA open source.

+6

Grazie. E un'architettura FPGA open source è BADLY necessaria per molte ragioni. La situazione attuale è quasi come se solo iOS fosse l'unico sistema operativo al mondo. –

+0

I tentativi per le architetture FPGA open source sono già in via di definizione. Ad esempio, abbiamo "ZUMA: un'architettura aperta di sovrapposizione FPGA" http://www1.cse.wustl.edu/~roger/565M.f12/4699a093.pdf come un inizio interessante In realtà, questo potrebbe essere ancora più interessante http://www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-43.pdf –

3

Sono d'accordo con annccodeal, ma per amplificare un po ', su Xilinx, ci possono essere alcuni modi per farlo. Il formato file XDL consente (o utilizzato per consentire) il posizionamento e il routing espliciti. Inoltre, dovrebbe essere possibile scrivere l'editor FPGA per implementare il routing personalizzato.

Per quanto riguarda il posizionamento, esiste una ricca infrastruttura per limitare il mapping tecnologico della logica ai primitivi e per controllare il posizionamento di tali primitivi. Ad esempio, i vincoli LUT_MAP possono controllare la mappatura della tecnologia e i vincoli LOC e RLOC possono determinare il posizionamento. In pratica, questi consentono al progettista esperto un grande controllo sul modo in cui un progetto viene implementato senza richiedere loro di duplicare lo sviluppo del software per secoli per generare direttamente un flusso di bit.

Potresti anche trovare interessante lo stato dell'arte del software di ricerca CAD FPGA come VPR. Secondo me, questi sono sfidati a tenere il passo con gli strumenti del fornitore che devono far fronte a moderni FPGA eterogenei con 6 LUT, blocchi DSP, ecc.

Happy hacking.