Abstract-Medan FPGA-baserade hårdvaruacceleratorer har upprepade gånger visat sig vara ett livskraftigt alternativ, är deras programmerbarhet fortfarande ett stort hinder för deras bredare acceptans av programkod utvecklare. Dessa plattformar är vanligtvis programmerade i en låg nivå maskinvarubeskrivningsspråk, en färdighet som inte är vanlig bland programutvecklare och en process som ofta är tråkig och felbenägen. Programmering av FPGA från språk på hög nivå skulle underlätta integrationen med programvarusystem och öppna upp hårdvaruacceleratorer för ett bredare spektrum av applikationsutvecklare. I detta papper presenterar vi en stor översyn för Riverside Optimizing Compiler för konfigurerbara kretsar (ROCCC) utformad för att skapa hårdvaruacceleratorer från C-program. Nya tillägg till ROCCC inkluderar (1) intuitiv modulär nedifrån-och-upp-design av kretsar från C, och (2) separation av kodgenerering från specifika FPGA-plattformar. De tillägg vi gör inte införa någon ny syntax till C-koden och upprätthålla de höga nivå optimeringar från ROCCC-systemet som genererar effektiv kod. Modulkoden vi stöder fungerar identiskt som programvara eller hårdvara. Dessutom möjliggör vi användarkontroll av maskinvaruoptimering såsom systolisk arraygenerering och temporal gemensam subexpression eliminering. Vi utvärderar kvaliteten på ROCCC 2.0-verktyget genom att jämföra det med handskriven VHDL-kod. Vi visar jämförbara klockfrekvenser och 18% högre genomströmning. Produktivitetsfördelarna med ROCCC 2.0 utvärderas med hjälp av mätvärdena för rader av kod och programmeringstid som visar i genomsnitt 15x förbättring jämfört med handskriven VHDL.
Mest specifikt, Riverside Optimizing Compiler för omkonfigurerbara kretsar (ROCCC) 2.0 REF stöder en delmängd av C och producerar VHDL hårdvaruacceleratorer.
Designing Modular Hardware Accelerators in C with ROCCC 2.0
{'venue': '2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines', 'journal': '2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines', 'mag_field_of_study': ['Computer Science']}