290 likes | 488 Views
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/ :
E N D
Skaitmeninių sistemų projektavimasLaikinių parametrų analizė (modulis T170M012)2012 Kauno technologijos universitetas Elektroninių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis
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
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
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
Duomenų perdavimas registruose • Duomenys skaitmeniniuose įrenginiuose perduodami iš vieno registro į kitą. viso 29
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
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
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
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
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
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
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
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
TimeQuest Analyzer iš Quartus aplinkos laikinės analizės rezultatų sąsaja viso 29
TimeQuest Analyzer sąsaja, rodanti duomenų maršrutus, kuriuose pažeisti laikiniai reikalavimai viso 29
SDC failai TimeQuest analizei SDC (Synopsis Design Constraints) – failai rašomi SDC kalba ir naudojami laikiniams reikalavimams projekte specifikuoti. viso 29
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
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
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
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
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
Kas dar nurodoma SDC failuose? FPGA viduje sugeneruoti taktiniai signalai (padalinti arba padauginti su PLL arba invertuoti) viso 29
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
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
Timing-Driven Synthesis opcija viso 29
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
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
Galimi sprendimai • Taktinio signalo invertavimas • Taktinio signalo arba duomenų vėlinimas • Taktinio dažnio sumažinimas (parašykime Verilog kalba) viso 29