1 / 30

Skaitmeninių sistemų projektavimas Projektavim as HDL kalbo mis (modulis T170M012) 20 11

Skaitmeninių sistemų projektavimas Projektavim as HDL kalbo mis (modulis T170M012) 20 11. Kauno technologjios universitetas Elektronių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis. Projektavimas su HDL kalbomis. Abstrakcijos lygiai.

Download Presentation

Skaitmeninių sistemų projektavimas Projektavim as HDL kalbo mis (modulis T170M012) 20 11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Skaitmeninių sistemų projektavimasProjektavimas HDL kalbomis(modulis T170M012)2011 Kauno technologjios universitetas Elektronių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis viso 30

  2. Projektavimas su HDL kalbomis viso 30

  3. Abstrakcijos lygiai Skaitmeninio įrenginio funkcionalumas gali būti aprašytas skirtingais abstrakcijos lygiais. Elgsenos lygmuo Funkcinis lygmuo Struktūrinis (raktų/ventilių) lygmuo viso 30

  4. Struktūriniai lygmenys • Raktų lygmuo – aprašo įrenginį, kaip tranzistorių grandinę • Ventilių lygmuo - aprašo įrenginį sudarytą iš bazinių ventilių (IR, ARBA, NE) Istoriškai tokia aprašai būdavo sugeneruojami iš grafiniu būdu įvestos principinės schemos viso 30

  5. Funkcinis lygmuo • Įrenginio aprašymas loginėmis lygtimis, pvz., 2:1 multipleksoriaus aprašas atrodytų taip: • RTL (angl. Register Transfer Level - tarpregistrinių perdavimų lygmens) aprašas. Jį galima įsivaizduoti kaip sudarytą iš rinkinio registrų tarpusavyje sujungtų kombinacine logika. viso 30

  6. Elgsenos lygmuo • Loginė įrenginio elgsena (funkcionalumas) aprašomas abstrakčiomis konstrukcijomis, pvz., ciklais ir procesais. Čia taip pat apimami algoritminiai elementai, tokie kaip sumatoriai ir daugintuvai: viso 30

  7. Istorinė perspektyva • Dauguma ankstyvųjų HDL(angl. Hardware Desription Language) kalbų palaikė tik struktūrinį lygmenį. Vėlesnės kalbos (ABEL, CUPL, PALASM) buvo skirtos gana paprastoms loginėms matricoms (PAL, CPLD) ir dalinai palaikė funkcinį lygmenį (logines lytis, teisingumo lenteles, būsenų automatus). • Sekančios kartos HDL kalbos buvo orientuotos į loginį modeliavimą, ir aukštesnius abstrakcijos lygmenis (RTL ir tam tikras elgsenos konstrukcijos) viso 30

  8. Grafiniai aprašai vis dar naudojami • Nors buvo manoma, kad bėgant laikui schemų braižymo pagrindu paremtos projektavimo metodikos apmirs, tačiau taip neįvyko. Ypatingai aukštame hierarchiniame projekto lygmenyje yra patogu ir populiaru vaizduoti įrenginį sudarytą iš tarpusavyje sujungtų grafinių blokų. viso 30

  9. Verilog HDL kalba • 1980-ųjų viduryje Phil Moorby sukūrė naują HDL kalbą Verilog. Netrukus buvo sukurtas šios kalbos loginis simuliatorius Verilog-XL. • 1989 firmą, kuri turėjo Verilog ir Verilog-XL kūrėjo teise, nupirko Cadence Design Systems ir 1990 padarė atvirą visiems gamintojams EDA priemonių gamintojams (public domain). Tai buvo drąsus žingsnis, kuris potencialiai reiškė, kad bet kas galėjo kurti Verilog simuliatorius ir konkuruoti su Cadence. Tačiau tai labai pastūmėjo kalbos paplitimą rinkoje. • Esminiai standarto papildymai padaryti 2001 (Verilog-2001) • 2005 išleistas SystemVerilog standartas • Šiuo metu kuriamas Verilog papildantis standartas analoginių ir mišrių signalų sistemų aprašymui Verilog-AMS) viso 30

  10. Formalus kalbos apibrėžimas • Kalbos specifikacija aprašyta vadove (language reference manual (LRM)): • Sintaksė – kalbos gramatika (raktiniai žodžiai, simboliai, jų tarpusavio pozicijos tekste ir t.t.) • Semantika - raktinių žodžių ir simbolių reikšmės ir santykiai tarp jų atliekamų veiksmų. viso 30

  11. VHDL ir VITAL kalbos • 1981 JAV gynybos departamentas (DoD – Department of Defence) inicijavo projektą sukurti naujai HDL kalbai. Nuo pat jo pradžios buvo įtrauktos pramonės firmos (Intermetrics, IBM, TI). Pirmoji oficiali versija išėjo 1985. • Kad paskatinti kalbos priėmimą pramoniniuose sluoksniuose kalbos apibrėžimo teises DoD perdavė IEEE organizacijai. • 1987 VHDL kalba buvo išleista kaip IEEE 1076 standartas. Jo praplėtimai įvesti 1993 ir 1999 metais. • VHDL kalba buvo šiek tiek silpnoka, kalbant apie struktūrinių aprašų lygį, ypatingai modeliuojant vėlinimus. Kadangi tapo aišku, kad VHDL laikinių parametrų aprašymo tikslumas nėra pakankamas, tai 1992 metais buvo sukurta posistemė VITAL. • Standarto atnaujinimai atlikti 2000, 2002, 2007 ir 2009 (VHDL 1076-2008) metais viso 30

  12. Verilog ir VHDL kalbos ir abstrakcijos lygiai viso 30

  13. HDL karai ir jų rezultatas Dešimtojo dešimtmečio (1990-ieji) pradžia buvo žinoma kaip HDL kalbų (Verilog ir VHDL) karų etapas. Kiekvienos kalbos šalininkai prognozavo greitą konkurentų išnykimą. Tačiau bėgo metai ir abiejų kalbų pozicijos nesilpnėjo. To pasekoje EDA gamintojai pradėjo tiekti mišrias aplinkas, palaikančias loginius simuliatorius, sintezės bei kitas priemones, kurios galėtų dirbti su projektais sudarytais iš Verilog ir VHDL kalbų blokų. viso 30

  14. Kokių licenzijų daugiau parduota Active-HDL: VHDL ar Verilog Pagal Aldec Webinar (2009-10-22): • Aldec Active –HDL (skirta daugiau FPGA projektuotavimui) – daugiau VHDL. Bet priklauso ir nuo geografijos (Europa – VHDL, Japonija - Verilog) • Riviera-Pro (skirta daugiau ASIC projektuotavimui) (maždaug apyligiai) viso 30

  15. SystemVerilog – Verilog kalbos tęsinys • Įvesta naujų konstrukcijų ir patobulinimų (galutinis apjungtas standartas planuojamas 2009 pabaigoje) • Sintezės programos palaiko tik tam tikrą SystemVerilog posistemę. FPGA gamintojai dar nepalaiko, o nepriklausantys nuo gamintojo sintezatoriai (pvz.,Synplify Pro) jau kai ką palaiko. • SystemVerilog jau dabar tinka TestBench kūrimui, o Verilog - sintezei. • SystemVerilog palaiko assertions mechanizmą, kuriuo realizuojamas formalus verifikavimas (kita verifikavimo atmaina yra simuliavimo pagrindu ?) http://www.doulos.com/knowhow/sysverilog/ viso 30

  16. Tradicinis HDL projektavimo procesas Projektavimas prasideda sistemos struktūros sudarymu sisteminiame (aukštame) makro-architektūros lygmenyje. Čia sistemos funkcijos paskirstomos tarp aparatūros ir programinės įrangos. Sudaryta specifikacija perduodama aparatinės dalies projektuotojams, kurie sudaro mikro-architektūros apibrėžimą (magistralės, valdymo struktūros, nuoseklūs/lygiagretūs duomenų srautai, lygiagr. konvejeris, resursų paskirstymo naudojimas, pvz., daugintuvo). viso 30

  17. HDL projektavimo sunkumai • RTL lygmens aprašų sudarymas ir skaitymas yra sudėtingi ir laikui imlūs procesai • RTL aprašu pateikto įrenginio modeliavimas reikalauja didelių laiko resursų • Sunkus alternatyvių realizavimo būdų palyginimas (sudėtinga realizuoti alternatyvias architektūras) • Sudėtinga daryti pakeitimus, pagal specifikacijos modifikacijas • Aprašai yra orientuoti į konkrečią aparatūrą (FPGA arba ASIC ir todėl negali būti tiesiog perkompiliuojami pereinant nuo ASIC realizavimo prie FPGA arba atvirkščiai) • Netinka H/W koprojektavimui (codesign). Skausminga verifikuoti (modeliuoti) aparatūrą aprašytą HDL kalba kartu su programine įranga, sudaryta C/C++ arba asemblerio kalba. viso 30

  18. Galimi alternatyvūs projektavimo procesai Aprašyti projektą aukštesniame negu RTL VHDL/Verilog lygmenyje. Egzistuojančios alternatyvos yra SystemC, išplėsta C/C++, gryna C/C++. viso 30

  19. Vienalaikis (lygiagretus) arba nuoseklus procesai • Kalbų, tokių kaip C/C++, sakiniai vykdomi nuosekliai laike (tokia yra ir programuotojų mąstymo ideologija). • HDL aprašuose dažniausia vyrauja kita – lygiagretaus vykdymo ideologija. • Žemiau pateikti aprašai duotų skirtingus rezultatus: viso 30

  20. SystemC kalba • Atsiradusi apie 2000 SystemC 1.0 buvo C++ klasių biblioteka,kuri palengvino tokių komponentų, kaip sutapimas laike (angl. concurrency), taktavimą, I/O prievadų aprašymą. Šios bibliotekos pagalba galima buvo kurti RTL lygmens aprašus. • Tai buvo pirmoji H/W koprojektavimo terpė • Tapo galimas 5-10 kartų greitesnis simuliavimas, lyginant su VHDL/Verilog analogais. viso 30

  21. SystemC kalba Papildomi šaltiniai ateičiai: • Open SystemC Initiative (OSCI) tai nepriklausoma, ne pelno siekianti asociacija susibūrusi iš įvairių organizacijų siekiančių apibrėžti ir skatinti SystemC kalbos paplitimą kaip atviro standrato sisteminio lygmens modeliavimui, projektavimui ir verifikavimui (system-level modeling , design and verification). SystemC yra kalba naudojant C++ ir apima sritis nuo sistemos koncepsijos kūrimo iki realizavimo aparatinėmis ir programinėmis priemonėmis (http://www.systemc.org/home/) • SystemC pradžiamokslis (http://www.doulos.com/knowhow/systemc/tutorial/ ) • Dar vienas SystemC pradžiamokslis (http://www.asic-world.com/systemc/tutorial.html ) • Dar vienas SystemC pradžiamokslis (http://embedded.eecs.berkeley.edu/research/hsc/class/ee249/lectures/l10-SystemC.pdf ) viso 30

  22. SystemC ir/ar SystemVerilog • SystemC – skirta modeliavimui (TLM – Transaction Level Modeling) • SystemVerilog – verifikavimui SystemC klasių biblioteka buvo sukurta projektavimui sistemos lygmenyje. SystemC nemokamai parsiunčiama iš interneto (OSCI). SystemC buvo sukurta firmų grupės, kuri sudarė Open SystemC Initiative (OSCI). viso 30

  23. Accellera Systems Initiative • http://www.accellera.org/activities/ viso 30

  24. TLM (Transaction Level Modeling) • Tranzakcijų lygmens modeliavimas (TLM) – tai skaitmeninių sistemų modeliavimas aukštame abstrakcijos lygmenyje, kai komunikacijų (duomenų mainų) tarp modulių detalės yra atskirtos nuo funkcinių mazgų realizavimo detalių ar komunikacijų architektūros. • Duomenų mainų mechanizmai tokie kaip magistralės arba FIFO yra modeliuojami kaip kanalai ir aprašomi SystemC interfeisų klasėmis. • Tranzakcijų pareikalavimas yra realizuojamas iškviečiant kanalo modelio funkcijas, kurios inkapsuliuoja žemesnį informacijos perdavimo lygmens realizavimą. • Tranzakcijų lygmenyje domimasi kokie duomenys į kur ir iš kur perduodami, o ne kaip perduodami (kokiais protokolais) viso 30

  25. SystemC 2.0 raida SystemC 1.0 sąsają tarp dviejų blokų buvo aprašomas prievadų lygyje. Ankstyvose projekto stadijose toks detalumo lygis, kaip magistralių plotis gali būti nepatogus. SystemC 2.0 jau leidžia abtrakčią sąsają tarp dviejų blokų. viso 30

  26. Abstrakcijos lygmenys viso 30

  27. Alternatyvūs SystemC projektavimo proceso keliai Šiai dienai nusistovėjusio sprendimo dar nėra: • Transliuoti SystemC aprašą tiesiai į grandinės lygio aprašą • Naudoti tarpinį transliavimą į VHDL/Verilog kalbą ir toliau taikyti turimas priemones viso 30

  28. Išplėsta (angl. augmented) C/C++ • Direktyvų arba pragma sakinių panaudojimas. Bus reikalingi nauji C kalbos kompiliatoriai • Naujų raktinių žodžių įvedimas, išplečiant standartinių sąrašą. Reikia tokių koncepsijų: taktavimas, prievadai, lygiagretus vykdymas, sinchronizavimas, resursų bendras naudojimas. viso 30

  29. Gryna (angl. pure) C/C++ • Greita, efektyvi ir kompaktiška • Verifikavimas greitas ir efektyvus (simuliuojama greičiau negu išplėsta C arba SystemC atveju ir 100-10000 kartų greičiau negu RTL aprašas) • Greitas ir efektyvus alternatyvų realizavimas • Adaptavimasis prie specifikacijos pokyčių yra sąlyginai lengvas viso 30

  30. Grynos belaikės (untimed) C/C++ projektavimo srautai Grynos C/C++ idėja yra nesurišti programos kodo su aparatūros specifika. Pririšimas prie konkretaus aparatinio pagrindo (angl. target implementation) realizuojamas valdant ir konfigūruojant sintezės priemones (angl. engine). Toliau galima analizuoti ir modifikuoti mikroarchitektūrą resursų apimties ir greičio požiūriu. viso 30

More Related