ICC_workshop的最后一個實驗了。在這次的實驗中,由於我使用ICC的版本與workshop的lab不是同一個版本,因此在后面的實驗過程不是很順利,主要是在LVS的過程中,最后的LVS沒有通過。但是還是在這里說一下流程吧,在這個實驗中,主要完成下面的事情:
·DRC和LVS檢查
·進行連線擴展和加寬連線來減少關鍵面積
·使用二極管修復天線違規
·使用填充單元填充核心中未填滿的位置
·進行冗余通孔插入(冗余通孔的插入是可選的)
·填充金屬以滿足金屬密度要求
·生成GDSII數據
首先需要准備下面的數據:
然后就可以開始試驗了:
·加載和分析設計
--->記載庫和設計
--->驗證是否有DRC和LVS違規:
verify_zrt_route
verify_lvs
--->有,則進行修復(具體怎么修復這里不進行介紹,我也不知道具體的細節,但是是有這個流程的)
--->查看是否有違規:
--->有,則進行修復:psynopt -xxx
·減少關鍵面積
--->通過GUI查看關鍵面積(short critical area)
--->查看、保存修改前短路的關鍵面積的報告:
report_critical_area -fault_type short
sh mv output_heatmap cca.short.before.rpt
--->進行連線擴展,減少短路的關鍵面積:
spread_zrt_wires
--->查看、保存連線擴展后的關鍵面積報告:
report_critical_area -fault_type short
sh mv output_heatmap cca.short.after.rpt
--->查看、保存修改前開路的關鍵面積的報告:
report_critical_area -fault_type open
sh mv output_heatmap cca.open.before.rpt
--->進行加寬導線,來減少開路的關鍵面積:
widen_zrt_wires
--->查看、保存加寬導線后的關鍵面積報告:
report_critical_area -fault_type open
sh mv output_heatmap cca.open.after.rpt
--->查看是否有DRC、LVS以及時序等違規:
verify_zrt_route
verify_lvs
rc
--->如果有,則進行修復(具體怎么修復這里不進行介紹,我也不知道具體的細節,但是是有這個流程的),修復后保存設計:save_mw_cel -as chip_finish_ca
·使用二極管修復天線違規
--->安裝一組天線規則:
source -echo scripts/cb13_6m_antenna.tcl
天線規則設置確定如何處理金屬層的模式
--->檢查已定義的當前天線比率規則,並檢查您的設計中是否存在任何接觸違規:
report_antenna_rules
verify_zrt_route
--->進行天線違規修復:
set_route_zrt_detail_options -insert_diodes_during_routing true
route_zrt_detail -incremental true
--->檢查lvs違規:
verify_lvs
--->如果有lvs錯誤,則重新定義P/G環,看是否由插入二極管引起:
derive_pg_connection -power_net VDD -power_pin VDD -ground_net VSS -ground_pin VSS
derive_pg_connection -power_net VDD -ground_net VSS -tie
--->再檢查各種違規:
verify_zrt_route
verify_lvs
rc
如果有違規,這時候的違規就不是天線違規引起的了,通過其他手段進行修復
--->保存設計:save_mw_cel -as chip_finish_antenna
·插入標准填充單元
--->插入標准單元:
insert_stdcell_filler -cell_with_metal "feedth9 feedth3" -connect_to_power VDD -connect_to_ground VSS -between_std_cells_only
--->插入非金屬填充單元:
insert_stdcell_filler -cell_without_metal "feedth" -connect_to_power VDD -connect_to_ground VSS -between_std_cells_only
--->查看是否有違規(一般沒有):
verify_zrt_route
verify_lvs
rc
·插入冗余過孔
--->成物理設計報告以確定現有的雙重過孔率:
report_design_physical -route
--->生成 將在冗余過孔插入期間 自動使用的 過孔映射表:
insert_zrt_redundant_vias -list_only
--->使用默認的中等強度進行插入冗余過孔:
insert_zrt_redundant_vias -effort medium
--->檢查是否有違例:
verify_zrt_route
verify_lvs
rc
--->插入金屬,以滿足金屬密度要求:
insert_metal_filler -routing_space 2 -timing_driven
--->確保在本階段添加的單元和所有電源地的pin都連接到電源的網絡:
derive_pg_connection -power_net VDD -power_pin VDD -ground_net VSS -ground_pin VSS
derive_pg_connection -power_net VDD -ground_net VSS -tie
--->檢查是否違規:
verify_zrt_route
verify_lvs
rc
---->保存設計,寫出GDSII文件:
save_mw_cel -as chip_finish_final
close_mw_cel
write_stream -cells chip_finish_final orca.gdsii
close_mw_lib