Design-Compiler-一般問題解答_第1頁
Design-Compiler-一般問題解答_第2頁
Design-Compiler-一般問題解答_第3頁
Design-Compiler-一般問題解答_第4頁
Design-Compiler-一般問題解答_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)1.1 什么是DC? DC(Design Compiler)是Synopsys公司的logical synthesis工具,它根據(jù)design description和design constraints自動綜合出一個優(yōu)化了的門級電路。它可以接受多種輸入格式,如HDL、Schematics、Netlist等,并能生成多種性能report,在reducing design time的同時提高了設計的性能。1.2 DC能接受多少種輸入格式? 支持 .db、.v、.vhd、.

2、edif、.vgh、.lib等,.db一般是廠商的單元庫;.v是veilog的后綴;.vhd是VHDL的后綴;.edif 和 .vhd是兩種形式的netlist。1.3 DC提供多少種輸出格式? 提供 .db、.v、.vhd、edif、.vgh等,并可以輸出sdc、sdf等相關格式文件。1.4 DC的主要功能或者主要作用是什么? DC是把HDL描述的電路綜合為跟工藝相關的門級電路。并且根據(jù)用戶的設計要求,在timing、area、power上取得最佳的效果。在floorplanning和placement和插入時鐘樹后返回DC進行時序驗證。1.5 如何尋找?guī)椭? 幫助可以用3種求助方式: 1.

3、 使用SOLD,到文檔中尋求答案 2. 在命令行中用man+ DC命令(我最喜歡這種) 3. 在命令行中用info+ DC命令1.6 如何找到SOLD文檔? SOLD文檔可以在teminal中輸入sold&執(zhí)行。 $ sold& 或者用命令 which dc_shell找到dc的安裝目錄。找到online目錄。1.7 如何配置DC? 綜合設置提供必要的參數(shù)給DC,使工具能夠知道進行綜合時所需要的必要的信息,如:工藝庫,目標庫,標志庫等等。要在.synopsys_dc.setup上設置好這些參數(shù)。而.synopsys_dc.setup要在三個目錄下有說明,一個是synopsys的安裝目錄,一個是

4、用戶文件夾,最后一個是工程目錄。由后一個設置覆蓋前一個文件。 具體參數(shù)包括:search_path, target_library, link_library, symbol_library1.8 target_library 是指什么? target_library是在synthesis的map階段時需要的實際的工藝庫。1.9 link_library如何指定? 鏈接時需要的庫,通常與library相同,設置時,需要加“*”,表示內存中的所有庫。1.10 search_path 的設置? 該參數(shù)指定庫的存儲位置1.11 DA 和DC有什么區(qū)別? DA是 Design Analyzer的簡稱,

5、它調用DC來進行綜合,但是它是圖形化的,可以看邏輯電路圖,當然需要你的庫有symbol庫.1.12 為什么要使用DA而不用shell接口? 這個問題似乎很幼稚,shell接口當然可以用,但我們大部分人已經習慣使用windows這種友好的圖形化界面,恰好DA是圖形化的,非常適合初學者!不過本人強烈建議使用shell接口的。synopsys的synthesis包括dc_shell(這是synopsys自帶的)和dc_shell -tcl_mode(script命令遵循tcl語法格式)。1.13 SOLD是什么? SOLD是 Synopsys OnLine Document的簡稱,基本包括了syno

6、psys公司的所有工具的文檔集合.1.14. translation這一步是用什么DC命令來實現(xiàn)的? 我們知道,DC綜合過程包括3個步驟:translation + logic optimization + mapping transition 對應命令為 read_verilog(read_vhdl等) logic optimization 和 mapping 對應于 compile1.15. 邏輯優(yōu)化和映射(logic optimization + mapping)又是用什么DC命令來實現(xiàn)的? logic optimization 和 mapping 均在compile命令完成,但是可以指

7、定使用特殊的優(yōu)化方法:structural 和flatten,建議大家在synthesis時同時生成structural 和flatten格式的netlist,然后打開看看到底有什么不同之處。1.16. 什么是DC script? DC script 是一組dc 命令的集合,使得綜合可以流程化也易于管理。1.17. 基于路徑的綜合的意思是什么? 路徑(path),是DC中的一個重要概念。它包括4種路徑方式: 1 input到FF的D端。 2 FF的clk到另一個FF的D端。 3 FF的clk到輸出Q。 4 input到output。 基于路徑的綜合就是對這四種路徑進行加約束,綜合電路以滿足這些

8、約束條件。1.18 DC中的各類參數(shù)的單位是如何確定的呢? 參數(shù)的單位由所使用的庫決定,在讀入庫之后,可以用report_lib去看庫的信息,里邊有詳細的單位說明1.19 DC中的對象有哪些? 設計變量:一共有八種:Design, cell, reference, port, pin, net, clock, library。其中cell是子設計的例化,reference是多個子設計例化的通稱,port是design的輸入輸出,pin是cell的輸入輸出。1.20 什么叫start point 和end point? 這兩個概念是DC中path概念的起始點和終點: 1 起始點可以是input和

9、FF的clk 2 終點可以是FF的data和output 這些是timing analyzing基本概念,希望大家結合DC和STA的實際牢牢掌握!1.21 如何尋找想約束的對象? 一個是全部查找包括:all_inputs , all_outputs, all_clocks, all_registers。 比如:set_input_delay 1.0 all_inputs() :這種寫法針對dc_shell,若是在dc_shell -tcl_mode下,則為 set_input_delay 1.0 all_inputs 一個是根據(jù)關鍵詞進行查找:get_ports() 或表示成 find(por

10、t, ),前者是tcl mode下的寫法! 作為一個IC設計者,在此強烈建議初學者多看SOLD文檔,多多實踐,多多學習TCL、Perl等常用的 腳本語言。1.22 什么叫一個設計(design) ? 設計是DC中的重要對象,你所要綜合的東西就叫design,確切的說是你所要綜合模塊的top文件。1.23 什么叫cell 和leaf cell? 在design中,instance的子設計,稱為cell。 沒有子模塊的cell 統(tǒng)稱為leaf cell,我們在定義clock constraint的時候,一般需要把path指到leaf cell。1.24 reference 是指什么? 和cell

11、有什么區(qū)別? 當存在一個模塊被多次例化,那么該模塊就稱為reference1.25 如何讀入一個design? 使用analyze + elaborate 或者 read_verilog、read -f verilog、read_vhdl、read_file 命令。1.26 analyze+ elaborate 和 read 命令有什么區(qū)別? read_file 是可以讀取任何synopsys支持格式的;analyze和eloborate只支持verilog和VHDL兩個格式,但是他們支持在中間過程中加入?yún)?shù)而且以便以后可以加快讀取過程。1.27 如何處理多個引用的問題? 方法一:使用 uni

12、quify,就是把引用幾次那么就在內存中換名引入多個子設計,適用于不同時序約束 要 求。 方法二:可以用dont_touch命令,先對多個引用的設計進行編譯之后,設置為dont_touch,適用于基 本相同的環(huán)境要求。 方法三:把兩個引用進行 flatten(沒有層級結構),然后進行綜合。1.28 link的作用是什么? 確定所有文件是否均存在并把它們鏈接到當前設計。1.29 環(huán)境設置是指什么? 是指芯片物理上的參數(shù),比如電壓,溫度等。1.30 如何設置線載模型? 使用set_wire_load_model 命令, 如:set_wire_load_model -name KME -librar

13、y libr1.31 如何得知線載模型的種類? 讀取庫文件到DC中,使用report_lib看有多少可用的線載模型1.32 如何設置工作環(huán)境變量? 使用set_operating_conditions 如:set_operating_conditions WCCOM1.33 工作環(huán)境變量的類別可以分為哪幾類? 一般可以分為最壞(worst case)、典型(typical)、最佳(best case)。1.34 為什么要設置工作環(huán)境變量? 由于我們要做的是一顆要在實際環(huán)境中正常工作的芯片,而溫度和環(huán)境對電路的性能有很大影響,因此為了盡可能地模擬芯片工作,設置合適的工作環(huán)境信息是非常必要的。1.

14、35 read 和 analyze + ealborate做了哪些工作? 語法檢查,建立GETECH庫(大家可以自己去搜索什么叫GETECH庫)值得注意的是,read命令不自動執(zhí)行l(wèi)ink操作。1.36 getech庫是做何用途的? GETCH庫是由軟宏(soft macros)組成的,是加法器,乘法器之類的東西,這些組件都是在DW里引用的。1.37 調用getech 庫中的加法器之后,如何去自己選擇一個設計者需要的加法器? 我沒有用過!暫時沒有答案1.38 調用了加法器之后在優(yōu)化階段還能夠掉換不同的加法器么? 我沒有試過!暫時沒有答案1.39 如何檢查script文件中有何錯誤呢? dc_s

15、hell -tcl -f1.40 如果在dc_shell啟動后, 想修改庫,怎么辦? 摁一下ctrlc暫停,改完之后繼續(xù)運行!1.41 如何在dc_shell環(huán)境下執(zhí)行UNIX命令? 這個問題很簡單,也很幼稚!在此不作回答!1.42 優(yōu)化分為幾個層次? 一個是基于HDL的結構優(yōu)化轉化為GETCH結構;基于GTECH的邏輯優(yōu)化,包括架構(strcuture),打平(flatten),轉化為優(yōu)化過的GETCH;基于GETCH的門級優(yōu)化,主要作用是映射到實際的工藝庫中。1.43 什么是約束? 約束分為design constraint和optimization constraint。design c

16、onstraint不由用戶確定,已經由所采用的庫確定了,用戶只能添加進一步的約束。optimization constraint分為兩個方面,timing constraint和area constraint。timing constraint又可分為組合電路的約束,時序電路的約束以及輸入輸出的約束。1.44 DC Script支持TCL么? 支持,synopsys支持dc_shell 和dc_shell -tcl_mode。前者是SYNOPSYS的內部語言,后者遵循tcl語法。1.45 綜合時不想使用某些庫單元進行mapping,怎么辦? 使用set_dont_use 命令/* Part 2

17、 Compile stategy */2.1 約束一個設計分為幾個方面? 總的分為:area constraint 和 timing constraint。2.2 面積約束的命令是什么? set_max_area2.3 如何對時鐘進行約束? 描述一個clock包含兩個因素:頻率和相位。 使用create_clock 建立時鐘constraint。 如:create_clock -name clk200 -period 5 -waveform 0 ,2.5 find(pin, armpll_wrapper_x/g_reg/Q)2.4 如何對pll進行約束? 如果存在PLL,那么首先對輸入的初始時

18、鐘用create_clock進行約束。 再用create_propagated_clock 對PLL輸出時鐘在基于輸入時鐘進行約束,或者直接用create_clock, 兩者的clock path 都得來自leaf cell2.5 什么叫虛擬時鐘約束? 虛擬時鐘是指在當前要綜合的模塊中不存在的物理時鐘。比如,設計外的DFF的時鐘。 建立這樣的時鐘有益于描述異步電路間的約束關系,不過本人在實際工作中基本不設置!2.6 DC可以對時鐘的哪些特性進行約束? DC支持對時鐘的T,waveform,jitter,skew,latency 描述,請大家務必搞清楚jitter和skew得區(qū)別, latenc

19、y有多種,如果你正在做timing 分析工作,那么問一下自己:latency、jitter、skew等這些因素已經 搞明白了嗎?2.7 如何約束時鐘的jitter? 使用set_clock_uncertainty -setup(-hold) 約束時鐘的jitter2.8 如何約束時鐘的skew? 使用set_clock_uncertainty 約束時鐘網絡的skew2.9 如何約束時鐘的latency? 使用 set_clock_latency -option ,option is source or network,the default is network。2.10 如何對當前設計的端口

20、外部條件進行約束? 端口的外部條件包括:輸入驅動大小,輸出負載的大小,扇出大小。2.11 輸入端口被多大的驅動所驅動? 可以使用set_dirive 和set_driving_cell,或者用set_input_transition,注意這三者區(qū)別!2.12 輸出端口要驅動多大的負載? 使用set_load 對輸出電容值進行約束,單位根據(jù)工藝庫的define所定。2.13 DC是基于path的綜合,那么在約束時如何體現(xiàn)? 我們知道,基于path會有四種路徑形式,DC中提供 create_clock 定義寄存器和寄存器之間的路徑; set_input_delay 定義輸入與寄存器之間的路徑; s

21、et_output_delay 定義寄存器與輸出之間的路徑; set_max_delay 和 set_min_delay定義輸入和輸出的組合路徑;2.14 set_input_delay 的目的是什么? 定義輸入延時,來約束設計中輸入邏輯的時序2.15 set_output_delay 的目的是什么? 定義輸出延時,來約束設計中的輸出邏輯的時序2.16 如何對組合電路進行約束? 組合電路有set_max_delay 和set_min_delay進行約束2.17 如何對電路的速度進行約束? 使用create_clock2.18 當一個組合電路超過了時鐘周期約束,那么該如何處理? 加上set_ma

22、x_delay重新約束,這樣綜合工具就會按照set_max_delay 的值盡量滿足要求,不過這樣會增加design的area,如果timing還是不能滿足,那只能修改設計。2.19 當出現(xiàn)環(huán)路電路時,如何約束電路? 對某一路徑使用set_false_path2.20 如何加強設計規(guī)則的約束? DRC是電路必須滿足的設計規(guī)則,使用 set_max_capcitance set_max_fanout set_max_tansition2.21 在添加了4種路徑約束后,那么在synthesis時如何為某些path移除約束,不作timing分析? 使用set_flase_path使得某些路徑不進行t

23、iming check2.22 對于某些路徑需要在固定的幾個周期內完成,如何對這些路徑進行約束? 使用set_multicycle_path 對路徑進行約束2.23 在添加這些特殊的路徑約束,如何恢復原來通用的時序約束? 使用reset_path2.24 如何對三態(tài)門進行約束? 由于綜合時,默認三態(tài)門是enable的,所以對某些路徑要設置set_false_path2.25 如何對門控時鐘進行約束,以保證功能正常? 對門控時鐘電路進行setup和hold檢查,使用set_gating_clock_check2.26 設置對某些網絡比如clock或者reset不進行添加buffer等操作,應該怎

24、么約束? 使用set_dont_touch_network,請注意和set_dont_touch用法的區(qū)別2.27 如何修正hold 時間沖突? 加入set_fix_hold約束,這步約束在front-end遇到時一般不考慮,留給back-end公司處理!/* Part 3 Compile stategy */3.1 綜合時,有多少選擇綜合策略呢? 可以使用top-down 和bottom-top。3.2 top-down 方式有何優(yōu)點? 僅需提供單一TOP的script 將設計作為一個整體,可得到較好的結果3.3 bottom-up方式有什么優(yōu)點? 對多時鐘的綜合更為適合 每個子模塊都有自己的script,便于管理 當一個模塊改變時,不用重新綜合所有設計3.4 如何進行time-budge? 使用character

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論