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ä