1 / 48

Digitaalsüsteemide automaatprojekteerimine

Digitaalsüsteemide automaatprojekteerimine. J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12 L18. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. L19. Süsteemi- ja kõrgtasemesüntees.

irish
Télécharger la présentation

Digitaalsüsteemide automaatprojekteerimine

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. Digitaalsüsteemide automaatprojekteerimine • J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12 • L18. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. • L19. Süsteemi- ja kõrgtasemesüntees. • L20. Füüsikalise taseme projekteerimine. Kompleksete süsteemide iseärasused. I207 - Digitaalloogika ja -süsteemid - L18

  2. Süsteemi- disain Loogika- disain Füüsikalise taseme disain 40 60 70 < 1979 Skeemi sisestus Paigaldus ja trasseerimine Simuleerimine 30 30 30 50 40 2 2 2 2 2 ~ 1983 Hierarhia, generaatorid tehnoloogia suutlikkus 1986 transistori kristallil Loogikasüntees 1988-92 Kõrgtasemesüntees / Süsteemitasemesüntees disaineri tootlikkus 1992-95 10 Spetsialiseeritud kõrgtasemesüntees inimkuud / 20 000 l.lüli aeg ~1996-... täna 3 Automatiseerimine • … ja formaliseerimine • Tootlikkuse puudujääk • productivity gap • 58% ja 21% aastas I207 - Digitaalloogika ja -süsteemid - L18

  3. Digitaalsüsteemi loomine • Kuidas saada hakkama tootlikkuse puudujäägiga ? • Vaadelda süsteemi kui tervikut • ülesande püstitamine • riist- ja tarkvara koosdisain • Olemasolevate lahenduste kasutamine • olemasolevad algoritmid (tarkvara teegid) • olemasolevad moodulid (riistvara “teegid”) • IP-plokid [ IP = Intellectual Property ] • Projekteerimine on jagatud sammudeks I207 - Digitaalloogika ja -süsteemid - L18

  4. Abstraktsioonitasemed • Süsteemi tase • moodulid & infokanalid • Algoritmi tase • alam-moodulid & protokollid • Register-siirete (RT) tase • ALS-d, registrid & siinid • Loogikatase • skeem loogikaelementidest • Füüsikatase • skeem transistoridest • kristalli pinnalaotus I207 - Digitaalloogika ja -süsteemid - L18

  5. Süsteemi tase Algoritmi tase süntees Käitumuslik mõõde Struktuurne mõõde Register-siirete tase analüüs süsteemi spetsifikatsioon CPU, mälu Loogika tase täpsustamine algoritm protsessor, alamsüsteem register-siirete kirjeldus ALU, register, MUX Skeemi tase loogika-avaldised loogikalüli, triger optimeerimine diferentsiaalvõrrandid transistor abstraheerimine ristkülik / polügon genereerimine std.element / alam-element makro-element ekstraheerimine plokk / kiip kiip / trükkplaat Füüsikaline mõõde Sünteesi tasemed I207 - Digitaalloogika ja -süsteemid - L18

  6. Sünteesi-süsteemid • Süsteemi süntees • Liideste süntees • Kõrgtaseme süntees • Formaalne süntees • Registersiirete taseme süntees • Loogika süntees • Testi süntees • Füüsikaline süntees I207 - Digitaalloogika ja -süsteemid - L18

  7. Sünteesi võlud • Automatiseerimine võimaldab • vähendada projekteerimiskulusid • kiirendada projekteerimist • uusimate tehnoloogiate kasutamist • formaliseeritus • rohkem võimalikke lahendusvariante • vähem vigu projekteerimisel I207 - Digitaalloogika ja -süsteemid - L18

  8. Otsustused sünteesil • Loogikatase • tuhanded sõlmed • mõni realiseerimisviis • Register-siirete tase • sajad sõlmed • kümned realiseerimisviisid • Käitumuslik ja süsteemi tase • kümned sõlmed • sajad realiseerimisviisid I207 - Digitaalloogika ja -süsteemid - L18

  9. Sünteesi valud • Loogikatase • teisendus mõjutab ainult lähinaabreid • lihtsad teisendusalgoritmid on ka efektiivsed • Register-siirete tase • teisenduse mõjutab suurem • Käitumuslik ja süsteemi tase • teisendus mõjutab praktiliselt kogu süsteemi • puuduvad universaalsed (ja efektiivsed) teisendus-algoritmid I207 - Digitaalloogika ja -süsteemid - L18

  10. “Ränikompileerimine” • Kõrgtaseme süntees • sisendiks riistvara kirjelduskeel • väljundiks operatsioonide järjestus • (mikro)programm • Tarkvara süntees (kompileerimine) • sisendiks kõrgtaseme keel • väljundiks operatsioonide järjestus • (assembler) programm • väljundiks mooduli arhitektuur I207 - Digitaalloogika ja -süsteemid - L18

  11. Disaini / sünteesi etapid • Ideest realisatsioonini / töötava mudelini • Simuleeritava spetsifikatsioon loomine • idee korrektsuse kontroll • Spetsifikatsiooni tükeldamine • hallatavus ja korduvkasutatavus • Algoritmide täpsustamine • arhitektuursete lahenduste valimine • Spetsifikatsiooni teisendamine skeemiks • süntees kitsamas tähenduses • Realiseerimine / Prototüüpimine I207 - Digitaalloogika ja -süsteemid - L18

  12. control control control control control PE PE PE PE PE M M M M M C C C C C Süntees ~~ Tükeldamine • Digitaalsüsteem = juhtosa + andmeosa + liides + mälusüsteem I207 - Digitaalloogika ja -süsteemid - L18

  13. Esitusviisid • Algoritmid • programmeerimiskeeled • funktsionaalne tükeldamine • algoritmi ja andmete täpsustamine • riistvara kirjelduskeeled • struktuursed, käitumuslikud ja sünteesitavad keeled • plokk-diagrammid • … ja nende sarnased • StateChart, Behavioral FSM, jne. I207 - Digitaalloogika ja -süsteemid - L18

  14. n1 p m2 a p2 x p3 b n2 p1 y m1 p4 c q p6 n3 p5 m3 p7 n1 m1 1 1 1 1 1 0 0 1 1 m1 m3 m2 m2 n2 n3 m3 a p=ac x b q=p+c y c Abstraktsed mudelid • Struktuurid • naabrusmaatriks • ahelaloend (netlist) • lihtne esitada hierarhiat • Loogikavõrkgraafid • struktuur + käitumine • kombinatoorne • sünkroonne I207 - Digitaalloogika ja -süsteemid - L18

  15. a b d e c f x + + + * * Abstraktsed mudelid • Automaadid • Andmevoograafid • otsene sõltuvus operatsioonide (ülesannete) vahel • kontrollsõltuvused? x1=a+b; x2=x1*c; x3=d+e; x4=x3*f; x=x2+x4; I207 - Digitaalloogika ja -süsteemid - L18

  16. br nop nop nop nop nop nop nop * * * + + Abstraktsed mudelid • DFG - Data-Flow Graph • CFG - Control-Flow Graph • CDFG - Control-and-Data-Flow Graph • Hierarhia • Kontrollsõltuvused • call / return • hargnemised • tsüklid I207 - Digitaalloogika ja -süsteemid - L18

  17. Näiteülesanne • Valgusfoori kontroller • vt. ka http://mini.li.ttu.ee/~lrv/tlc_xsa/ sidestreet_light highway_car highway_light sidestreet_car I207 - Digitaalloogika ja -süsteemid - L18

  18. Vahendid • WebPACK (Xilinx, Inc., www.xilinx.com) • simulaator + süntesaator • XSA-200 (XESS Corp., www.xess.com) I207 - Digitaalloogika ja -süsteemid - L18

  19. VHDL-st skeemini • Ideest mudelini • modelleeritav spetsifikatsioon • käitumuslik VHDL • Mudelist struktuurini • struktuur register-siirete tasemel • sünteesitav VHDL • Struktuurist skeemini • loogikaelemendid + ühendused • sünteesi juhtimine • Iteratsioonid! I207 - Digitaalloogika ja -süsteemid - L18

  20. Valgusfoori kontroller • Kiirtee ja kõrvaltee • auto sensorid -- highway_car & sidestreet_car • valusfoorid -- highway_light & sidestreet_light • Tulede kombinatsioonid & lülitumiste järjekorrad kiirtee kõrvaltee kestus 1 roheline punane piiramata 2 vilkuv roheline punane 3 sek. 3 kollane kollane 2 sek. 4 punane roheline maksimaalselt 10 sek. 5 punane vilkuv roheline 3 sek. 6 kollane kollane 2 sek. • Ooteajad: • autole kõrvalteel - mitte üle 30 sekundi, kui kiirteel on autosid • roheline kõrvalteele - 10 sekundit (pluss 3” vilkuvat rohelist) I207 - Digitaalloogika ja -süsteemid - L18

  21. Ideest mudelini • Modelleeritav spetsifikatsioon • käitumuslik VHDL • Liidese ja andmetüüpide deklareerimine • abstraktsed andmetüübid • Käitumusliku spetsifikatsiooni loomine • kontrollvoog & keerukad ajakontrolli käsud • Testkeskkonna loomine, simuleerimine • lihtne testimine -- kiire, kuid ebapiisav... • põhjalik testimine -- keerukas ja aeglane... I207 - Digitaalloogika ja -süsteemid - L18

  22. Ideest mudelini • Andmetüübid (pkg-enum.vhd) package TLC_data_types is -- Sensors type Sensor is (NoCar, Car); -- Lights type Light is (Red, Yellow, Green, GreenBlink); end TLC_data_types; • Olem (tlc-entity.vhd) use work.TLC_data_types.all; entity TLC is port ( highway_car : in Sensor; sidestreet_car : in Sensor; highway_light : out Light := Red; sidestreet_light : out Light := Red ); end TLC; I207 - Digitaalloogika ja -süsteemid - L18

  23. Ideest mudelini • Kontrollvoog & ajakontrolli käsud -- ... -- Waiting for no more than 25 seconds ... if highway_car = Car then wait until highway_car = NoCar for 25 sec; end if; -- ... • vt. tlc-bhv.vhd • Testimine • kiire -- vali olem ja forsseeri signaalid • [signals] sidestreet_car -> Edit -> Force… • raske kontrollida kriitilisi olukordi I207 - Digitaalloogika ja -süsteemid - L18

  24. Ideest mudelini • Testimine • põhjalikum – testkeskkond fikseeritud autode saabumisjadaga (vt. tlc-qtst.vhd) • universaalne – testkeskkond muudetava autode liikumisjadaga (vt. tlc-tst.vhd) • Failid • pkg-enum.vhd (1) – pakett “TLC_data_types” • cfg-[q]bhv.vhd (5) – konfiguratsioon • tlc-[q]tst.vhd (4) – testkeskkond • tlc-entity.vhd (2) – olem “TLC” • tlc-bhv.vhd (3) – arhitektuur “BEHAVIOR” I207 - Digitaalloogika ja -süsteemid - L18

  25. Simuleerimine (Modelsim) • Andmed – loendustüüp I207 - Digitaalloogika ja -süsteemid - L18

  26. Mudelist struktuurini • Struktuur register-siirete tasemel • sünteesitav VHDL • (1) Riistvaralised andmetüübid • loendusandmetüübid -> bititüübid • (2) Käitumise täpsustamine #1 • vilkuv roheline • (3) Käitumise täpsustamine #2 • taimer (2 Hz) ja loogika vilgutamiseks • ajakontrollikäsud -> sünk.käsud+taimer • (4) Sünteesitav VHDL (& struktuur) I207 - Digitaalloogika ja -süsteemid - L18

  27. Riistvaralised andmetüübid • Andmetüübid (pkg-bitv.vhd) package TLC_data_types is -- Sensors subtype Sensor is bit; constant NoCar : Sensor := '0'; constant Car : Sensor := '1'; -- Lights -- "red" - bit 0, i.e., the uppermost light -- "yellow" - bit 1, i.e., the middle light -- "green" - bit 2, i.e., the lowermost light subtype Light is BIT_VECTOR (0 to 2); constant Red : Light := "100"; constant Yellow : Light := "010"; constant Green : Light := "001"; constant GreenBlink : Light := "000"; end TLC_data_types; I207 - Digitaalloogika ja -süsteemid - L18

  28. Riistvaralised andmetüübid • Testimine identne esialgsega • Failid • pkg-bitv.vhd (1) – pakett “TLC_data_types” • cfg-[q]bhv.vhd (5) – konfiguratsioonid • tlc-[q]tst.vhd (4) – testkeskkonnad • tlc-entity.vhd (2) – olem “TLC” • tlc-bhv.vhd (3) – arhitektuur “BEHAVIOR” • Kõik uuesti kompileerida! I207 - Digitaalloogika ja -süsteemid - L18

  29. Simuleerimine (Modelsim) • Andmed – bit ja bit_vector I207 - Digitaalloogika ja -süsteemid - L18

  30. Käitumise täpsustamine #1 • Rohelise tule vilkumine täpsustatud highway_light<=GreenBlink; wait for 3 sec; • on asendatud tsükliga for i in 1 to 6 loop highway_light <= GreenBlink; wait for 0.25 sec; highway_light <= Green; wait for 0.25 sec; end loop; • Uued failid • cfg-bhv2.vhd – konfiguratsioon (pikk test) • tlc-bhv2.vhd – arhitektuur “bhv_refined” I207 - Digitaalloogika ja -süsteemid - L18

  31. Simuleerimine (Modelsim) • Täpsustatud rohelise tule vilkumine I207 - Digitaalloogika ja -süsteemid - L18

  32. Käitumise täpsustamine #2 • Esmane tükeldamine neljaks alamosaks: • (1) Taimeri taktsignaal sagedusega 2 Hz (määratud rohelise tule vilkumissagedusega), kasutatav ka süsteemse taktina • (2) ja (3) Sama-aegne protseduur vilkuvat roheliset tekitava kombinatoorse loogika jaoks • (4) Kontrollvoog, kuhu on sisse toodud taktsignaal (timer) ja ajakontrolli käsud on asendatud sünkroniseerimiskäskude ja loenduri kombinatsiooniga • Protseduur “WaitFor” asendamaks “wait for…” käske I207 - Digitaalloogika ja -süsteemid - L18

  33. Käitumise täpsustamine #2 • Teisendusi -- Waiting for no more than 25 seconds ... if highway_car = Car then wait until highway_car = NoCar for 25 sec; end if; • on asendatud -- Waiting for no more than 25 seconds ... if highway_car = Car then for counter in 0 to 49 loop -- 25 seconds exit when highway_car = NoCar; wait on timer until timer='1'; end loop; end if; I207 - Digitaalloogika ja -süsteemid - L18

  34. Käitumise täpsustamine #2 • Uued failid • cfg-bhv-rtl.vhd – konfiguratsioon (pikk test) • tlc-bhv-rtl.vhd – arhitektuur “bhv_rtl” • Simuleerimine on oluliselt aeglasem • Aeg vaja paikka panna – run 400 sec • Kontrollvoole vastav protsess on põhimõtteliselt sünteesitav kõrgtasemesüntesaatori poolt • Vajalikud võivad olla konkreetse sünteesivahendi iseärasustest tingitud muudatused I207 - Digitaalloogika ja -süsteemid - L18

  35. Simuleerimine (Modelsim) • Esmane struktuur + taktsignaalid I207 - Digitaalloogika ja -süsteemid - L18

  36. Sünteesitav VHDL • Registersiirete tasemele vastav kirjeldus • Sünteesitav enamike sünteesivahendite poolt (võib vajada pisitäpsustusi) • nt. teisendus “integer range 0 to 63” -> “unsigned(5 downto 0)” (IEEE 1164) • Struktuur • esialgse tükeldamise täpsustus • Täiendavad signaalid (nt. reset) • Kontrollvoog on asendatud automaadi ja loenduriga I207 - Digitaalloogika ja -süsteemid - L18

  37. Sünteesitav VHDL • Komponendid • (1) Arhitektuur “RTL”, mis seob komponendid (fail “tlc-rtl.vhd”). Sünteesitav (RTL mõistes). • (2) Taktgeneraator (olem “clock(bhv)” failis “tlc-rtl.vhd”). Genereerib taimeri 2 Hz signaali, süsteemse taktsignaali (100 Hz) ja algnullimis- signaali. • (3) Vilkuvat rohelist tekitav kombinatoorne loogika (olem “BlinkLights(bhv)” failis “tlc-rtl-blnk.vhd”). Sünteesitav. • (4) Kontroller automaadi ja loendurina (olem “Controller(RTL)” failis “tlc-rtl-ctrl.vhd”). Sünteesitav. I207 - Digitaalloogika ja -süsteemid - L18

  38. state highway_light_sgn sidestreet_light_sgn highway_light_new sidestreet_light_new next_state BlinkLights highway Clock Controller BlinkLights sidestreet highway_car sidestreet_car reset cnt reg f-n TLC highway_light sidestreet_light timer reset_counter counter_out clk Controller(RTL) Sünteesitav VHDL I207 - Digitaalloogika ja -süsteemid - L18

  39. Sünteesitav VHDL • VHDL konstruktsioone • automaadi olek -- FSM state type state_type is (highway_green, highway_wait_25sec, highway_wait_25sec_loop, ... sidestreet_yellow, sidestreet_yellow_loop); signal state, next_state: state_type; • abisignaalid • register->komb.loogika: “highway_light_sgn” • komb.loogika-> register: “highway_light_new” • taimeri väärtus & nullimine I207 - Digitaalloogika ja -süsteemid - L18

  40. Sünteesitav VHDL • VHDL konstruktsioone next_state <= state; -- ... case state is -- ... -- Waiting for no more than 25 seconds ... when highway_wait_25sec => if highway_car=NoCar then next_state <= highway_blink; end if; reset_counter <= '1'; next_state <= highway_wait_25sec_loop; when highway_wait_25sec_loop => if highway_car=NoCar or counter_out >= 50 then next_state <= highway_blink; end if; -- ... I207 - Digitaalloogika ja -süsteemid - L18

  41. Sünteesitav VHDL • Uued failid • cfg-[q]rtl.vhd – konfiguratsioonid • tlc-rtl.vhd – arhitektuur “RTL” • tlc-rtl-blnk.vhd – vilkuv roheline [BinkLights(bhv)] • tlc-rtl-ctrl.vhd – kontroller+taimer [Controller(RTL)] • Simuleerimine on oluliselt aeglasem • Aeg vaja paikka panna • run 50 sec [konfiguratsioon “tlc-qrtl”] • run 400 sec [konfiguratsioon “tlc-rtl”] I207 - Digitaalloogika ja -süsteemid - L18

  42. Simuleerimine (Modelsim) • Sünteesitav VHDL + kiire testpink I207 - Digitaalloogika ja -süsteemid - L18

  43. Süntees & prototüüpimine • Taktsignaal & taimer • XSA plaadi taktigeneraator - 10 MHz • 2 Hz genereerimine taktsignaalist • 22-bitine loendur --> 4*220 --> 2,38 Hz architecture behave of timer is signal count: std_logic_vector (21 downto 0); begin process begin wait on clk until clk='1'; count <= count + '1'; end process; blink <= To_Bit ( count (count'high) ); end behave; I207 - Digitaalloogika ja -süsteemid - L18

  44. Süntees & prototüüpimine • Väljaviikude määramine • XSA plaadi piirangud • Uued failid • tlc-rtl-fpga.vhd – arhitektuur “RTL_fpga” • tlc-rtl-timer.vhd – 2 Hz taimer [Timer(behave)] • Etapid • süntees (RTL kirjeldus --> CLB) • paigaldus & trasseerimine • FPGA konfiguratsiooni genereerimine • 45 moodulit 768-st (5%) & 112 Mhz I207 - Digitaalloogika ja -süsteemid - L18

  45. WebPACK / ISE I207 - Digitaalloogika ja -süsteemid - L18

  46. FPGA sisu I207 - Digitaalloogika ja -süsteemid - L18

  47. FPGA detailsem sisu I207 - Digitaalloogika ja -süsteemid - L18

  48. Hilisemad muudatused • Täiustatud taimer • 10 MHz / 5000000 ja 0,5-ne täitetegur (fail "tlc-rtl-timer2.vhd") • Muudetud pakett "TLC_data_types“ • kollase ja rohelise tule korraga põlemine (fail "pkg-bitv2.vhd") • Muudetud kontroller • 2 sek. vilkuv roheline, 3 sek. põlev kollane ja kollane põleb koos punasega enne rohelist (fail "tlc-rtl-ctrl2.vhd") I207 - Digitaalloogika ja -süsteemid - L18

More Related