Jul 30, 2023
Scrivi in PipelineC per FPGA
La cosa migliore degli FPGA (field-programmable gate array), quando si dispone di un'applicazione estremamente parallela, è che tutto funziona in parallelo. La cosa peggiore degli FPGA, quando ne hai bisogno
La cosa migliore degli FPGA (field-programmable gate array), quando si dispone di un'applicazione estremamente parallela, è che tutto funziona in parallelo. La cosa peggiore degli FPGA, quando è necessario che molte cose avvengano in sequenza, è che tutto funziona in parallelo. Se hai un calcolo a più passaggi, ad esempio, devi suddividerlo in blocchi, capire i tempi tra di loro e assicurarti che ogni blocco venga cancellato prima che gli vengano forniti nuovi dati. Si tratta di pipeline e prendersi cura personalmente di tutti i dettagli di basso livello è una delle cose che a volte possono rendere FPGA una parola di quattro lettere che inizia con "F".
PipelineC di [Julian Kemmerer] è un linguaggio simile al C che si compila in VHDL in modo da poterlo utilizzare in un FPGA e esegue il pipeline per te. Ha esempi di come lo useresti per costruire una semplice macchina a stati, e dopo aver scritto alcune centinaia di macchine a stati, saprai perché questa è una buona idea.
PipelineC non è l'unico linguaggio di sintesi di alto livello disponibile, ma si trova in una posizione interessante. Non si prende cura della memoria né definisce le interfacce. Si occupa solo del pipeline. Non l'abbiamo ancora provato, ma sembra che sarebbe interessante per progetti moderatamente complessi, dove la meccanica della segnalazione della pipeline è una seccatura, ma non è necessario un trattamento deluxe. Dai un'occhiata e, se ti piace, faccelo sapere (e [Julian], ovviamente).
Se vuoi tuffarti a capofitto nella pipeline, dai un'occhiata alla miniserie in due parti di [Al Williams].
Grafica della pipeline CC BY-SA 3.0 di CBurnett

