VHDL/Verilog/SystemC
Jukka Jokelainen
20.10.2009
Sisältö
• Mitä ihmettä on hardwaren ohjelmointi?
• VHDL
• Verilog
• SystemC
• Analogiaelektroniikan yhdistäminen digitaaliseen maailmaan
• Yhteenveto ja pohdintaa
Hardwaren ohjelmointi
• HDL – nimensä mukaisesti Hardware Description Language
• Integroitujen digitaalipiirien monimutkaistuessa ja transistorimäärän kasvaessa automaation määrää integroitujen piirien suunnittelussa oli pakko lisätä
• Pää sovelluskohteet ASIC ja FPGA piirit
• Tietokoneiden prosessorit malliesimerkki
• Alun perin ainoastaan digitaalilogiikkaa
VHDL
• VHDL = VHSIC (Very High Speed Integrated Circuit) Description Language
• Yhdysvaltojen puolustusministeriön (DoD) projekti
• Kehitys aloitettiin kustannussyistä – elektroniikan elinkaarikustannukset olivat valtavat
• Kehitetty alunperin vaihtoehtoiseksi dokumentaatioksi laajojen ja monimutkaisten ohjekirjojen sijaan
• Haluttiin kuvaava kieli joka toimisi samalla tavalla
kaikissa simulaattoreissa ja on riippumaton niin alustasta kuin suunnittelutyylistä
VHDL:n alkuvaiheet
• Kehitystyö aloitettu vuonna 1981
• Ns. baseline kielen kehityksessä mukana IBM ja TI
• Baseline kieli annettiin teollisuudelle jo muutamaa vuotta ennen kielen standardoimista jotta kehitystyökalujen
kehittäminen voitiin aloittaa hyvissä ajoin
• ASIC Mandaatti, DoD vaati kattavan VHDL kuvauksen jokaisesta heille toimitetusta ASIC:a
– Käytännössä pakotti kehittäjät käyttämään VHDL:ä koko tuotanto prosessissa
• DoD siirsi kaikki VHDL:n oikeudet IEEE:lle 1986
IEEE:n aika
• IEEE:n ensimmäinen standardi vuonna 1987
• Sääntöjen mukaan standardi on tarkastettava vähintään viiden vuoden välein
• Ensimmäinen tarkastus vuonna 1993, VHDL:n laajimmalle levinnyt versio on edelleen VHDL-1993
• VHDL-2000 toi VHDL:n suojatut tietotyypit (protected)
• VHDL-2002 pieniä korjauksia, suurimpana muutoksena bufferiporttien suunnittelusääntöjen keventäminen
• Vuonna 2007 VHPI eli VHDL Procedural Interface, uusia ominaisuuksia itse kieleen ei lisätty.
• VHPI mahdollistaa työkalujen, joita voi käyttää ennen ja
samanaikaisesti simuloinnin kanssa, ohjelmoinnin esimerkiksi C- kielellä
VHDL ohjelmointikielenä
• Pohjautuu hyvin vahvasti Ada ohjelmointikieleen
– DoD:n vaatimus oli että mahdollisimman suuri osa syntaksista otetaan Ada:sta joka on jo valmiiksi testattu eikä päädytä uudelleen
suunnittelemaan jo olemassa olevia ominaisuuksia
• Vahvasti tyypitetty kieli
• Ensimmäisessä vaiheessa kehitettiin simulaattoreita jotka osasivat lukea VHDL tiedostoja
• Seuraavaksi kehitettiin synteesityökaluja jotka pystyivät lukemaan VHDL tiedostoja ja tuottamaan koodin perusteella maskit fyysisen tuotteen valmistamiseen
• Selkeinä eroina perinteisiin ohjelmointikieliin esimerkiksi
totuusarvomuuttujat nand ja nor sekä mahdollisuuden indexoida taulukot niin ylhäältä alaspäin kuin alhaalta ylöspäin
Esimerkki VHDL syntaxista
VHDL yhteenveto
1 Kehitystyö alkoi
1983-85 Baseline kielen kehitys yhteistyössä IBM ja TI 3 DoD siirtää kaikki oikeudet IEEE:lle
4 Ensimmäinen IEEE standardi julkaistaan
5 Mil Std 454 vaatii kaikilta DoD:lle toimitetuilta ASIC:a kattavan VHDL selvityksen
6 Tarkastettu standardi (VHDL 1076-1993) 2000 Tarkastettu standardi (VHDL 1076-2000) 8 Tarkastettu standardi (VHDL 1076-2002)
2007 VHDL Procedural Language Application Interface standard 2009 Tarkastettu standardi (VHDL 1076-2008)
Verilog
• Phil Moorby ja Prabhu Goel aloittivat hardwaren mallinnus kielen kehittämisen talvella 1983/84 Automated Design Systems:llä
• Cadence Design Systems osti Verilog:n vuonna 1990
• Verilog heräsi 1990-luvulla VHDL:n kasvavaan suosioon ja Cadence päätti antaa kielen vapaasti
standardoitavaksi, syntyi Open Verilog International ( www.ovi.org) nykyisin Accellera
• IEEE standardoi Verilog:n 1995 standardilla 1364-1995 joka tunnetaan paremmin nimellä Verilog-95
Verilog:n myöhempi historia
• Cadence kehitti samanaikaisesti IEEE:n standardoidessa Verilog:a Verilog-A ohjelmointikieltä joka tuki myös
analogielektroniikkaa ja tavoitteena oli Cadencen analogisimulaattori Spectren laajentaminen
• Verilog-A toimi esiasteena Verilog-AMS kielelle josta lisää myöhemmin
• IEEE teki huomattavia lisäyksiä Verilog-95:n vuonna 2001 ja Verilog-2001 onkin Verilogin laajiten käytetty versio
• Seuraava revisio Verilogin standardiin tuli vuonna 2005 mutta siinä oli vain pieniä korjauksia
Hello World!
Esimerkki flip-flop kiikusta
SystemVerilog
• SystemVerilog on Hardware Description Languagen ja Hardware Verification Languagen risteytys
• SystemVerilog syntyi vuonna 2002 kun Superlog ohjelmointikieli lahjoitettiin Accelleralle
• Superlog pohjautuu OpenVera kieleen jonka on tehnyt Synopsys
• SystemVerilog:sta tuli IEEE:n standardi vuonna 2005
• SystemVerilog eroaa perinteisestä Verilog:sta
huomattavasti mahdollistamalla mm. olio-ohjelmoinnin
Esimerkki luokkien käytöstä
SystemVerilog:ssa
SystemC
• Ei suoranaisesti oma ohjelmointikielensä vaan kasa luokkia ja makroja jotka laajentavat C++:a
• SystemC prosessia simuloitaessa voidaan järjestelmään ajaa signaalina mitä tahansa C++:n tukemaa datatyyppiä
• SystemC pyrkii useilla tavoin olemaan kuin VHDL ja Verilog mutta parempi ilmaus olisi sanoa sen olevan systeemitason mallinnuskieli kuin HDL
• Tästä hyvänä esimerkkinä mahdollisuus kääntää SystemC sourcesta executable jota voidaan ajaa
tietokoneella, lisäksi SystemC simulaattoreiden väitetään olemaan huonompia optimoimaan RTF tasolla
simuloitaessa
SystemC:n lyhyt historia
1999-09 Open SystemC:n kehittäminen alkoi 2000-03(alku) SystemC V0.91 julkaisu
2000-03(loppu) SystemC V1.0 julkaisu
2001-02 SystemC V2.0 spesifikaatio ja V1.2 betan sourcen julkaisu
2003-06 Language Reference Manual (LRM) julkaisu 2005-06 SystemC 2.1 LRM ja TLM 1.0 (Transaction-
Level Modeling)
2005-12 Hyväksytään IEEE:n standardiksi 2007-04 SystemC V2.2 julkaisu
2008-06 TLM 2.0 kirjaston julkaisu
2009-07 TLM 2.0 LRM julkaisu, TLM 2.0.1 kirjaston julkaisu
Esimerkki SystemC koodista
Analogiateknologian yhdistäminen
• VHDL-AMS
• Verilog-AMS
• AMS Analog and Mixed-Signal
• Esimerkiksi tietoliikenneteollisuudella kova halu integroida samalle lastulle niin lähetin/vastaanotin
(RF/analogia), suodatus ja vahvistus (analogia) ja DSP (digitaalilogiikka)
• Tulevaisuuden kännykässä ehkä vain yksi IC sisällä joka hoitaa kaiken
• Eivät oikeastaan omia kieliään vaan laajennuksia olemassaoleviin HDL:n
Yhteenveto ja Tulevaisuus
• HDL:n kehitys on osaltaan mahdollistanut yhä nopeampien ja pienempään kokoon menevien puolijohteiden kehityksen
• Paineet yhä paremman automatisoinnin saavuttamiseksi erityisesti käännettäessä koodista layoutteja kasvavat jatkuvasti
• VHDL ja Verilog tullee säilymään markkinajohtajina hyvin pitkään
• SystemC valtaa alaa erityisesti uusissa sovelluksissa
• Erityisesti Testbenchien monimutkaistuminen suosii SystemC:n käyttöä
Lähteet
• http://www.doulos.com/knowhow/vhdl_designers_guide/a_brief_history_of_vhdl/
• http://www.doulos.com/knowhow/verilog_designers_guide/a_brief_history_of_verilog/
• http://vhdl.org/
• http://www.asic-world.com/verilog/history.html
• http://www.systemc.org/home/
• http://standards.ieee.org/getieee/1666/
• Peter J. Ashenden The Designer’s Guide to VHDL ISBN: 1-55860-674-2
• Wikipedia täynnä hyviä lähteitä