溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PR中數(shù)據(jù)輸入的示例分析

發(fā)布時間:2022-01-15 13:44:01 來源:億速云 閱讀:150 作者:小新 欄目:互聯(lián)網(wǎng)科技

小編給大家分享一下PR中數(shù)據(jù)輸入的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!


在Innovus 中預(yù)定義了一坨init_XXX 的變量,用戶需要將對應(yīng)輸入文件指定給對應(yīng)的變量,然后執(zhí)行init_design 工具就會將所有文件依次讀入,對于verilog netlist 老驢扒拉了幾個flow 關(guān)鍵的init 變量有:

  • init_design_settop , 這個變量默認(rèn)值是1,意思是要求客戶指定當(dāng)前設(shè)計的top 名字給變量init_top_cell; 如果將該變量設(shè)成0, 則讓工具自己識別top. 建議,用默認(rèn)值,用戶自己指定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 指定了對應(yīng)的QRC file, constraint_mode 指定了SDC 文件。

  • init_verilog, 指定網(wǎng)表文件。

  • init_pwr_net, 指定 global power nets.

  • init_gnd_net, 指定 global ground nets.

  • init_cpf_file, 如果是多電壓域設(shè)計,用于指定CPF 文件,如果power intent 是用1801 描述的,則不能用該變量指定1801 文件,需要用命令read_power_intent -1801 $1801_file 讀入,如果在viewDefinition 中用到了power domain 則應(yīng)該在init_design 之前讀入,init_design 之后再執(zhí)行 commit_power_intent. read_power_intent 這個命令的使用方式跟Genus 一致,在Genus 中多了一步apply_power_intent, 用于將設(shè)計跟power domain 綁定,commit_power_intent 用于插入low power cell. 

至此,所有輸入文件都指定完畢,執(zhí)行init_design 就會將對應(yīng)文件讀入,init_design 讀取文件的順序還沒看,按照邏輯猜測一下讀入順序:library -> tech-lef -> lef -> QRC -> cpf -> netlist -> SDC.    

PR中數(shù)據(jù)輸入的示例分析


除了上面那一坨指定輸入文件的init_XXX 變量之外,還有一坨用于控制輸入過程的init_OOO 變量:  
  • init_design_netlisttype , 用于指定netlist 的format 是verilog 還是OA, 老驢目前只學(xué)習(xí)verilog 部分,所有OA 相關(guān)的都忽略掉。
  • init_ignore_pgpin_polarity_check , 用于指定一個leaf cell pin name 的list, 告訴工具在globalNetConnect 或在CPF 中connect supply net 時忽略極性檢查. 這貨好像對1801 flow 沒用,正好這周一解了個相關(guān)的問題,當(dāng)時遇到的問題是1801 flow, 在commit_power_intent 時工具報Error: IMPDB-1220 跟WARN: IMPDB-1278, 對于這種問題在Innovus 中先用命令 dbGet [dbGet top.nets.name PMD0_VDD -p].isPwr 來檢查工具將對應(yīng)的supply net 認(rèn)成了什么。在老驢遇到的case 中,是在1801 中用connect_supply_net 要將一個analog Ground 連到一個analog IP 上,但是在1801 中只定義了supply net 并沒有指定該net 用于Ground 所以工具將其認(rèn)成了Power. 解的辦法是在1801 中為其create 一個supply set 并將其指定為ground.

PR中數(shù)據(jù)輸入的示例分析

  • init_verilog_tolerate_port_mismatch , 這個變量默認(rèn)值是0, 不能容忍module 定義的port 比實例化時的port 少,如果將其設(shè)為1 工具在解析netlist 時如果發(fā)現(xiàn)module 的port 比實例化時的port 少,工具會在module 上創(chuàng)建一個port, 老驢以為這個變量在設(shè)計臟的時候特別有用。
  • init_lef_check_mask_shifts ,  用于檢查tech-lef 和MACRO sections 中 FIXEDMASK 跟LAYERMASKSHIFT 是否沖突,該變量默認(rèn)值是off 就是不檢查,如果設(shè)為on 工具發(fā)現(xiàn)沖突會報錯并停掉,如果設(shè)為bypass 工具發(fā)現(xiàn)沖突只報錯不停止,其實老驢還不知道FIXEDMASK 跟LAYERMASKSHIFT 在不同工藝中有多重要,先放到這里,萬一以后發(fā)現(xiàn)重要呢,方便找。
  • init_import_mode , 用于指定setImportMode 的option, 如 set init_import_mode {-discardFloatingVNets true -keepEmptyModule true},此處留個問題:是不是默認(rèn)innovus 會將empty module 刪掉?如果是,那綜合netlist 中有沒有empty module 應(yīng)該都無所謂吧?如果是,為什么有的后端一定要求把empty module 刪掉?
  • init_design_uniquify , 控制innovus 解析netlist 時是否做uniquify, 既然innovus 要求netlist 是unique 的,那為毛不把該變量的默認(rèn)值設(shè)為1?
 

以上是“PR中數(shù)據(jù)輸入的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

pr
AI