版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.,1,ASIC高級綜合技術,2007.03.14,.,2,提綱,綜合的定義 ASIC design flow Synopsys Design Compiler的介紹 Synopsys technology library Logic synthesis的過程 Synthesis 和 layout的接口LTL Post_layout optimization SDF文件的生成,.,3,綜合的定義,邏輯綜合:決定設計電路邏輯門的相互連接。 邏輯綜合的目的:決定電路門級結構、尋求時序和與面積的平衡、尋求功耗與時序的平衡、增強電路的測試性。 邏輯綜合的過程:首先,綜合工具分析HDL代碼,用一種模型(
2、GTECH) ,對HDL進行映射,這個模型是與技術庫無關的;然后,在設計者的控制下,對這個模型進行邏輯優(yōu)化;最后一步,進行邏輯映射和門級優(yōu)化,將邏輯根據約束,映射為專門的技術目標單元庫(target cell library)中的cell,形成了綜合后的網表。,.,4,ASIC design flow,設計舉例,tap控制器,已完成代碼編寫及功能仿真: Tap_controller.v Tap_bypass.v Tap_instruction.v Tap_state.v 完成全部設計還需經過如下幾個步驟: Pre_layout Synthesis STA using PrimeTime SDF
3、 generation Verification Floorolanning and Routing Post_layout 反標來自layout tool的信息, STA using PrimeTime Post-layout Optimization Fix Hold-Time Violation,.,5,ASIC design flow,Initial Setup :建立設計環(huán)境,技術庫文件及其它設計環(huán)境設置, .synopsys_dc.setup 文件 company =“NUDT”; designer =“rydeng”; technology=“SMIC 0.25” search_
4、path=search_path+“.” “/usr/golden/library/std_cells” “/usr/golden /library/pads” target_library =std_cells_lib.db link_library =“*”,std_cells_lib.db,pad_lib.db symbol_library =std_cells.sdb,pad_lib.sdb,.,6,ASIC design flow,Synthesis:利用約束完成設計的門和實現及掃描插入 Constrain scripts /* Create real clock if clock
5、port is found */ if (find(port, clk) = clk) clk_name = clk create_clock -period clk_period clk /* Create virtual clock if clock port is not found */ if (find(port, clk) = ) clk_name = vclk create_clock -period clk_period -name vclk ,.,7,ASIC design flow,Constrain scripts(續(xù)) /* Apply default drive st
6、rengths and typical loads for I/O ports */ set_load 1.5 all_outputs() set_driving_cell -cell IV all_inputs() /* If real clock, set infinite drive strength */ if (find(port, clk) = clk) set_drive 0 clk /* Apply default timing constraints for modules */ set_input_delay 1.2 all_inputs() -clock clk_name
7、 set_output_delay 1.5 all_outputs() -clock clk_name set_clock_skew -minus_uncertainty 0.45 clk_name /* Set operating conditions */ set_operating_conditions WCCOM /* Turn on Auto Wireload selection Library must support this feature */ auto_wire_load_selection = true,.,8,ASIC design flow,Compile and s
8、can insert的scripts,采用bottom_up的編譯方法 set_fix_multiple_port_net buffer_constants all compile scan check_test create_test_pattern sample 10 preview_scan insert_scan check_test 如果模塊內的子模塊具有dont_touch 屬性需添加如下命令,因要插入掃描 remove_attribute find(-hierarchy design,”*”)dont_touch Write netlist remove_unconnected_
9、ports find(-hierarchy cell,”*”) change_names hierarchy rules BORG set_dont_touch current_design write herarchy output active_design+”.db” write format verilog hierarchy output active_design+”.sv”,.,9,ASIC design flow,Pre_layout 的 STA :用DC的靜態(tài)時序分析引擎做block的STA,用PrimeTime做full_chip的STA。 Setup_time分析 Hol
10、d_time分析 其時序約束和提供給DC做邏輯綜合的約束基本相同。靜態(tài)時序分析同綜合一樣,是一個迭代的過程,和cell的位置及布線關系密切,通常都執(zhí)行多次,直到滿足需要。,.,10,ASIC design flow,SDF generation,pre_layout的SDF文件,用于pre_layout timing仿真,同時還需提供時序約束文件(SDF格式)給layout tool做布局布線。script文件如下: active_design=tap_controller read active_design current_design active_design link Create_
11、clock period 33 waveform 0 16.5 tck Set_dont_touch_network tck trst set_clock_skew delay 2.0 minus_uncertainty 3.0 tck set_driving_cell cell BUFF1X pin Z all_inputs() set_drive 0 tck trst set_input_delay 20.0 clock tck max all_inputs() set_output_delay 10.0 clock tck max all_outputs() write_timing f
12、ormat sdf-v2.1 -output active_design+”.sdf” write_constraints format sdf cover_design -output constraints.sdf,.,11,ASIC design flow,Verification 利用SDF文件進行動態(tài)時序仿真:功能仿真,使用verilog 編寫的test_bench 文件 形式驗證:利用數學算法檢查設計的邏輯的等效性,靜態(tài)驗證需要的時間比動態(tài)仿真少,且驗證更全面。 Floorolanning and global Routing; Estimated 寄生電容和RC delay的抽取
13、; 利用抽取的參數靜態(tài)時序分析,若時序不滿足要求,生成custom wire_load 做incremental synthesis即post_layout的優(yōu)化,采用reoptimize_design in_place命令,其script文件需反標抽取的參數到設計; Detail routing; real寄生電容和RC delay的抽?。?利用抽取的參數靜態(tài)時序分析,修正hold_time如需要做post_layout的優(yōu)化; 生成post_layout的SDF文件,做gate_level仿真驗證;,.,12,ASIC design flow,ECO Engineering change
14、order,不屬于正常的ASIC流程,一般只有在ASIC設計的后期,需要改變網表,可利用ECO,例如,在tape-out(sign-off)以后,遇見設計的硬件bug。采用ECO可僅對設計的一小部分重新布線不影響chip其他部分的位置及時序,通常,修改不能大于10%。 最新版本的DC提供由ECO compiler, 可使設計者手工修改網表,節(jié)省時間。 一些layout工具也具有ECO功能。,.,13,DC介紹,Synopsys Design Compiler,是一個基于UNIX系統(tǒng),通過命令行進行交互的綜合工具,除了綜合之外,它還含有一個靜態(tài)時序分析引擎及FPGA和LTL(links-to-l
15、ayout)的解決方案。我們就以下幾個方面對DC做以介紹: script文件:由DC的命令構成,可使DC自動完成綜合的整個過程。 DC支持的對象、變量、屬性 DC支持的文件格式及類型 DC在HDL代碼中的編譯開關,控制綜合過程 Translate_off/translate_on:指示DC終止或開始verilog 源代碼轉換的位置。 full_case:阻止case語句在不完全條件下生成latch。,.,14,Script 文件,Script 文件 Script 文件的構成 DC綜合環(huán)境設置(.synopsys_dc.setup); 屬性和約束信息; 綜合命令(read,compile); 控
16、制流命令; Conditional: Looping: if (expr) foreach(variable, list ) dc_shell commands dc_shell commands else dc_shell commands while( expr) dc_shell commands Script 文件的檢查:DC提供syntax and context checkers來檢查Script文件的錯誤,.,15,DC支持的對象、變量、屬性,對象,DC將設計對象分為8類,分別如下: Design:具有某種或多種邏輯功能的電路描述; Cell:設計的instance; Refer
17、ence:cell或instance在庫中定義的名字; Port:design的輸入、輸出; Pin:design中cell的輸入、輸出; Net:ports和pins之間或pins之間的信號名; Clock:被定義為時鐘源的pin或port; Library:cell的集合,如:target_library,link_library;,.,16,DC支持的對象、變量、屬性,例如:,.,17,DC支持的對象、變量、屬性,對象的查找命令格式 find -hierarchy type:DC支持的所有對象; name list:設計對象或庫對象的清單; -hierarchy:用于在設計的各層次尋找的
18、對象; 該命令的返回值為List,list:一種字符串類型,例如:mylist=el1 el2 el3 例如:,.,18,DC支持的對象、變量、屬性,變量,一種標識符,DC用于存儲信息,可做為命令的操作參數。 DC預定義的變量,可用它獲得綜合過程中的有關信息,如dc_shell_status; DC預定義的變量總有一個缺省值,用戶可定義另外的值,如; dc_shellvhdlout_use_package=library IEEE.std_logic_1164; library STD_LIB; 用戶定義的變量,用于自動化綜合的過程。如,可定義一個變量,存儲某個時鐘域的flop的個數。 定義變
19、量:dc_shelldesigner=“myname”; 獲得UNIX的環(huán)境變量: dc_shelldesigner=get_unix_variable(“USER”) 顯示變量的值: dc_shellList target_library target_library=“cbacore.db” 列出所有的變量: dc_shellList variable all 移去變量: dc_shell remove_ variable designer,變量沒有移去之前,不得重新定義。 注:變量值不會被保存在設計數據庫中。,.,19,DC支持的對象、變量、屬性,屬性,DC用于存儲具體的設計對象,如:n
20、ets,cells,clocks的信息,一般來說,屬性都是DC預定義,命令如下: set_attribute get_attribute dc_shellget_attribute STD_LIB default_max_transition,.,20,DC的文件格式及類型,DC支持的文件格式 *.db文件,DC的內部文件格式 Verilog文件 VHDL EDIF:electronic design interchange format,用于不同工具間門級網表的移植 DC的文件類型 Script files .scr RTL verilog file .v RTL VHDL file .vh
21、d Synthesized VHDL netlist .svhd EDIF file .edf Synthesized verilog netlist .sv Synopsys database file .db report . rpt Log files .log,.,21,Synopsys technology library,Synopsys technology library technology library由半導體制造商提供,定義cell的相關信息及設計標準約束,分為兩類: target libraries:在門級優(yōu)化及映射時,提供生成網表的cell; link librar
22、ies:提供設計網表中可引用的cell,DC不利用link libraries的cell做綜合; Synopsys technology library結構組織可看作實際上的技術庫標準,它是一個文本文件(擴展名“.lib”),在使用之前,需被編譯,產生一個“.db”文件,其構成如下: Library Group; Library level attributes; Environment description; Cell description;,.,22,Synopsys technology library,Library Group:定義庫名 library(ex25)/* Libra
23、ry Group /*start of library*/ /*end of library*/ 一般,一個庫文件含有一個Library Group ,庫文件和Library 名相同。,.,23,Synopsys technology library,Library level attributes:定義技術庫的全局屬性,如:技術庫的類型(CMOS/TTL)、日期、版本及缺省值,例如: library (ex25) technology(cmos); delay_model :table_lookup; date :”feb 29,2000”; revision :”1.0”; current
24、_unit :”1A”; time_unit :”1ns”; voltage_unit :”1V”; pulling_resistance_unit :”1kohm”; capacitive_load_unit(1.0 pf); default_inout_pin_cap :1.5; default_input_pin_cap :1.0; default_output_pin_cap :0.0; default_max_fanout :10.0; default_max_transition :10.0; default_operating_condition :NOMINAL; in_pla
25、ce_swap_mode :match_footprint; ,.,24,Synopsys technology library,Environment description:主要包括: 縮放因子(scaling factors) 時序模型(timing rang models) 操作條件(operation condition) 線性負載模型(wire-load models) 縮放因子(scaling factors 或K-factors):實際上是一個乘數因子,表示隨著PVT的變化,對設計延時的修正。例如: K_process_fall_transition :1.0; K_proce
26、ss_rise_transition :1.2; K_temp_fall_transition :0.03; K_temp_rise_transition :0.04; K_volt_fall_transition :0.02; K_volt_rise_transition :0.5; 時序模型(timing rang models):根據操作條件的變化,修正信號到達時間,如: Timing_range(BEST) faster_factor :0.5; slower_factor :1.3; ,.,25,Synopsys technology library,操作條件( operation
27、condition):定義了PVT和RC樹模型。 DC根據操作條件縮放cell和net的delay;,.,26,Synopsys technology library,tree_type:定義時序計算時內部連結的電阻、電容值的分配,有worst_case_tree, balance_tree, best_case_tree,三種類型可貢選擇。我們利用Dc來表示driver pin和driven cell的input pin的內連延時,則它們的wire_load分別對因如下:,.,27,Synopsys technology library,線負載模型(wire-load models):估計p
28、re_layout電路中net的電容,電阻及面積。Synopsys 提供了幾種不同的wire-load models以對相應的設計邏輯大小,它給出了net fanout 和net length 的統(tǒng)計關系。例如:,.,28,Synopsys technology library,Cell description:描述cell的屬性,包括:輸入輸出pin、時序等,例如: cell(BUFFD0) area:5.0; pin(Z) max_capacitive:2.2; max_fanout:4; function:”I”; direction:output; timing() related_p
29、in: “I”; pin(I) direction:input; capacitive:0.04; fanout_load:2.0; max_transition:1.5; ,.,29,Synopsys technology library,Cell各pin相關的DRC屬性 Input pin的fanout_load Output pin的max_fanout Input or output pin 的max_transition Input or output pin的max_capacitance DRC屬性定義了庫中cell的操作條件,和制造廠家的工藝技術相關,設計不能超出這些條件的規(guī)定
30、。 Cell 的DRC屬性可以用如下命令改動 dc_shell set_attribute find(pin,ex25/BUFFD0/Z) max_fanout 2.0 時序cell通過將clock input pin的“clock”屬性設置為true定義input pin為時鐘。,.,30,Synopsys technology library,Good library creterin 所有的cell都有各種各樣的驅動強度; Buffer和inverters的驅動強度變化范圍大; Cell的rise和fall的delay較均衡; 一個物理cell含有相同邏輯功能,但相位相反輸出隔離,如:O
31、R,NOR; 兩個物理cells,有相同邏輯功能,但相位相反如:AND,NAND; 擁有各種高驅動強度的帶有一個輸入inverters復雜cells(AIO,OAI); 擁有各種高驅動強度的高扇入的cells; 擁有各種驅動強度的,正沿負沿觸發(fā)的flip_flop; 擁有各種輸出驅動強度的flip_flop; 擁有各種不同的set,reset組合的Flop; 擁有各種驅動強度的,正沿負沿觸發(fā)的latch; 擁有delay cell;,.,31,Synopsys technology library,Synopsys 支持如下集中延時模型: CMOS通用延時模型; CMOS線性延時模型; CMO
32、S非線性查找表模型; 前兩種模型已不常用,我們現在采用非線性延時模型(non-linear delay model)計算cell的延時。所謂NLDM,是一個二維查找表,根據一個cell的input transition 和output loading 查找cell的delay和output transition ,一般每一個cell都有兩個表,一個用于cell delay,另一個用于output transition 。對于input transition 和output loading 沒有在表中列出的cell,可用插入法計算得到。 Cell的延時由input transition和outp
33、ut loading決定,但input transition就是driving cell的output transition,若driving cell有多個timing arc,則driven cell的延時計算會受影響。例如, U1有兩個output transition,對U2的延時計算如何選取input transition?我們可采用set_disable_timing U1 from A to Z,避免DC采用A to Z的timing arc.,reset,a,2ns,0.3ns,Z,Z,Affected gate,U2,U1,A,B,.,32,Partitioning for
34、synthesis,劃分的目的 使設計易于管理,提高設計的重用性 獲得更好的綜合結果 簡化約束和scripts,使綜合操作更容易; 提高編譯速度 劃分應綜合考慮以下幾個方面 邏輯的功能 設計的目標 編譯的技術 下面就以下幾個方面做簡單介紹 劃分的方法 劃分的原則 RTL編碼指南,.,33,Partitioning for synthesis,劃分的方法 在編寫HDL代碼之前,根據功能做初步劃分; DC可在綜合和對劃分進行修改; 在DC中改變劃分的命令:group,ungroup Group:將指定的實例組合為一個模塊,生成新的層次劃分; Ungroup:移去以前的模塊劃分。在執(zhí)行group和u
35、ngroup命令之前,包含實例的設計模塊需設置,命令如下: dc_shellcurrent_design top,U0,U1,U2,top,U0,U1,U2,sub1,top,Group U1 U2 design_name sub1,Ungroup -all,.,34,Partitioning for synthesis,劃分遵循的原則: 相關的組合邏輯在一個模塊內; 設計可重用性; 根據功能劃分模塊; 結構邏輯和隨機邏輯分開; 一個合理的尺寸(最大10K門); 在頂層分為I/Opads,DFT,clock,core logic; 在頂層不要加glue邏輯; 狀態(tài)機和別的邏輯分開; 在一個bl
36、ock中不要有多個時鐘; 用于時鐘同步的塊要隔離; 劃分時,應考慮Layout; 與技術庫相關的實例化的cell應在單獨模塊內;,.,35,Partitioning for synthesis,編碼指南 RTL級的HDL描述實際是電路結構的文本描述,它是技術無關的。HDL語言先于綜合工具出現,綜合工具只能根據HDL代碼進行邏輯推斷,對完成同一功能而書寫方式不同的HDL代碼,綜合工具會產生不同邏輯電路。所以不能依靠DC去修正不符合規(guī)范的代碼。寫代碼時,需清楚描述的硬件電路拓撲結構。 RTL描述內容如下: 寄存器的結構; 電路的拓撲; 寄存器之間的功能; DC僅對寄存器之間的邏輯進行優(yōu)化,不會對寄
37、存器的排列進行優(yōu)化。,.,36,Partitioning for synthesis,編碼指南 HDL代碼的編寫應注意技術獨立性,盡量減少直接引用某些庫中定義的hard_coded單元。若必須引用,將這些引用放在一個單獨的模塊內。 Clock 邏輯 Clock邏輯及reset生成應放在一個模塊中,便于綜合時對時鐘約束的定義; Clock命名在設計的各層次應保持一致性; 在一個模塊內不要由多個時鐘; 對于時鐘源的mux,用于測試時控制時鐘,最好人為實例化,便于set_disable_timing的使用; 在top level不要有粘膠邏輯; 一個文件僅包含一個模塊,模塊名與文件名相同; I/O
38、pad應為單獨的模塊; 最小化不必要的層次,過多的層次會降低電路的性能,因DC邏輯優(yōu)化不能跨越模塊的層次; 所有模塊的輸出直接來自寄存器的輸出; 狀態(tài)機 對verilog,State命名使用“parameters” ; 組合邏輯和時序邏輯分開;,.,37,休 息,.,38,綜合環(huán)境建立,在綜合之前必須用setup文件配置綜合的環(huán)境,下面,我們就以下幾個方面對setup文件進行介紹: setup文件的位置 setup文件的內容 setup文件舉例,.,39,綜合環(huán)境建立,setup文件的位置: 由一個setup文件提供,文件名必須為“.synopsys_dc.setup”,通過向相關環(huán)境變量賦值
39、,定義技術庫的位置及綜合需要參數。 setup文件的位置如下: Synopsys installation directory:它用于卸載Synopsys 技術獨立庫及別的參數,不包含設計相關的數據。 Users home director:用的setup信息。 Project working directory:設計的setup信息 DC按以上順序依次讀取setup文件,最后一個讀取的setup文件將覆蓋前面讀取的setup文件。 將設計相關的startup文件放于Project working directory下。,.,40,綜合環(huán)境建立,Startup文件必須定義如下變量: Searc
40、h_path:指明庫文件的位置 Target_library:既技術庫,由生產廠家提供,該庫中的cells,被 DC用于邏輯映射。 Target library的文件名應包含在Link library的文件清單中,用于DC讀取門級網表。 Link_ library:該庫中的cells,DC無法進行映射,例如:RAM,ROM及Pad,在RTL設計中,這些cells以實例化的方式引用。 Symbol_library:該庫文件包含技術庫中cells的圖形表示,用于DA生成門級示意圖。 Target_library和Link _library為設計者提供了將門級網表從一種技術在映射 到另一種技術的方法
41、,將舊的Target library文件名包含在Link_library的文件清單中,而Target_library包含新的Target library文件名,利用translate命令實現。,.,41,綜合環(huán)境建立,設計相關的startup 文件的例子: .synopsys_dc.setup 文件 company =“zte corporation”; designer =“name”; technology=“0.25 micron” search_path=search_path+“.” “/usr/golden/library/std_cells” “/usr/golden /libr
42、ary/pads” target_library =std_cells_lib.db link_library =“*”,std_cells_lib.db,pad_lib.db symbol_library =std_cells.sdb,pad_lib.sdb 其它的環(huán)境變量的設置參看DC的操作手冊。,.,42,邏輯綜合的過程,DC通過Script文件,自動完成模塊的綜合過程,其內容如下: RTL design entry Environment constraints Design and clock constraints Compile design into mapped gates
43、Optimizing design analyze the synthesis results and debug potential problems. Save design netlist Report constraints (Optional) Apply critical path constraints (Optional) Second compile to improve critical paths (Optional) Second path compile constraint report,.,43,RTL design Entry,功能:向DC輸入HDL描述的設計,
44、 命令:read和analyze set_max_transition 0.3 current_design set_max_capacitance 1.5 find(port,”out1”) set_max_fanout 3.0 all_outputs(),.,51,design and clock constraints,功能:描述設計的目標,包括時序和面積約束,要注意約束必須是可實現的,否則會導致面積超額,功耗增加或時序不能滿足要求。設計約束的DC命令如下:,set_output_delay on output,.,52,design and clock constraints,主要包括
45、兩點 約束綜合模塊的最大面積( set_max_area ) 約束綜合模塊timing path(Create_clock, Set_input_delay, Set_output_delay),.,53,design and clock constraints,時鐘描述 時鐘的描述在設計中很關鍵,傳統(tǒng)上,在clock source 加很大的buffer去驅動整個時鐘網絡,布線時,使時鐘網絡成魚骨狀,用于減少時鐘網絡延時和clock_skew。對于VDSM,傳統(tǒng)的方法已不適用,而是由layout工具根據cell的位置綜合時鐘樹,以滿足我們對時鐘的需求。下面,我們介紹一下描述時鐘的DC命令。 時
46、鐘DC命令介紹 Create_clock:用于定義時鐘的周期和波形(duty及起始沿); 例如:create_clock period 40 waveform0 20 CLK周期40ns 上升沿0 ns,下降沿20 ns; 對于僅包含組合邏輯的模塊,為了定義該模塊的延時約束,需創(chuàng)造一個虛擬時鐘定義相對于虛擬時鐘的輸入輸出延時。例如: create_clock -name vTEMP_CLK -period 20 Set_clock_transition:在pre_layout必須設置一個固定的transition值(由技術庫提供),因為時鐘網有很大的fanout.這樣可使DC根據該時鐘計算實際
47、的延時值。,.,54,design and clock constraints,Set_clock_skew:設置時鐘的skew及delay,pre_layout 和post_layout命令選項不一樣。-propagated選項讓DC計算時鐘的skew。,.,55,design and clock constraints,例如:Set_clock_skew uncertainty 0.5 CLK,.,56,design and clock constraints,Pre-layout時鐘DC 命令介紹: 估計時鐘樹的延時和抖動,DC命令如下: create_clock period 40 w
48、aveform 0 20 CLK Set_clock_skew delay 2.5 uncertainty 0.5 CLK Set_clock_transition 0.2 CLK set_dont_touch_network CLK set_drive 0 CLK 考慮到layout后時鐘網絡的變化可若下設置時鐘skew: set_clock_skew delay 2.5 minus_uncertainty 2.0 plus_uncertainty 0.2 CLK minus_uncertainty用于setup-time的計算, plus_uncertainty 用于hole-time的計
49、算. 一個cell的delay使根據input signal的斜率和output pin的電容負載決定,對于時鐘信號,因為clock network的fanout 很大,從而造成clock network 末端門的時鐘信號的clock transition time很慢,使DC計算的門延時失真。,.,57,design and clock constraints,post-layout時鐘DC命令介紹: 這個階段,用戶不需定義時鐘的延時和抖動,它們由時鐘樹決定。 clock transition time也不需定義。 如果layout 工具提供與DC的直接接口,則直接將包含有時鐘樹的網表回饋給
50、DC,不需在script文件中對時鐘的延時和抖動進行描述,如果layout 工具不能實現此功能,則需用戶從layout 工具提取時鐘的延時和抖動信息,描述命令同pre_layout.如果含有時鐘樹的網表能夠移植到DC,則clock的命令描述如下: create_clock period 40 waveform 0 20 CLK set_clock_skew propagated minus_uncertainty 2.0 plus_uncertainty 0.2 CLK set_dont_touch_network CLK set_drive 0 CLK 另外,很小的clock uncerta
51、inty定義的目的是考慮process的變化。 如果無法得到包含有時鐘樹的網表,只有SDF文件,則對原網表只需定義時鐘,并將SDF 文件回饋給原網表,時鐘的延時和抖動由SDF文件決定。,.,58,design and clock constraints,生成時鐘DC命令介紹: 對于內部產生時鐘的模塊,如內部含有分頻邏輯,DC不能模擬時鐘產生模塊創(chuàng)造一個時鐘對象。如下圖:DC創(chuàng)造時鐘命令應用于頂層輸入CLK,因clkB 繼承自CLK,所以Block B的時鐘來自CLK,對clkA,因CLK被clk_div 內部的寄存器隔離,不能傳遞給clkA,所以clkA 這個時鐘對象應在clk _div的ou
52、tput port定義,命令如下: dc_shellcreate_clock period 40 waveform 0 20 CLK dc_shellcreate_clock period 80 waveform 0 40 find(port,”clk_div/clkA”),Clk_div,clkB,Block A,Block B,CLK,clkA,.,59,design and clock constraints,輸入路徑DC命令介紹: Set_input_delay:定義信號相對于時鐘的到達時間。指一個信號,在時鐘沿之后多少時間到達。 例如:set_input_delay max 23.0
53、 clock CLK dataout set_input_delay min 0.0 clock CLK dataout ,.,60,design and clock constraints,輸出路徑DC命令介紹: Set_output_delay:定義從輸出端口數據不可用開始距后一個時鐘沿的時間:既時鐘周期間去cell從上一個時鐘沿開始的工作時間。 如:set_output_delay max 19.0 clock CLK dataout 用該命令對一些信號進行over-constrain,從而獲得最大 setup-time.但可能導致面積和功耗的增加。一個負值(如:-0.5)可在layou
54、t后,被 in-place optimization用于為hold_time修正提供timing margin.,.,61,design and clock constraints,其它設計DC命令介紹: Set_dont_touch_network,常用于port或net阻止DC隔離該net,和該net向連的門具有dont_touch屬性。常用于CLK和RST 例如:Set_dont_touch_networkCLK,RST 。 當一個模塊例用原始的時鐘作為輸入,在該模塊內部利用分頻邏輯產生了二級時鐘,則應對二級時鐘output port上設置set_dont_touch_network.
55、當一個電路包含門時鐘邏輯時,若在時鐘的輸入設置set_dont_touch_network,則阻止DC 隔離該門邏輯,導致DRC發(fā)現時鐘信號沖突,對門RESET同樣。 Set_dont_touch,應用于current_design,cell,net,references.阻止DC對模塊中的這些元素進行技術映射。 例如: Set_dont_touch find(cell,”sub1”) Set_dont_use:用于.setup文件用此命令可將技術庫中的某些cell濾出,禁止DC映射; 例如: Set_dont_use mylib/SD*,將技術庫中名字以SD起頭的flip-flops.,.,
56、62,Advanced constraints,Path:每一條路徑都由startpoint 和endpoint statrpoint:input ports 或時序cell的clock pins; endpoint: output ports或時序cell的data pins; Path_delay,.,63,Advanced constraints,Set_false_path: 指示DC不要對指定的路徑按照時序約束優(yōu)化,如:異步路徑或約束不可實現的路徑。false path路徑的鑒別在設計中很關鍵,如果不對false path路徑進行標識,DC會對所有的路徑進行優(yōu)化,從而影響關鍵時序路徑
57、。此命令用于當因為有false path關鍵邏輯時序靜態(tài)分析失敗時。 例1,在clock 域之間的false path: set_false_path -from get_clock CLKA -to get_clock CLKB,.,64,Advanced constraints,例2,logic的false path: dc_shellset_false_path through mux1/A through mux2/A dc_shell set_false_path through mux1/B through mux2/B,.,65,Advanced constraints,例3,對含有tristates 的path,DC總是認為tristates 使能,會產生false path,如下圖,讀寫不可能在同一個周期:,.,66,Advanced constraints,例3,我們推薦將tristates 最好移致頂層,在子模塊中就無false path : set_false_path -through get_pins U1/DATA_BUS_OUT1 -through get_pins U1/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 1633-2025塑料熱塑性塑料維卡軟化溫度(VST)的測定
- 妊娠晚期GDM血糖管理的臨床策略
- 城建公司考試題及答案
- 鼻腸管護理試題及答案
- 保育員職業(yè)素養(yǎng)考試題及答案
- 婦科腫瘤標志物聯(lián)合篩查策略
- 大數據賦能醫(yī)院管理:效率提升的關鍵策略
- 大數據在社區(qū)慢病環(huán)境風險預測中的應用
- 多院區(qū)醫(yī)療物資智能倉儲的統(tǒng)一調配方案
- 多維度滿意度數據挖掘與決策支持
- 2026春招:中國煙草真題及答案
- 急性酒精中毒急救護理2026
- 2021-2022學年天津市濱海新區(qū)九年級上學期物理期末試題及答案
- 江蘇省蘇州市、南京市九校2025-2026學年高三上學期一輪復習學情聯(lián)合調研數學試題(解析版)
- 2026年中國醫(yī)學科學院醫(yī)學實驗動物研究所第三批公開招聘工作人員備考題庫及答案詳解一套
- 2025年幼兒園教師業(yè)務考試試題及答案
- 國家開放大學《Python語言基礎》形考任務4答案
- (自2026年1月1日起施行)《增值稅法實施條例》重點解讀
- 2026春小學科學教科版(2024)三年級下冊《4.幼蠶在生長》教學設計
- 2026年護理部工作計劃
- DL-T976-2017帶電作業(yè)工具、裝置和設備預防性試驗規(guī)程
評論
0/150
提交評論