AXI-Stream VIP Optimization for Simulation Acceleration : a Case Study
Kokkonen, Eetu (2021)
Kokkonen, Eetu
2021
Sähkötekniikan DI-ohjelma - Master's Programme in Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-04-13
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202103292722
https://urn.fi/URN:NBN:fi:tuni-202103292722
Tiivistelmä
The purpose of this thesis was to optimize Nokia’s already existing AXI-Stream verification IP to perform better in simulation acceleration and compose coding guidelines for developing test environments that can be used in simulation acceleration. The simulation acceleration occurs by using an emulator to simulate a design under test and a workstation or a server to simulate the test environment. The emulator is a supercomputer specifically designed for verification purposes and its properties enable more efficient and faster simulation performance over traditional simulation. The traditional simulation occurs by using a workstation to simulate both the test environment and the design under test. The simulation acceleration is used to shorten verification time of digital circuits and IP-blocks. It makes possible to develop the circuits faster since time used in verification can take up to 80 percent of the total time used in the whole development project.
Functional verification and its execution methods such as simulation, simulation acceleration and formal verification are discussed after introduction. Thus, an overall picture of the context of the simulation acceleration is pursued to be formed. Theory also covers presentation of SystemVerilog programming language and Universal Verification Methodology because the test environment and AXI-Stream verification IP are made using them.
In the traditional simulation the used test environment consists usually of one domain whereas in simulation acceleration the test environment is divided into two domains. The division is done to synthesizable and non-synthesizable domains of which the former is simulated in the emulator and latter in the workstation. The synthesizable domain includes the design under test and part of simulator and emulator’s communication interface. The non-synthesizable domain contains the other part of the communication interface and remaining test environment components such as input signal generation and result checking. In this thesis the AXI-Stream verification IP operates as the communication interface in the test environment.
The benefit that can be achieved with simulation acceleration is affected by relation of the time used to simulate the test environment versus the design under test, size of the design, length of test and the communication between the simulator and the emulator. The AXI-Stream VIP can be used to affect the efficiency of the communication in the used test environment. It was optimized to transfer larger data amounts in less frequent manner between the simulator and the emulator which decreases the communication time when compared to the initial verification IP version.
The optimized verification IP was compared to initial version using four tests. The longest test provided good results because the simulation run time almost halved. There were only marginal differences in results with the three other tests because these tests were relatively short and did not thus suit to simulation acceleration as well as the long tests. Työn tarkoitus oli optimoida Nokian olemassa olevaa AXI-Stream varmennuslohkoa soveltumaan paremmin simulointikiihdytykseen sekä koota ohjelmointiohjeistus simulointikiihdytystä varten rakennettaville testiympäristöille. Simulointikiihdytyksessä testattava lohko simuloidaan emulaattorilla ja testiympäristö työasemalla tai palvelimella. Emulaattori on erityisesti varmennusta varten suunniteltu supertietokone, jonka ominaisuudet mahdollistavat tehokkaamman ja nopeamman simuloinnin perinteiseen simulointiin verrattuna. Perinteisessä simuloinnissa sekä testattava lohko että testiympäristö simuloidaan työasemalla tai palvelimella. Simuloinnin kiihdytyksellä pyritään lyhentämään digitaalisten piirien sekä IP-lohkojen testaamiseen kuluvaa aikaa. Sitä hyödyntämällä piirien kehitystä voidaan nopeuttaa, sillä varmennukseen voi kulua kehitysprojekteissa aikaa jopa 80 prosenttia koko projektiin käytetystä ajasta.
Johdannon jälkeen työssä käydään läpi funktionaalista varmennusta ja sen toteutuksen tapoja kuten simulointia, simulointikiihdytystä sekä formaalia varmennusta. Näin pyritään luomaan kuva simulointikiihdytyksen kontekstista sekä käytön päämärästä. Teoriaosuudessa esitellään myös SystemVerilog-ohjelmointikieltä sekä UVM-varmennusmenetelmää, sillä työssä käytetty testiympäristö sekä AXI-Stream varmennuslohko on rakennettu niiden avulla.
Perinteisessä simuloinnissa käytetty testiympäristö koostuu yleensä yhdestä kokonaisuudesta, kun taas simulointikiihdytyksessä testiympäristö on jaettu kahteen osaan. Jako tehdään syntetisoitavaan ja ei-syntetisoitavaan osaan, joista syntetisoitava osa simuloidaan emulaattorissa ja ei-syntetisoitava osa työasemalla. Syntetisoitava osa sisältää testattavan lohkon sekä osan simulaattorin ja emulaattorin kommunikointirajapinnasta. Ei-syntetisoitava osa sisältää toisen puolen kommunikaatiorajapinnasta sekä muut testiympäristön osat, kuten signaalien luonnin ja tuloksen tarkastuksen. AXI-Stream varmennuslohko toimii työssä käytetyssä testiympäristössä simulaattorin ja emulaattorin kommunikointirajapintana.
Simulointikiihdytyksellä saavutettuun hyötyyn vaikuttaa testiympäristön sekä testattavan lohkon simulointiaikojen suhde, testattavan lohkon koko, testin pituus sekä emulaattorin ja simulaattorin välinen kommunikointi. AXI-Stream varmennuslohkolla voidaan vaikuttaa kommunikoinnin tehokkuuteen. Varmennuslohko optimoitiin lähettämään harvemmin suurempia määriä dataa kerralla, mikä vähentää kommunikointiin kuluvaa aikaa sen alkuperäiseen versioon verrattuna.
Optimoitua varmennuslohkoa verrattiin alkuperäiseen versioon neljällä testillä. Pisimmän testin kohdalla tulos oli hyvä, sillä simulointiin kulunut aika lähes puolittui. Kolmen muun testin kohdalla eroa alkuperäiseen ei juuri ollut, koska testit olivat melko lyhyitä ja eivät täten sovellu simulointikiihdytykseen yhtä hyvin kuin pitkät testit.
Functional verification and its execution methods such as simulation, simulation acceleration and formal verification are discussed after introduction. Thus, an overall picture of the context of the simulation acceleration is pursued to be formed. Theory also covers presentation of SystemVerilog programming language and Universal Verification Methodology because the test environment and AXI-Stream verification IP are made using them.
In the traditional simulation the used test environment consists usually of one domain whereas in simulation acceleration the test environment is divided into two domains. The division is done to synthesizable and non-synthesizable domains of which the former is simulated in the emulator and latter in the workstation. The synthesizable domain includes the design under test and part of simulator and emulator’s communication interface. The non-synthesizable domain contains the other part of the communication interface and remaining test environment components such as input signal generation and result checking. In this thesis the AXI-Stream verification IP operates as the communication interface in the test environment.
The benefit that can be achieved with simulation acceleration is affected by relation of the time used to simulate the test environment versus the design under test, size of the design, length of test and the communication between the simulator and the emulator. The AXI-Stream VIP can be used to affect the efficiency of the communication in the used test environment. It was optimized to transfer larger data amounts in less frequent manner between the simulator and the emulator which decreases the communication time when compared to the initial verification IP version.
The optimized verification IP was compared to initial version using four tests. The longest test provided good results because the simulation run time almost halved. There were only marginal differences in results with the three other tests because these tests were relatively short and did not thus suit to simulation acceleration as well as the long tests.
Johdannon jälkeen työssä käydään läpi funktionaalista varmennusta ja sen toteutuksen tapoja kuten simulointia, simulointikiihdytystä sekä formaalia varmennusta. Näin pyritään luomaan kuva simulointikiihdytyksen kontekstista sekä käytön päämärästä. Teoriaosuudessa esitellään myös SystemVerilog-ohjelmointikieltä sekä UVM-varmennusmenetelmää, sillä työssä käytetty testiympäristö sekä AXI-Stream varmennuslohko on rakennettu niiden avulla.
Perinteisessä simuloinnissa käytetty testiympäristö koostuu yleensä yhdestä kokonaisuudesta, kun taas simulointikiihdytyksessä testiympäristö on jaettu kahteen osaan. Jako tehdään syntetisoitavaan ja ei-syntetisoitavaan osaan, joista syntetisoitava osa simuloidaan emulaattorissa ja ei-syntetisoitava osa työasemalla. Syntetisoitava osa sisältää testattavan lohkon sekä osan simulaattorin ja emulaattorin kommunikointirajapinnasta. Ei-syntetisoitava osa sisältää toisen puolen kommunikaatiorajapinnasta sekä muut testiympäristön osat, kuten signaalien luonnin ja tuloksen tarkastuksen. AXI-Stream varmennuslohko toimii työssä käytetyssä testiympäristössä simulaattorin ja emulaattorin kommunikointirajapintana.
Simulointikiihdytyksellä saavutettuun hyötyyn vaikuttaa testiympäristön sekä testattavan lohkon simulointiaikojen suhde, testattavan lohkon koko, testin pituus sekä emulaattorin ja simulaattorin välinen kommunikointi. AXI-Stream varmennuslohkolla voidaan vaikuttaa kommunikoinnin tehokkuuteen. Varmennuslohko optimoitiin lähettämään harvemmin suurempia määriä dataa kerralla, mikä vähentää kommunikointiin kuluvaa aikaa sen alkuperäiseen versioon verrattuna.
Optimoitua varmennuslohkoa verrattiin alkuperäiseen versioon neljällä testillä. Pisimmän testin kohdalla tulos oli hyvä, sillä simulointiin kulunut aika lähes puolittui. Kolmen muun testin kohdalla eroa alkuperäiseen ei juuri ollut, koska testit olivat melko lyhyitä ja eivät täten sovellu simulointikiihdytykseen yhtä hyvin kuin pitkät testit.