"Eesti Teadusfondi uurimistoetus" projekt ETF6717
ETF6717 (ETF6717) "FPGA põhine disaini valideerimiskeskkond (1.01.2006−31.12.2009)", Peeter Ellervee, Tallinna Tehnikaülikool, Infotehnoloogia teaduskond.
ETF6717
FPGA põhine disaini valideerimiskeskkond
FPGA Based Environment for Design Validation
1.01.2006
31.12.2009
Teadus- ja arendusprojekt
Eesti Teadusfondi uurimistoetus
ETIS klassifikaatorAlamvaldkondCERCS klassifikaatorFrascati Manual’i klassifikaatorProtsent
4. Loodusteadused ja tehnika4.7. Info- ja kommunikatsioonitehnoloogia 2.2. Elektroenergeetika, elektroonika (elektroenergeetika, elektroonika, sidetehnika, arvutitehnika ja teised seotud teadused)100,0
PerioodSumma
01.01.2006−31.12.2006164 400,00 EEK (10 507,08 EUR)
01.01.2007−31.12.2007164 400,00 EEK (10 507,08 EUR)
01.01.2008−31.12.2008164 400,00 EEK (10 507,08 EUR)
01.01.2009−31.12.2009157 824,00 EEK (10 086,79 EUR)
41 608,03 EUR

Digitaalsüsteemid funktsionaalsuse kontrolli simuleerimise teel tuntakse valideerimisena. Töö põhieesmärgiks on välja töötada prototüüpkeskkond simuleerimise riistvaraliseks kiirendamiseks - emuleerimiseks. Selle aluseks on eeldus, et riistvara kirjelduskeeles (VHDL, Verilog, SystemC) esitatud süsteemi spetsifikatsiooni on võimalik tükeldada selliselt, et erinevatele abstraktsioonitasemetele vastavad stiilid oleksid modelleeritavad erinevat tüüpi simulaatoritel/emulaatoritel. Eelkõige võib eeldada kolme stiili eristumist: 1) Register-siirete tase, mis on sünteesitav ja seega otseselt realiseeritav FPGAs. 2) Käitumuslik (funktsionaalne) tase, mis on teatud tingimustel sünteesitav kõrtaseme sünteesi vahenditega, kuigi tulemused ei pruugi olla optimaalsed. 3) Ülejäänud osa, sisuliselt tarkvara, on oma abstraktsusest kaotanud riistavaraga seotu ja on seega kompileeritav kasutatava protsessori jaoks, mis omakorda lubaks kasutada lihtsustatud simulaatoreid. Põhiülesanded ja eeldatavad tulemused võiks üles lugeda jägnevalt: 1) Metoodika ja vahendid riistvara kirjelduskeelte konstruktsioonide grupeerimiseks sünteesitavuse seisukohalt. 2) Arhitektuursed lahendused täitursõlmede (protsessorite) realiseerimiseks - käsustik, mälud, liidesed - ja meetodid nende kasutatavause hindamiseks erinevail abstraktsiooni tasemeil. 3) Lihtsustatud simulatsioonimehhanismid katmaks realiseeritavaid konstruktsioone (mida on piiratum hulk keelte täielike simulaatoritega võrreldes). 4) Liidesed ja sünkronisatsioonimehhanismid eri tüüpi täitursõlmede vahel. Tarkvara emulatsiooni protsessi juhtimiseks. 5) Juhtnöörid (disainivoog) lähtekirjelduse tükeldamiseks, sünteesiks/kompileerimiseks ja emuleerimise juhtimiseks.
Validation is usually referred to as checking the functionality of a digital system by the means of simulation. The main goal of the project is to develop an environment for simulation speedup in hardware (emulation). This is based on assumptions that a system specification, described in a hardware description language (VHDL, Verilog, SystemC), can be partitioned in a such way that styles corresponding to different abstraction levels could be modeled using different simulators/emulators. Three styles can be outlined as follows: 1) Register-transfer level that is synthesizable and therefore directly implementable on FPGA. 2) Behavioral (functional) level that is synthesizable by high-level synthesis tools under certain circumstances. It should be noted that the synthesis results may not be optimal. 3) The rest, essentially software, has lost hardware related issues from its abstraction and is therefore compilable for the used processor. This allows to use simplified simulators. The main tasks and expected results are as follows: 1) Methodology and tools to group constructions of hardware description languages on the bases of synthesizability. 2) Architectural solutions how to implement execution units (processors) – instruction set, memories, interfaces – and methods to evaluate their usefulness at different abstraction levels. 3) Simplified simulation engines that cover the constructions to be implemented (there is a smaller number of them compared against full scale simulators). 4) Interfaces and synchronization mechanisms between execution units of different types. Software to control the emulation process. 5) Instructions (scripts) how to partition the initial description, to synthesize/compile, and how to control emulation.