小編給大家分享一下PR中數(shù)據(jù)輸入的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:空間域名、雅安服務器托管、營銷軟件、網(wǎng)站建設、定南網(wǎng)站維護、網(wǎng)站推廣。
在Innovus 中預定義了一坨init_XXX 的變量,用戶需要將對應輸入文件指定給對應的變量,然后執(zhí)行init_design 工具就會將所有文件依次讀入,對于verilog netlist 老驢扒拉了幾個flow 關鍵的init 變量有:
- init_design_settop, 這個變量默認值是1,意思是要求客戶指定當前設計的top 名字給變量init_top_cell; 如果將該變量設成0, 則讓工具自己識別top. 建議,用默認值,用戶自己指定top.
- init_lef_file, 將tech-lef + other lefs 指定給這個變量,這里有個問題,如果某個lef file 在init_design 之前沒加上,要增量讀入該怎么 辦?在Innovus common ui 中用命令: read_physical -add_lefs XX 可以增量讀入lef.
init_mmmc_file, 指定viewDefinition.tcl, viewDefinition 中的library_set 指定了所有要用的library, rc_corner 指定了對應的QRC file, constraint_mode 指定了SDC 文件。
init_verilog, 指定網(wǎng)表文件。
init_pwr_net, 指定 global power nets.
init_gnd_net, 指定 global ground nets.
init_cpf_file, 如果是多電壓域設計,用于指定CPF 文件,如果power intent 是用1801 描述的,則不能用該變量指定1801 文件,需要用命令read_power_intent -1801 $1801_file 讀入,如果在viewDefinition 中用到了power domain 則應該在init_design 之前讀入,init_design 之后再執(zhí)行 commit_power_intent. read_power_intent 這個命令的使用方式跟Genus 一致,在Genus 中多了一步apply_power_intent, 用于將設計跟power domain 綁定,commit_power_intent 用于插入low power cell.
至此,所有輸入文件都指定完畢,執(zhí)行init_design 就會將對應文件讀入,init_design 讀取文件的順序還沒看,按照邏輯猜測一下讀入順序:library -> tech-lef -> lef -> QRC -> cpf -> netlist -> SDC.
除了上面那一坨指定輸入文件的init_XXX 變量之外,還有一坨用于控制輸入過程的init_OOO 變量:
- init_design_netlisttype, 用于指定netlist 的format 是verilog 還是OA, 老驢目前只學習verilog 部分,所有OA 相關的都忽略掉。
- init_ignore_pgpin_polarity_check, 用于指定一個leaf cell pin name 的list, 告訴工具在globalNetConnect 或在CPF 中connect supply net 時忽略極性檢查. 這貨好像對1801 flow 沒用,正好這周一解了個相關的問題,當時遇到的問題是1801 flow, 在commit_power_intent 時工具報Error: IMPDB-1220 跟WARN: IMPDB-1278, 對于這種問題在Innovus 中先用命令 dbGet [dbGet top.nets.name PMD0_VDD -p].isPwr 來檢查工具將對應的supply net 認成了什么。在老驢遇到的case 中,是在1801 中用connect_supply_net 要將一個analog Ground 連到一個analog IP 上,但是在1801 中只定義了supply net 并沒有指定該net 用于Ground 所以工具將其認成了Power. 解的辦法是在1801 中為其create 一個supply set 并將其指定為ground.
- init_verilog_tolerate_port_mismatch, 這個變量默認值是0, 不能容忍module 定義的port 比實例化時的port 少,如果將其設為1 工具在解析netlist 時如果發(fā)現(xiàn)module 的port 比實例化時的port 少,工具會在module 上創(chuàng)建一個port, 老驢以為這個變量在設計臟的時候特別有用。
- init_lef_check_mask_shifts, 用于檢查tech-lef 和MACRO sections 中 FIXEDMASK 跟LAYERMASKSHIFT 是否沖突,該變量默認值是off 就是不檢查,如果設為on 工具發(fā)現(xiàn)沖突會報錯并停掉,如果設為bypass 工具發(fā)現(xiàn)沖突只報錯不停止,其實老驢還不知道FIXEDMASK 跟LAYERMASKSHIFT 在不同工藝中有多重要,先放到這里,萬一以后發(fā)現(xiàn)重要呢,方便找。
- init_import_mode, 用于指定setImportMode 的option, 如 set init_import_mode {-discardFloatingVNets true -keepEmptyModule true},此處留個問題:是不是默認innovus 會將empty module 刪掉?如果是,那綜合netlist 中有沒有empty module 應該都無所謂吧?如果是,為什么有的后端一定要求把empty module 刪掉?
- init_design_uniquify, 控制innovus 解析netlist 時是否做uniquify, 既然innovus 要求netlist 是unique 的,那為毛不把該變量的默認值設為1?
以上是“PR中數(shù)據(jù)輸入的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章標題:PR中數(shù)據(jù)輸入的示例分析
網(wǎng)站路徑:
http://weahome.cn/article/psjocd.html