Run-time Partial Reconfiguration on Xilinx FPGAs Case Study - Teräspuro, Petri (fi=Turun yliopisto|en=University of Turku|, 2017)
For decades reconfigurable Field Programmable Gate Arrays (FPGAs) have been used as test platforms to prototype functionality in Application-Specific Integrated Circuits (ASIC). Nowadays logic functionality for systems are produced directly with FPGAs, when large amounts of circuits are not possible or reasonable to manufacture due to costs incurred by high NRE costs in ASIC design and test fabrication. FPGA’s reconfigurable nature has raised an interesting research topic of partially reconfiguring the circuit’s functionality by changing a small extend of the operating logic. As a natural extension an interest has been growing for reconfiguration taking place at run-time. The goal of which can be low-power, self-correcting or smaller circuits to perform the same functionality as many times larger equivalents. Purpose of this thesis is to introduce and study run-time reconfiguration and with the case study demonstrate some of claimed benefits that can be derived with dynamic reconfiguration. The emphasis is on Xilinx Virtex FPGA platform, as well as the Xilinx created partial reconfiguration design flow, which is intended to facilitate partial reconfiguration in commercial applications. The case study consists of a Xilinx Microblaze processor based run-time reconfiguration platform where a simple parallel channel is simulated. The channel has Parity, Hamming and BCH encoder and decoder pairs and the Error-Correction Coding scheme can be swapped during run-time by the C-code running on the MicroBlaze Soft-Core processor via the built-in ICAP interface. A error injector is also used in the channel simulation to demonstrate the error correction capability of Hamming and BCH coding. The main goal was to create the simple processor based platform for partial reconfiguration prototyping, with the used Virtex-5 Digilent Genesys board, that could be used in further study on partial reconfiguration. The approach was to first create the platform where a given digital circuit could be introduced as a processor peripheral and then create arbitrary logic to with varying complexity to find out power requirements, reconfiguration time and other relevant data. The results of the case study show some insight on how FPGA dynamic reconfiguration could be used to solve known challenges in static design approach for digital circuits.

Kenttäohjelmoitavia porttipiirejä eli FPGA-piirejä on käytetty vuosikymmeniä sovelluskohtaisten piirien toiminnallisuuden testialustana. Nykyään niillä tuotetaan jo suoraan toimintalogiikkaa järjestelmiin, kun ei ole mahdollista tai viisasta valmistaa suuria määriä piirejä, kuten ASIC-piirien valmistus yleensä edellyttää, jotta niiden suunnitteluja kehityskulut saadaan katettua. FPGA-piirien uudelleenohjelmoitavasta luonteesta on noussut kiinnostavaksi tutkimusaiheeksi osittainen uudelleenohjelmoitavuus, jossa piirin toiminnallisuutta muutetaan vain pieneltä osin. Tämän luonnollisena jatkeena on noussut kiinnostus ajonaikaisesti tapahtuvaan toimintalogiikan muuttamiseen, jolla tavoitellaan muun muassa vähävirtaisia, itsekorjaantuvia tai pienempiä piirejä suorittamaan samaa toiminnallisuutta kuin useita kertaluokkia suuremmat piirit. Tämän tutkielman tarkoituksena on esitellä ja tutkia ajonaikaista uudelleenohjelmointia ja tapaustutkimuksen kanssa selvittää mahdollisia hyötyjä, joita ajonaikainen konfiguraatio tuo järjestelmään. Painotus on Xilinxin Virtex FPGA-alustalla sekä Xilinxin luomalla ohjelmointivuoalle, jonka on tarkoitus helpottaa osittaisen uudelleenkonfiguroinnin käyttöä kaupallisissa tuotteissa. Tapaustutkimusta varten työssä toteutetaan Xilinx MicroBlaze pohjainen ajonaikainen uudelleenkonfigurointi alusta, jossa yksinkertaista rinnakkaista kanavaa simuloidaan. Kanavaa varten suunniteltiin ja toteutettiin pariteetti, hamming, BCH koodeja käyttävät kooderi sekä dekooderi parit. Virheenkorjausmallia voidaan vaihtaa ajonaikaisesti piirillä C-koodilla, joka pyörii MicroBlaze prosessorilla käyttäen piirin sisäisen konfiguraation porttia (ICAP). Virheeninjektointi toteutettiin myös tapaustutkimuksessa, jolla testattiin erityisesti Hamming ja BCH koodauksen virheenkorjauskykyä. Päätavoite tapaustutkimukselle oli luoda yksinkertainen protojärjestelmä käytetylle Virtex-5 Digilent Genesys alustalle, jota voitaisiin jatkossa käyttää uudellenohjelmoitavuuden jatkotutkimuksessa. Lähestymistapa oli luoda ensin prosessoripohjainen alusta, jolle digitaalinen piiri voitaisiin lisätä oheislaitteena, ja selvittää tätä kautta mm. piirin virtavaatimukset ja uudelleenohjelmointiin tarvittava aika. Tapaustutkimuksen tulokset antavat käsityksen siitä, miten FPGA piirien ajonaikaisella uudelleenohjelmoinnilla voidaan ratkaista haasteita, joita on digitaalisten piirien staattisessa mallissa.