1 / 29

Skaitmeninių sistemų projektavimas L aik inių parametrų analizė (modulis T170M012) 20 1 2

Skaitmeninių sistemų projektavimas L aik inių parametrų analizė (modulis T170M012) 20 1 2. Kauno technologijos universitetas Elektroninių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis. Geri straipsniai. http://www.eetimes.com/ :

Télécharger la présentation

Skaitmeninių sistemų projektavimas L aik inių parametrų analizė (modulis T170M012) 20 1 2

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ų projektavimasLaikinių parametrų analizė (modulis T170M012)2012 Kauno technologijos universitetas Elektroninių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis

  2. Geri straipsniai • http://www.eetimes.com/ : • How to achieve timing closure in large, complex FPGA designs(2010, Altera) • How to achieve timing-closure in high-end FPGAs (2008, Synopsys) viso 29

  3. Statinė laikinė analizė • Tai skaitmeninio įrenginio analizės, derinimo ir teisingo veikimo tikrinimo (validavimo) metodas • Naudojama papildyti funkcinį verifikavimą • Atliekama po sintezės ir išdėstymo (placement-and-routing) operacijų, patikrinti ar neatsirado laikinių reikalavimų pažeidimų viso 29

  4. Kokie parametrai analizuojami? • Nusistovėjimo laikas (angl. setup) • Išlaikymo laikas (angl. hold) • Atstatymo (angl. recovery) ir pašalinimo (angl. removal) laikas • Daugiatakčiai maršutai (angl. multicycle paths) viso 29

  5. Duomenų perdavimas registruose • Duomenys skaitmeniniuose įrenginiuose perduodami iš vieno registro į kitą. viso 29

  6. Maršrutų tipai • Maršrutai (angl. path) jungia du mazgus skaitmeniniame įrenginyje, pvz., vieno registro išėjimą su kito registro įėjimu. • Maršrutų tipai: • Duomenų • Taktinių impulsų • Asinchroniniai (asinchroninių set/reset signalų) • Kraštiniai (edge pats) – tarp vidinio registro įėjimo/išėjimo (angl. pin) ir išorinio FPGA prievado (angl. port) viso 29

  7. Nusistovėjimo laiko (setup)sąvoka • Nusistovėjimo laikas – tai minimalus laiko intervalas, kurį įėjime veikiantys duomenys turi būti stabilūs prieš fiksuojantį taktinio impulso frontą. viso 29

  8. Išlaikymo (hold) laiko sąvoka • Išlaikymo laikas – tai minimalus laiko intervalas, kurį įėjime veikiantys duomenys turi būti stabilūs po fiksuojančio taktinio impulso fronto. viso 29

  9. Atstatymo ir pašalinimo laikai • Atstatymo (recovery) laikas – tai minimali laiko trukmė, kurį asinchroninis valdymo signalas (pvz., preset) turi būti stabilus prieš aktyvų taktinio impulso frontą. Tai panašu į nusistovėjimo laiką, bet taikoma asinchroniniams signalams. • Pašalinimo (removal) laikas – tai minimali laiko trukmė, kurį asinchroninis valdymo signalas (pvz., preset) turi būti stabilus po aktyvaus taktinio impulso fronto. Tai panašu į išlaikymo laiką, bet taikoma asinchroniniams signalams. viso 29

  10. Laikinių parametrų paaiškinimas • tH – Hold (Reikiamas) • tHA – Hold Atvykimo (arrival) • tHR – Hold Rezervas (slack) • tS – Setup (Reikiamas) • tSA – Setup Atvykimo (arrival) • tSR – Setup Rezervas (slack) • tCO – Clock-to-Output viso 29

  11. Altera Quartus TimeQuest analizatorius • TimeQuest analizatorius tikrina laikinius santykius, kurie turi būti tenkinami, kad įrenginys funkcionuotų teisingai. • TimeQuest tikrina signalo atvykimo laiką (angl. arrival time) su reikalaujamu laiku (angl. required time) laikinių santykių patikrinimui. Šaltinis:www.altera.com > Support > Design Software > TimeQuest Timing Analyzer > Clock Analysis viso 29

  12. Nusistovėjimo (išlaikymo) laiko rezervas (angl. slack) • Teigiamas rezervas parodo kaip gerai tenkinami laikiniai nusistovėjimo (išlaikymo) reikalavimai • Neigiamas rezervas parodo kiek netenkinami laikiniai nusistovėjimo (išlaikymo) reikalavimai (Angl. slack – laisvumas) viso 29

  13. TimeQuest Analyzer iš Quartus aplinkos laikinės analizės rezultatų sąsaja Rodomi visi taktiniai signalai; Rodoma atliktos analizės rezultatai prie skirtingų temp. ir FPGA greičių; Rodomi Setup, Hold ir t.t. Analizės visiems taktiniams signalams rezultatai; Neigiamas rezervas (slack) indikuoja, kad reikalavimai netenkinami. viso 29

  14. TimeQuest Analyzer iš Quartus aplinkos laikinės analizės rezultatų sąsaja viso 29

  15. TimeQuest Analyzer sąsaja, rodanti duomenų maršrutus, kuriuose pažeisti laikiniai reikalavimai viso 29

  16. Duomenų perdavimas į išorinius prievadus viso 29

  17. SDC failai TimeQuest analizei SDC (Synopsis Design Constraints) – failai rašomi SDC kalba ir naudojami laikiniams reikalavimams projekte specifikuoti. viso 29

  18. Pavyzdys: laikinė analizė • db – įėjimo duomenys, paduodami išorinio įrenginio, kuris taktuojamas FPGA išėjimo signalu clkoutIn • res – išėjimo duomenys, kurie bus priimami išorinio įrenginio, taktuojant jį clkout signalu • clkin – FPGA taktinių impulsų įėjimas viso 29

  19. SDC failas • Aprašome taktinius signalus • Aprašome nusistovėjimo ir išlaikymo laikų reikalavimus, kuriuos kelia duomenis priimantis įrenginys #************************************************************** # Taktinių signalų nustatymas #************************************************************** create_clock -name {clk} -period 10.0 -waveform { 0.000 5.0 } [get_ports {clkin}] #************************************************************** # Output Delay nustatymas #************************************************************** set tSU 2.0 set_output_delay -clock { clk } -reference_pin [get_ports {clkout}] -max $tSU [get_ports {res}] set tH 1.5 set_output_delay -clock { clk } -reference_pin [get_ports {clkout}] -min -$tH [get_ports {res}] viso 29

  20. Nusistovėjimo laiko analizės (Report Setup Summary) ataskaita (Setup slack=4,406 ns) Launch frontu duomenys įrašomi į trigerį D. Realioje FPGA Launch frontas yra užvėlintas per 2,124 ns, o duomenys išėjime (Data Arrival) atsiranda dar už 5,556 ns. Latch frontu duomenys bus įrašomi į išorinį įrenginį. Latch frontas yra vėlinamas 4,086 ns (apatinis Clock Delay). Būtent šiuo momentu taktinis impulsas pasieks išorinio įrenginio clk iėjimą. Duomenys savo ruožtu turi būti paduoti iš anksto per tSU=2,0 ns laiką (diagrama Output Delay). Matome, kad tarp duomenų atėjimo (Data Arrival) ir duomenų būtino pasirodymo (Data Required) momentų yra laiko rezervas Slack=4,406 ns. Laikiniai reikalavimai tenkinami. viso 29

  21. Nusistovėjimo laiko analizės (Report Setup Summary) ataskaita (Setup slack= - 1,7 ns) Kaip atrodytų situacija, kai laikiniai tSU reikalavimai netenkinami galima matyti kairėje, kai SDC faile buvo nustatyta tSU=12,0 ns. viso 29

  22. Kas dar nurodoma SDC failuose? Išimtys (angl. exceptions) • Neteisingi maršrutai (komanda set_false_path) – tai maršrutai, kurie gali būti ignoruojami atliekant laikinių parametrų analizę • Maksimalus arba minimalus vėlinimas nurodytame maršrute (set_max_delay ir set_min_delay) viso 29

  23. Kas dar nurodoma SDC failuose? FPGA viduje sugeneruoti taktiniai signalai (padalinti arba padauginti su PLL arba invertuoti) viso 29

  24. Kas dar nurodoma SDC failuose? Taktinių signalų grupės, kurių nereikia analizuoti kartu: • Kai vienu metu veikia tik vienas taktinis signalas • Kai taktiniai signalai yra iš skirtingų šaltinių arba netaktuoja tų pačių duomenų maršrutų, pvz., paleidžiantis frontas yra vieno taktinio signalo, o fiksuojantis – kito. viso 29

  25. Laikinių reikalavimų įtaka sintezei(Timing-Driven Synthesis) #************************************* # Create Clock #************************************* create_clock -name {clk1} -period 10.000 -waveform { 0.000 5.000 } [get_ports {clk1}] module Fub1 ( clk1 ,in1 ,out1 ); output [4:0] out1 ; reg [4:0] out1 ; input clk1 ; wire clk1 ; input [4:0] in1 ; wire [4:0] in1 ; always @(posedge clk1) begin case (in1) 1: out1<=out1+1; 2: out1<=out1+2; 3: out1<=out1+3; 4: out1<=out1+4; 5: out1<=out1+5; 6: out1<=out1+6; 7: out1<=out1+7; 8: out1<=out1+8; 9: out1<=out1+9; default: out1<=out1; endcase end endmodule Pavyzdys: Verilog modulis ir SDC failas laikinei analizei viso 29

  26. Timing-Driven Synthesis opcija viso 29

  27. Laikinių reikalavimų įtaka sintezei (rezultatai) clk1=10 ns, Timing-Driven Synthesis = Off clk1=5 ns, Timing-Driven Synthesis = Off clk1=5 ns, Timing-Driven Synthesis = On Pateikti pav. rodo, kaip TimeQuest analizės pagalba galima matyti, koks taktinis dažnis moduliui jau yra per didelis (10ns dar buvo gerai, nes nusistovėjimo laiko rezervas (Setup Slack) yra teigiamas, o 5ns jau per mažai, nes Setup Slack= -0.991 ns). Pažymėjus Timing-Driven Synthesis opciją ir perkompiliavus, laikiniai reikalavimai vis tiek nebuvo tenkinami, nors neigiamas Setup Slack= - 0.259 ns ir pagerėjo. viso 29

  28. Uždavinys • FPGA perduoda duomenis išoriniam įrenginiui kartu su taktiniu signalu. • Atlikus laikinių parametrų analizę pasirodė, kad rezervas tSU<0. • Ką galėtume padaryti, kad laikiniai parametrai būtų tenkinami? Kaip? Užrašykite Verilog kalba. viso 29

  29. Galimi sprendimai • Taktinio signalo invertavimas • Taktinio signalo arba duomenų vėlinimas • Taktinio dažnio sumažinimas (parašykime Verilog kalba) viso 29

More Related