版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、DAY11Introduction to Synthesis2Setting Up and Saving Designs3Design and Library Objects4Area and Timing Constraints2AgendaSynopsys 10-I-011-SSG-013 2007 Synopsys, Inc. All Rights Reserved4- 1Unit ObjectivesAfter completing this unit, you should be able to:n Constrain a design for arean Constrain a d
2、esign for setup timing, under the following conditions:l The designs specs are given or knownl Can be block- or chip-level designl Single clock, single cycle environmentl Default design scenario minimal command optionsn Create and execute a constraints file4- 8RTL Synthesis FlowWrite RTL code and si
3、mulateCreate start-up fileSynthesize the designLoad designs and librariesCreate constraints file Area constraint Timing constraints Environmental attributesApply design constraintsSelect appropriate compile flowWrite out design dataCommands To Be Covered(1 of 2)# Area and Timing ConstraintsTOP.con#r
4、eset_design; # Good practice step set_max_area 245000create_clock -period 2 get_ports Clkcreate_clock period 3.5 name V_Clk; # VIRTUAL clock set_clock_uncertainty setup 0.14 get_clocks Clk set_clock_latency source max 0.3 get_clocks Clk set_clock_latency max 0.12 get_clocks Clk set_clock_transition
5、0.08 get_clocks Clk set_input_delay -max 0.6 -clock Clk all_inputs set_input_delay -max 0.5 -clock V_Clk get_ports “A C F” set_output_delay -max 0.8 -clock Clk all_outputsset_output_delay -max 1.1 -clock V_Clk get_ports “OUT2 OUT7Commands To Be Covered(2 of 2)# Run script #read_verilog A.v B.v TOP.v
6、 current_design MY_TOPredirect tee file precompile.rpt linkredirect append tee file precompile.rpt check_designRUN.tclredirect append tee file precompile.rpt source echo -ver TOP.con redirect append tee file precompile.rpt report_port verbose redirect append tee file precompile.rpt report_clockredir
7、ect append tee file precompile.rpt report_clock skew redirect append tee file precompile.rpt check_timing.UNIX% dc_shell-t -f RUN.tcl | tee i my.loghelp *clockhelp verbose create_clock create_clock help printvar *_libraryman target_librarySpecifying an Area Constraintdc_shell-xg-t read_verilog MY_DE
8、SIGN.vdc_shell-xg-t current_design TOP_CHIP_or_BLOCKdc_shell-xg-tlinkdc_shell-xg-t set_max_area 245000n Area unit is defined by the library supplier its not in the library so ask!l 2-input NAND gatesl Transistorsl mil2, mm2 or m2n How do you determine what value to use?l From the spec or project lea
9、dl If migrating to a newer technology use a smaller % of the old design sizel Estimate based on experienceIs set_max_area 0 acceptable ?Specifying Setup-Timing Constraintsn Objective: Define setup timing constraints for all paths within a sequential designl All input logic paths (starting at input p
10、orts)l The internal (register to register) pathsl All output paths (ending at output ports)n Under the following conditions:l You are given the designs specsl Block- or chip-level designl Single clock, single cycle or environmentAssumed external launching circuitryCurrent designAssumed external capt
11、uring circuitryDefault Design ScenarioJANEs_DESIGNMY_DESIGNJOEs_DESIGNMNXSTClkFF4QBQDDQFF3QBDQFF2QBFF1QBQD發(fā)射捕獲Design Compiler assumes a“synchronously- clocked” environment. By default:n Input data arrives from a pos-edge clocked devicen Output data goes to a pos-edge clocked devicePath 3CLKZDQAPath2
12、Path 1Timing Analysis During/After SynthesisDC breaks designs into timing paths, each with a:n Startpointl Input portl Clock pin of Flip-Flop or registern Endpointl Output portl Any input pin of a sequential device, except clock pin14- 9Constraining Register-to-Register PathsJANEs_DESIGNMY_DESIGNJOE
13、s_DESIGNMNXSTClkFF4QBQDDQFF3QBDQFF2QBFF1QBQDWhat information must you provide to constrain all the register-to-register paths in MY_DESIGN for setup time?4- 27Unit of time is 1ns in this example. Defined in the technology library.Spec:Clock Period = 2nscreate_clock -period 2 get_ports ClkMY_DESIGNTS
14、etup, FF30.2nsNXTmaxSClkDQFF3QBDQFF2QB0ns1ns2nsConstraining Reg-to-Reg Paths: ExampleWhat is the maximum delay requirement Tmax for the register-to-register path through X in the MY_DESIGN? create_clock Required ArgumentsTCL: Embedded command create_clock -period 2 get_ports ClkTCL: Command optionMY
15、_DESIGND Q FF3D Q FF2NXSPeriod0ns1ns2nsUnit of time is 1ns in this example. Defined in the technology library.Port object ClkSame name by defaultRises at 0ns with 50% duty cycle, by defaultClock object ClkDefault Clock Behaviorn Defining the clock in a single-clock design constrains all timing paths
16、 between registers for single-cycle, setup timen By default the clock rises at 0ns and has a 50% duty cyclen By default DC will not “buffer up” the clock network, even when connected to many clock/enable pins of flip-flops/latchesl The clock network is treated as “ideal” - infinite drive capabilityu
17、 Zero rise/fall transition timesu Zero skewu Zero insertion delay or latencyl Estimated skew, latency and transition times can, and should be modeled for a more accurate representation of clock behaviorModeling Clock Treesn Design Compiler is NOT used to synthesized clock buffer treesn Clock tree sy
18、nthesis is usually done by a physical or layout tool, based on actual cell placementD_InD QD QFF1FF2CLKLogical CircuitD_InD Q FF1CLKD QFF2Post-Layout CircuitWhat clock tree effects need to be taken into account by the synthesis tool, prior to layout?Modeling Clock SkewD_InCLKD Q FF1TUD Q FF2Post-Lay
19、out CircuitUncertainty models the maximum delay difference between the clock network branches, known as clock skew, but can also include clock jitter and margin effects:set_clock_uncertainty setup TU get_clocks CLKplaced on clock objectsPre-Layout: clock skew + jitter + marginset_clock_uncertainty a
20、nd Setup TimingExample:create_clock -period 2 get_ports CLK set_clock_uncertainty setup 0.14 get_clocks CLKXD QFF2D QFF1FF2 setup check at: 2 - 0.14 - 0.08 = 1.78FF1 Data Launch Edge (No uncertainty!)/ /.08.14Assume lib setup = 0.08ns011.78 1.92 2 Max allowable delay for block “X”Modeling Latency or
21、 Insertion Delayn Network latency models the average internal delay from thecreate_clock port or pin to the register clock pinsn Source latency models the delay from the actual clock origin to the create_clock port or pin:create_clock -period 10 get_ports CLK set_clock_latency -source max 3 get_cloc
22、ks CLK set_clock_latency max 1 get_clocks CLK ;# pre layout #set_propagated_clock get_clocks CLK ;# post layoutl Used for either ideal or propagated clocks (post layout)CLK3ns1nsOrigin of ClockSource LatencyNetwork LatencyCLKQ DYOUR_DESIGNModeling Transition TimeD_InCLKD Q FF1TTD Q FF2Post-Layout Ci
23、rcuitTransition models the rise and fall times of the clock waveform at the register clock pins:set_clock_transition TT get_clocks CLKPre/Post Layout Clock jitter 0.05 + skew 0.3 + margin 0.15 transition uncertainty latency ideal clock reset_designcreate_clock -p 5 -n MCLK Clk set_clock_uncertainty
24、0.5 MCLKset_clock_transition 0.08 MCLK set_clock_latency -source max 4 MCLK set_clock_latency max 2 MCLKreset_designcreate_clock -p 5 -n MCLK Clk set_clock_uncertainty 0.2 MCLKset_clock_latency -source max 4 MCLK set_propagated_clock MCLKSynthesis ConstraintsPost-CTS STA ConstraintsConstraining Inpu
25、t PathsJANEs_DESIGNMY_DESIGNMANXSClkDQFF3QBDQFF2QBFF1QBQDWhat additional information must you provide to constrain all the input paths (N) in your design for setup time?Constraining Input Paths: Example 1Spec:Latest Data Arrival Time at Port A, after Janes launching clock edge = 0.6nsmydesign.concre
26、ate_clock -period 2 get_ports Clkset_input_delay -max 0.6 -clock Clk get_ports AJANEs_DESIGNMY_DESIGNTSetup, FF20.2nsDQM0.6nsATmaxNXSFF1QBClkDQFF3QBDQFF2QBWhat is the maximum delay Tmax for the input path N inMY_DESIGN? Constraining Input Paths: Example 2Spec:Clock frequency = 400MHz. Maximum delay
27、for path N = 1.5nsU1Clk(400 MHz)0.1nsD QNA=setupTTmax= 1.5nsMY_DESIGNHow do you constrain MY_DESIGN for the indicated Tmax?create_clock get_ports Clkset_input_delay Constraining Output PathsMY_DESIGNJOEs_DESIGNNXSBTDQFF4ClkQBDQFF3QBDQFF2QBWhat additional information must you provide to constrain all
28、 the output paths (S) in your design for setup time?Constraining Output Paths : Example 1Spec:Latest Data Arrival Time at Port B, before Joes capturing clock = 0.8nsmydesign.concreate_clock -period 2 get_ports Clkset_input_delay -max 0.6 -clock Clk get_ports A set_output_delay -max 0.8 -clock Clk ge
29、t_ports BMY_DESIGNJOEs_DESIGNTT +NXTmaxSB0.7ns0.1nsTsetupTDQFF4ClkQBDQFF3QBDQFF2QBWhat is the maximum delay Tmax for the output path throughS in MY_DESIGN? Constraining Output Paths : Example 2Spec:The maximum delay to Port B = 0.7nsClk (500 MHz)ClkSQDBMY_DESIGNTmax 0.7nsU3How do you constrain MY_DE
30、SIGN for the indicated Tmax?create_clock -period 2 get_ports Clkset_output_delay Multiple Inputs/Outputs - Same ConstraintsMY_DESIGNASOut1BMCNOut2D QTClkD Qset_input_delay max 0.5 clock Clk remove_from_collection all_inputs get_ports ClkTo constrain all inputs the same, except for the clock port:set
31、_output_delay max 1.1 clock Clk all_outputsTo constrain all outputs the same:Different Port ConstraintsMY_DESIGNASOut1BMCNOut2D QTClkD QTo constrain most ports the same, except for some:set_input_delay max 0.5 clock Clk all_inputs set_input_delay max 0.8 clock Clk get_ports C remove_input_delay get_
32、ports ClkOverridesAnother way to remove the constraint from the Clk portJANEs_DESIGNMY_DESIGNMANXSCJOEs_DESIGNTsetup 0.1nsTEClkTE0.4nsBFDTG-T0.2nsGFF4QBQDDQFF3QBDQFF2QBFF1QBQDHow do you constrain the combinational path F? What is the maximum delay through F?create_clock -period 2 get_ports Clk set_i
33、nput_delay set_output_delay Exercise: Constraining Combinational PathsTF, max = 4- 284- 52Assumed external launching circuitryAssumed external capturing circuitryConstraining a Purely Combinational DesignJANEs_DESIGNMY_DESIGNMComboTClkFF4QBQDJOEs_DESIGNFF1QBQDWhat is different about this design?How
34、do we constrain such a design?Answer: Use a Virtual Clock!What is a virtual clock?ANSWER:n A clock that is not connected to any port or pin within the current designn Serves as a reference for input or output delaysn Creates a clock object with a user-specified namewithin Design Compilers memoryNo s
35、ource pin or port!Must be named-period 2-name VCLKcreate_clockExercise: Combinational DesignsJANEs_DESIGNTMY_DESIGNM0.4nsMAComboBT500 MHzClkFF4QBQDTsetup 0.1nsTT0.2nsJOEs_DESIGNFF1QBQDHow do you constrain the Combo path? What is the maximum delay through Combo?create_clock _-name VClk period 2 set_i
36、nput_delay set_output_delay TCombo, max = Time Budgeting(1/2)What if you do not know the delays on your inputs or the setup requirements of your outputs?ckt XMY circuitckt YD QFF1?ND QFF2XD QFF3S?DQFF4CLK (100 MHz)A:Create a Time Budget!Time Budgeting(2/2)circuit XMY circuit?NXCLK (100 MHz)40% of cl
37、ockperiodFF2QDFF1QDBetter to budget conservativelythan to compile with paths unconstrained!Time Budgeting Exampletiming_budget.tcl# A generic Time Budgeting script file # for MY_BLOCK, X_BLOCK and Y_BLOCK create_clock -period 10 get_ports CLKset_input_delay -max 6 -clock CLK all_inputs remove_input_
38、delay get_ports CLK set_output_delay -max 6 -clock CLK all_outputsX_BLOCKMY_BLOCKY_BLOCKX10S4N4X10S4N4X10FF4D QD QFF3FF2D QD QFF1Would it be easier to specify a time budget if all outputs were registered?Registered OutputsDQ FF0Y_BLOCKDQ FF3ClkQFF2DFF1ZDQAMY_BLOCKX_BLOCK# Assume every block has regi
39、stered outputs, 10ns clock:set clk_to_q_max 1.5; # Assume slowest register driving your input set clk_to_q_min 0.9; # Assume fastest register driving your output set all_in_ex_clk remove_from_collection all_inputs get_ports Clkset_input_delay-max$clk_to_q_max-clock CLK $all_in_ex_clk set_output_dela
40、y -max expr 10 - $clk_to_q_min -clock CLK all_outputsTCL: Arithmetic expressionAll input paths are constrained by set_input_delayAll register-to-register paths are constrained by create_clockJANEs_DESIGNMY_DESIGNJOEs_DESIGNTiming Constraint SummaryFF4QBQDFF1QBQDDQFF3QBDQFF2QBMNXSTClkAll output paths
41、 are constrained by set_output_delayYou specify how much time is used by external logic.DC calculates how much time is left for the internal logic.Executing Commands Interactivelyn Commands can be typed interactively in DC-shell:l OK for testing or debugging individual commandsl Not efficient for “p
42、roduction work”UNIX% dc_shell-tdc_shell-xg-t read_verilog A.v B.v TOP.v dc_shell-xg-t current_design MY_TOP dc_shell-xg-t linkdc_shell-xg-t check_designdc_shell-xg-t set_max_area 245000dc_shell-xg-t create_clock -period 2 get_ports Clkdc_shell-xg-t set_input_delay -max 0.6 -clock Clk all_inputs.Sour
43、cing Constraints Filesn For better efficiency, capture the constraints in a “constraints file”, which can be executed interactively in DC-shell:dc_shell-xg-t read_verilog A.v B.v TOP.v dc_shell-xg-t current_design MY_TOP dc_shell-xg-t linkdc_shell-xg-t check_designdc_shell-xg-t source echo verbose T
44、OP.con.set_max_area 245000TOP.concreate_clock -period 2 get_ports Clk set_input_delay -max 0.6 -clock Clk all_inputs.Executing Run Scripts in “Batch Mode”n For maximum efficiency capture run commands in a run script and execute in batch modeUNIX% dc_shell-t -f RUN.tcl | tee i run.logl Allows you to
45、spend time on “other tasks” while DC is runningread_verilog A.v B.v TOP.v current_design MY_TOPlinkRUN.tclcheck_designsource echo verbose TOP.con.l Do this only once you are certain the run script and constraints file are complete and correctOther tasksConstraints File Recommendations (1 of 3)Since
46、constraints are saved in the ddc design format it is recommended to:Erase all constraints from the current design before applying new constraints.reset_design set_max_area 245000create_clock -period 2 get_ports Clk.!When applying multiple constraint scripts, there should only be ONE reset_design com
47、mand.Include comments in your scripts# Comments in Tcl# If you want to comment on the same line, be sure # to use a semicolon before the comment:create_clock p 5 n V_Clk; # This is a VIRTUAL clockConstraints File Recommendations (2 of 3)This semicolon is required!Comment a line in a DC-Tcl script us
48、ing the # characterConstraints File Recommendations (3 of 3)n Use common extensions:e.g.RUN.tcl orDESIGN.conn Avoid using aliases and abbreviating commandsn Avoid abbreviating command options:create_clock period 5 get_ports clkn Avoid “snake scripts”Check the Syntax of ConstraintsUNIX% dcprocheck TO
49、P.conUNIX% dcprocheck TOP.con.Unknown option create_clock -freq create_clock -freq 3.0 get_ports clkn dcprocheck is a syntax-checking utility that is included with Design Compilern Available if you can launch DC no additional user setup requiredCheck the Values/Options of Constraintsdc_shell-xg-t report_port verbose.Output DelayMinMaxRelatedFanoutn Verify port constraints (non-clock)report_port -verboseOut
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度專利申請合同格式:專利申請項目知識產權保護協(xié)議2篇
- 二零二五年度家具租賃經營合同樣本3篇
- 正丁基鋰建設項目可行性研究報告申請立項備案
- 甘肅省天水市(2024年-2025年小學六年級語文)部編版期末考試((上下)學期)試卷及答案
- 2025年度O2O在線教育平臺與實體學校合作協(xié)議3篇
- 機場改造項目初步設計
- 二零二五年度房屋抵押貸款續(xù)貸合同范本封面2篇
- 二零二五年度多子女共同撫養(yǎng)離婚協(xié)議模板2篇
- 陜西省年儲藏銷售一萬噸果品項目申請報告
- taft波完整版可編輯
- 2023-2024學年浙江省富陽市小學數學五年級上冊期末通關試題
- TTAF 092-2022 移動終端融合快速充電測試方法
- GB/T 9410-2008移動通信天線通用技術規(guī)范
- GB/T 5343.2-2007可轉位車刀及刀夾第2部分:可轉位車刀型式尺寸和技術條件
- GB/T 32285-2015熱軋H型鋼樁
- GB/T 13772.2-1992機織物中紗線抗滑移性測定方法模擬縫合法
- SVG運行與維護課件
- 企業(yè)大學商學院建設方案
- 部編人教版 六年級下冊道德與法治課堂作業(yè)(含答案)
- 幼兒園大班數學:《長頸鹿的水果店》 課件
評論
0/150
提交評論