ASIC-suunnitteluvuo SystemC:stä piirikuviointiin



Samankaltaiset tiedostot
Aktiivisen melunhallintaprosessorin suunnittelu SystemC-kieltä ja korkean tason synteesiä käyttämällä

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

CADS Planner Electric perusteet

Python-ohjelmointi Harjoitus 2

c) loogiset funktiot tulojen summana B 1 = d) AND- ja EXOR-porteille sopivat yhtälöt

5. HelloWorld-ohjelma 5.1

LABORAATIOSELOSTUSTEN OHJE H. Honkanen

GeoGebra-harjoituksia malu-opettajille

Loogiset konnektiivit

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

F = AB AC AB C C Tarkistus:

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

ANALOGIAPIIRIT III/SUUNNITTELUHARJOITUS OSA 1

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

1 Asentaminen. 2 Yleistä ja simuloinnin aloitus 12/

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Sähköposti ja uutisryhmät

SPI-VÄYLÄN TOTEUTUS FPGA-PIIRILLE

Autentikoivan lähtevän postin palvelimen asetukset

6. Valitse avautuneesta ikkunasta Add-painike!

Laskuharjoitus 9, tehtävä 6

Simulaattorin asennus- ja käyttöohje

Sekvenssipiirin tilat

2 Konekieli, aliohjelmat, keskeytykset

Mitä Uutta - SURFCAM V5.1 Sisällysluettelo

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

KÄYTTÄJÄN KÄSIKIRJA OE/OSSPEAKER V KÄYTTÄJÄN KÄSIKIRJA OE/OSSPEAKER V.10.3 SISÄLLYSLUETTELO

Esimerkkitentin ratkaisut ja arvostelu

OHJE Jos Kelaimeen kirjautuminen ei onnistu Windows-koneilla

5. HelloWorld-ohjelma 5.1

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Kuva liikennemerkistä 1. Aleksanteri Numminen. ITKP101

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

BL40A1810 Mikroprosessorit, harjoitus 1

Suoritusten seuranta ja opiskelijan edistyminen

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Harjoitus 5: Simulink

MS-A0402 Diskreetin matematiikan perusteet

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

ELEC-C3240 Elektroniikka 2

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg

Siemens Webserver OZW672

F-Secure virustorjuntaohjelmiston käyttö

12. Javan toistorakenteet 12.1

Toinen harjoitustyö. ASCII-grafiikkaa 2017

RATKAISUT SIVU 1 / 15. Väriteemaan pääset käsiksi hieman eri tavoilla PowerPointin eri versioissa.

I2S-VÄYLÄLIITYNNÄN TOTEUTUS FPGA- PIIRILLE. Joel Junttila. Ohjaaja: Jukka Lahti

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

VHDL/Verilog/SystemC. Jukka Jokelainen

VHDL-piirikuvaus ja simulointi Quartus II ja ModelSim Altera Edition -ohjelmilla

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

LUMA Suomi kehittämisohjelma :53 Joustava yhtälönratkaisu Matemaattinen Ohjelmointi ja Yhtälönratkaisu

Tentti erilaiset kysymystyypit

KÄYTTÖOHJE SATEL I-LINK PC POINT-TO-MULTIPOINT OHJELMISTO

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

CipherLab CPT-8001L -tiedonkeruupäätteen käyttö Ecomin kanssa

TIETOKONETEKNIIKAN LABORAATIOT V2.0 VHDL ohjelmoinnin perusteet

Kannattaa opetella parametrimuuttujan käyttö muidenkin suureiden vaihtelemiseen.

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

Pörisevä tietokone. morsetusta äänikortilla ja mikrofonilla

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit

TiiMiMobile. KÄYTTÖOHJE v. 1.01

Toinen harjoitustyö. ASCII-grafiikkaa

Successive approximation AD-muunnin

NXT Infrapuna-sensori

Käyttäjän käsikirja. LIB 500 ja LIB 510 v Releasettelutyökalu Yleistä. ,NNXQDMRNDLOPRLWWDDHWWlNRKGHRQSlLYLWHWWlYl

Digitaalilaitteen signaalit

Autotallin ovi - Tehtävänanto

12. Javan toistorakenteet 12.1

CLASSIC WINTIME - TOIMITTAJAN ENNAKKOPERINTÄREKISTERIPÄIVÄ

Luento 4. Timo Savola. 21. huhtikuuta 2006

HP Photo Printing -pikaviiteopas

Kieliversiointityökalu Java-ohjelmistoon. Ohje

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Zeon PDF Driver Trial

MrSmart 8-kanavainen lämpötilamittaus ja loggaus, digitoija ja talletusohjelma

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

CAB Plan. Päivitys 4.5. Asiakas odottaa

BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

JOHDATUS ELEKTRONIIKKAAN. Oppitunti 2 Elektroniikan järjestelmät

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

MIKROAALTOUUNI VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Tuomas Karri i78953 Jussi Luopajärvi i80712 Juhani Tammi o83312

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

HP ProBook 430 G5 kannettavien käyttöönotto

Automaattitilausten hallinta

Konfiguraatiotyökalun päivitys

BaseMidlet. KÄYTTÖOHJE v. 1.00

Luentaohjelma M-Bus mittareille Versio 1.77 ja uudemmat

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Transkriptio:

ASIC-suunnitteluvuo SystemC:stä piirikuviointiin 20.6.2015 Demon suorittaminen Voit suorittaa koko suunnitteluvuon automaattisesti antamalla alla olevan komennon siinä hakemistossa, johon asensit suunnitteluvuon tiedostot: csh run_asic_demo.csh Tämä csh komentotiedosto suorittaa kaikki vuon ohjelmat peräkkäin. Huomaa seuraavat seikat: Jotkut ohjelmat eivät ehkä vastaa komentoihin suorittaessaan käskyjä, joten pysy kärsivällisenä. Kun kunkin ohjelman komentotiedoston suoritus on lopussa, se avaa ohjelman tuottamat raportit tekstieditoriin. Kun olet lopettanut raporttien tutkimisen, sulje tekstieditori. Suunnitelma jää ohjelman muistiin, joten voit tutkia sitä käyttämällä ohjelman käyttöliittymän komentoja. Kun olet valmis jatkamaan, sulje ohjelma File valikosta. Saatat joskus joutua kirjoittamaan exit tai quit komennon. Suunnitteluvuon suorittaminen vaihe kerrallaan Voit suorittaa vuon käynnistämällä jokaisen ohjelman erikseen seuraavien ohjeiden mukaisesti. SystemC-mallin simulointi Piirin "kultainen malli" on kirjoitettu SystemC kielellä. Mallia voidaan simuloida kääntämällä lähdekooditiedostot suoritettavaksi ohjelmaksi, tai käyttämällä QuestaSim simulaattoria. Tätä varten on käytettävissä SystemC testipenkki. Myöhemmin malli voidaan sijoittaa referenssimallina SystemVerilog testipenkkiin, jota käytetään piirin RTL mallin varmentamiseen. Voit kääntää tiedostot g++ kääntäjällä seuraavalla komennolla: make f scripts/makefile.sc Simuloi mallia antamalla seuraava komento: make f scripts/makefile.sc sim Simulointitulokset tulostetaan näytölle tekstimuodossa.. Käytä seuraavaa komentoa mallin simuloimiseen QuestaSm simulaattorissa: 1

vsim do scripts/1_vsim_systemc_simulation.tcl Voit tarkastella simulointituloksia simulaattorin Wave ikkunassa. QuestaSimin Wave ikkuna, jossa näkyvät simuloinnin tulokset. SystemC mallin rakenne näkyy vasemmalla. SystemC-synteesi SystemC mallista voidaan syntetisoida rekisterisiirtotasoinen Verilog kuvaus käyttämällä Cadencen C to Silicon Compiler synteesiohjelmaa seuraavalla komennolla: ctosgui scripts/2_ctos_hls.tcl Skriptin asetukset määräävät synteesiohjelman ajoittamaan piirin FIR suodatinalgoritmin laskennan kuudelle kellojaksolle. 2

Cadence C to Silicon Compilerin synteesitulosnäkymiä: vasemmalla syntetisoitu RTL piirikaavio, oikealla ohjaus ja tietovuokaavio, jossa näkyy, millä kellojaksoilla piirikaaviossa korostettuna näkyvä kertoja on aktiivinen. Huom! Demon loppuosassa käytetään piirin "käsin koodattua" RTL mallia. Voit antaa muuttujalle HLS_RTL arvon 1 tiedostossa input/0_setup_design.tcl, jos haluat käyttää SystemC:stä syntetisoitua RTL mallia. Suuri osa SystemVerilog väittämistä jätetään tällöin käyttämättä varmennuksessa. RTL-mallin simulointi SystemVerilog kielistä RTL mallia voidaan simuloida seuraavalla komennolla: vsim do scripts/3_vsim_rtl_simulation.tcl Simuloinnissa käytetään UVM testipenkkiä, johon SystemC malli on sijoitettu referenssimalliksi. Simuloinnin tuloksia voidaan tarkastalla mm. Wave, Assertions ja Coverage ikkunoissa. Simulaattori tallettaa SAIF muotoisen aktiivisuustiedoston, jota logiikkasynteesiohjelma käyttää tehonkulutuksen arviointiin. 3

QuestaSimin Wave ikkuna, jossa näkyy signaalien aaltomuotoja ja väittämien totuusarvojen laskennan tuloksia. Formaali varmennus Piirille kirjoitetut SystemVerilog väittämät voidaan varmentaa formaalisti Questa Formal työkalulla seuraavasti: qformal do scripts/3_qformal_rtl_verification.tcl Työkalu todistaa väittämät joko tosiksi tai epätosiksi etsimällä vastaesimerkkejä, jotka osoittavat väittämät vääriksi. Vastaesimerkki on piirin tila, joka voidaan saavuttaa alkutilasta, ja jossa väittämä saa arvon epätosi. Tämä varmennusmenetelmä ei siis perustu suunnittelijan laatimiin testiherätteisiin. 4

Questa Formalin analyysitulosnäyttö, jossa näkyy useita "lauenneita" väittämiä, yksi virheelliseksi todistettu, ja kolme oikeaksi todistettua väittämää. Aaltomuotonäyttö sisältää vastaesimerkin, joka osoittaa, että väittämä ctr8_init_a voi saada arvon epätosi. RTL-koodin tarkistus RTL lähdekoodi voidaan tarkistaa yleisten koodausvirheiden tai huonon koodaustavan varalta Questa AutoCheck ohjelmalla seuraavasti: qautocheck do scripts/3_qautocheck_rtl_verification.tcl 5

Questa AutoCheckin analyysitulosnäyttö, jossa näkyy kolme mahdollista ongelmaa. Valittu tapaus varoittaa aritmeettisen ylivuodon mahdollisuudesta. Kellotusalueiden rajojen ylitysten tarkistus Kellotusalueiden rajat ylittävien signaalien luotettava synkronointi voidaan varmentaa Questa CDC ohjelmalla seuraavalla komennolla: qcdc do scripts/3_qcdc_static_cdc_analysis.tcl Jos ohjelma havaitsee ylityksen, jota ei voida todistaa luotettavaksi, se merkitsee sen arviontia vaativaksi ("evaluation"). Tällaisten ylitysten toiminta tulee varmentaa simuloinnilla. Ohjelma luo simulointimallin, joka sisältää synkronoijien toiminnan varmentavia väittämiä. Simulointi ja sen tulosten tarkastelu voidaan suorittaa komennolla: qcdc do scripts/2_qcdc_dynamic_cdc_analysis.tcl Simuloinnin tulokset ovat nähtävissä Simulation välilehdellä. 6

Questa CDC:n suorittaman staattisen analysoinnin tulosnäyttö, jossa näkyy yksi virheellinen kellotusalueen rajan ylitys, neljä simuloinnilla tehtävää arviontia vaativaa ja neljä luotettaviksi todistettua. Piirikaavio esittää virheelliseksi havaittua ylitystä (kaksikiikkuinen synkronoija, jota ohjataan kombinaatiologiikalla). RTL-synteesi kellon portituksen ja testipolkujen asennuksen kera RTL tasoinen SystemVerilog kuvaus voidaan syntetisoida porttitason malliksi Synopsys Design Compiler ohjelmalla seuraavalla komennolla:: design_vision x gui_start f scripts/4_dc_rtl_synthesis.tcl Ohjelma kääntää SystemVerilog koodin geneerisiksi kiikuiksi ja Boolen logiikan funktioiksi, ja toteuttaa nämä kohdeteknologian mukaisen komponenttikirjaston sisältämillä komponenteilla siten, että toteutus täyttää piirille tiedostossa sample_design.sdc asetetut ajoitusvaatimukset. 7

Lisäksi synteesiskripti lisää piiriin kellonportitussoluja dynaamisen tehonkulutuksen pienentämiseksi, ja luo piiriin testipolkuja, jotka parantavat piirin testattavuutta. Synopsys Design Compilerin RTL synteesin tulosnäyttö: piirin looginen rakenne, ajoitusmarginaalihistogrammi, ja porttitason piirikaavio. RTL- ja porttitason mallien loogisen ekvivalenssin formaali tarkistus RTL tason SystemVerilog mallin ja synteesillä tuotetun porttitason Verilog mallin (output/sample_design_gatelevel.v) looginen ekvivalenssi voidaan varmentaa Synopsys Formality ohjelmalla käyttämällä seuraavaa komentoa: formality file scripts/5_formality_gatelevel_verification.tcl 8

Synopsys Formalityn tulosnäyttö, jossa näkyy yhden vertailupisteen "logiikkakartiot". Ylempi piirikaavio esittää logiikkaa, joka ohjaa vertailupistettä (kiikun tulo) RTL mallissa. Alempi piirikaavio esittää vastaavaa vertailupistettä porttitason mallissa ohjaavaa logiikkaa. Porttitason simulointi Voit simuloida syntetisoitua porttitason mallia siten, että RTL malli toimii referenssimallina käyttämällä seuraavaa komentoa: vsim do scripts/5_vsim_gatelevel_simulation.tcl Koska logiikkasynteesiohjelma ei korjaa kiikkujen pitoaikavaatimusten rikkomuksia, ajoitustarkistukset on kytketty pois päältä tässä simuloinnissa. Pitoaikarikkomukset korjataan vasta layout suunnitteluvaiheessa kellosignaalin puskurointipuun lisäämisen jälkeen. 9

Vakiosolujen sijoittelu ja johdotus ja kellopuusynteesi Voit luoda piirille vakiosolupiirikuvioinnin käynnistämällä Cadence Encounter ohjelman seuraavalla komennolla:: encounter replay scripts/6_encounter_layout_synthesis.tcl Cadence Encounterin piirikuvionäyttö. Kolmen arkkitehtuuritason lohkon vaatima pinta ala on esitetty eri väreillä: daq_unit oranssilla, cdc_unit sinisellä, ja spi_slave keltaisella. Valkoiset viivat esittävät kellosignaalien johdotusta. 10

Layout-suunnittelua edeltävän ja sen jälkeisen mallin loogisen ekvivalenssin formaali tarkistus Syntetisoidun porttitason Verilog mallin (output/sample_design_gatelevel.v) ja lopullisen, layout suunnitteluohjelman tuottaman mallin (output/sample_design_postlayout.v) looginen ekvivalenssi voidaan tarkistaa Formalityn avulla seuraavasti: formality file scripts/7_formality_postlayout_verification.tcl Layout-suunnittelun jälkeinen ajoitussimulointi Layout suunnitteluohjeman tuottamaa porttitason mallia ja RTL referenssimallia voidaan simuloida QuestaSim simulaattorilla seuraavalla komennolla:: vsim do scripts/7_vsim_postlayout_simulation.tcl Piirin sisältämien synkronoijien ensimmäisten kiikkujen ajoitustarkistukset on kytketty pois toiminnasta tässä simuloinnissa. Post layout simuloinnin tulosnäytössä 16 bittisen data_out signaalin "analogisessa" aaltomuotoesityksessä näkyvät "häiriöt" aiheutuvat siitä, että piirin lähdön bitit vaihtavat tilaansa hieman eriaikaisesti piirin lähtörekisterin kiikkujen ja piirin lähtöjen välisten reittien eripituisten viiveiden vuoksi. 11

Piirikuvion suunnittelun jälkeinen staattinen ajoitusanalyysi Layout suunnitteluohjelman tuottamalle, johdotuksen aiheuttamat parasiittikapasitanssiarvot sisältävälle mallille voidaan tehdä staattinen ajoitusanalyysi Synopsys PrimeTime ohjelmalla seuraavasti: primetime x gui_start gui file scripts/7_primetime_postlayout_sta.tcl PrimeTimen viivepolkujen analysointi ikkuna: Vasen osa sisältää 100 kriittisintä rekisteristä rekisteriin kulkevaa polkua järjestettynä lähtöpisteen ja suurimman negatiivisen ajoitusmarginaalin mukaan (WNS, worst negative slack). Oikea osa sisältää värikoodatun kartan, jonka ruutujen pinta alat kuvaavat eri ajoitusmarginaaliryhmiin kuuluvien polkujen lukumäärää. Tässä tapauksessa kaikkien polkujen ajoitusmarginaali on positiivinen, joten ajoitusrikkomuksia aiheuttavien polkujen lukumäärä on nolla (NVP, number of violating paths). Layout-suunnittelun jälkeinen simulointi tehonkulutuksen arviointia varten Dynaamisen tehonkuluksen arvioimiseen tarvitaan tietoa piirin signaalien tilanvaihtojen lukumäärästä. Tämä aktiviteettitieto voidaan kerätä simuloinnin yhteydessä seuraavalla komennolla: 12

vsim do scripts/8_vsim_postlayout_power_simulation.tcl Tämä skripti suorittaa simuloinnin ilman ajoitustarkistuksia, ja tallettaa aktiviteettitiedon VCD tiedostoon (value change dump), jota tehonkulukuksen arviointiohjelma voi käyttää. Layout-suunnittelun jälkeinen dynaamisen tehonkulutuksen arviointi Piirin tehonkulutusta voidaan arvioida Synopsys PrimeTime PX ohjelmalla seuraavasti: primetime x gui_start gui file scripts/8_primetime_power_analysis.tcl Tämä skripti lukee Encounterin tuottaman porttitason piirikuvauksen ja parasiittikapasitanssitiedoston, ja simuloinnissa luodon VCD tiedoston, ja laskee näistä tehonkulutusarvion. 13

PrimeTime PX:n tehokartta esittää kunkin arkkitehtuuritason lohkon ja yksittäisen komponentin vaikutusta piirin kokonaistehonkulutukseen väri ja pinta alakoodauksella. PrimeTime PX skripti avaa aaltomuotonäytön, jossa näkyy piirin tehonkulutuksen vaihtelu ajan mukana. PrimeTime PX:n tehoaaltomuotonäyttö esitää dynaamista tehonkulutusta ajan funktiona. Yllä olevassa kuvassa data_fifon tehonkulutuksen nähdään kasvavan huomattavasti silloin, kun suodatin ohjelmoidaan ja fifo_clr signaali on aktiivinen (synkroninen reset). Tämä "avaa" kaikki kellonportitussolut samaan aikaan, mistä aiheutuu tehonkulutuksen kasvu. Automaattinen testeherätteiden luonti Piirille voidaan luoda sen tuotantotestauksessa tarvittavat testiherätteet käynnistämällä Synopsys TetraMax ohjelma seuraavasti: tmax scripts/9_tmax_atpg.tcl 14

Tämä skripti lukee layout suunnitteluohjelman tuottaman porttitason mallin, ja STIL tiedoston, joka kuvaa logiikkasynteesiohjelman piiriin lisäämiä testirakenteita, ja muodostaa testiherätteet juuttumisvikamallia käyttäen. Synopsys TetraMaxin vika analyysinäyttö. Punaisella korostetun portin tulossa olevaa juuttumisvikaa ei voida testata sen vuoksi, että portin lähdön tilaa ei voida havaita piirikaavion oikeassa reunassa näkyvästä testipolkukiikusta. 15