色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳細描述和解釋GOF ECO每一個步驟的實現方法和注意事項

roborobo_0706 ? 來源:NanDigit ? 作者:NanDigits中國 ? 2022-11-07 14:39 ? 次閱讀

GOF ECO介紹

GOF ECO是一款芯片網表功能ECO的軟件。在項目中后期或流片之后,發現邏輯功能有BUG或者設計需求有變更時,不需要重走“綜合 -> DFT -> APR”的完整流程,利用GOF ECO即可自動分析新舊兩個版本的差異,并對APR網表進行局部修改。GOF ECO不僅大大縮短了芯片ECO的Turn-around時間,還大大提升了芯片復雜邏輯ECO的成功率。

GOF ECO流程

ca32fc1a-5e53-11ed-a3b6-dac502259ad0.png

如上圖所示,當我們設計(RTL)上有改動,并充分仿真驗證確認功能正確后,就可以開始網表ECO工作了。大致分為以下幾個步驟:

首先,我們需要收集老設計的文件,并確認文件的完整性和準確性。

其次,對設計重新做綜合,得到重新綜合的網表(這一步可選)。

再次,用GOF LEC分析新設計與老設計的差異,確認這些差異是否合理。

然后,用GOF ECO做網表的ECO,并調整ECO方案和約束來獲得最佳結果。

最后,在后端工具里實現ECO Place和ECO Route,完成邏輯功能ECO。

下面將詳細描述和解釋每一個步驟的實現方法和注意事項。

一、準備工作

準備工作的目的?

這些文件通常來自于不同的部門或組,我們要確保ECO所需文件的準確性,防止用錯文件版本,確保后續ECO工作正常開展。

需要準備哪些文件?

需要提前收集的文件如下:

老設計

老RTL

老綜合網表

老DFT網表和DFT約束文件

老APR網表(我們的ECO目標)

并對老設計做邏輯等價性檢查(LEC),來確保收集到的文件和版本是正確的:

RTL vs 綜合網表

綜合網表 vs DFT網表

DFT網表 vs APR網表

二、重新綜合(可選)

這一步是可選的,但我們建議做,因為新RTL與老APR網表中間經過了很多次優化,這些優化使得網表結構發生了巨大的變化,而這些變化會加大邏輯功能ECO的難度和準確性。對于超大規模設計,重新綜合一次需要兩三天或者一周,這個時候我們建議可以先忽略這一步。

一般來說,這一步我們用原有的綜合腳本重新跑一次即可。

三、一致性檢查

邏輯一致性檢查結果的正確性和合理性是保證網表ECO效果的前提。GOF ECO正是利用一致性檢查的技術來分析兩個設計的差異,來找到應該修理的地方。如果一致性檢查有虛假的不等價,GOF ECO就很可能會做一些無用的修改,會或多或少影響補丁的大小和ECO的成功率。

用GOF做一致性檢查的流程如下:

ca548c40-5e53-11ed-a3b6-dac502259ad0.png

下面是參考代碼:

# gof_lec.pl
use strict;


# 讀入lib庫
read_library("art.5nm.lib");
read_library("sram.lib");
read_library("analog.lib");


# RTL流程
my $rtl_flow = 1;
if($rtl_flow){


    # 設置define和include
    set_define("SYNTHESIS");
    set_define("NO_SIM");
    set_inc_dirs("/project/nd900/vlib/include", "/project/nd900/IPS/include");


    # 讀入老RTL
    my @rtl_old = ("ref0.sv", "ref1.sv", "ref2.sv");
    read_rtl('-ref', @rtl_old);


    # 讀入新RTL
    my @rtl_new = ("imp0.sv", "imp1.sv", "imp2.sv");
    read_rtl('-imp', @rtl_new);


    # 設置頂層模塊
    set_top("topmod");


    # 對比RTL
    rtl_compare;
}


# 讀入重新綜合的網表
read_design("-ref", "reference.gv");


# 讀入老的APR網表
read_design("-imp", "implementation.gv");


# 設置頂層
set_top("topmod");


# 設置DFT約束
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);


# 做一致性檢查
run_lec();

運行gof_lec.pl的腳本,分析不等價的點是否合理:

gof -run gof_lec.pl

先確認log里unmapped點是否合理。當設計里新加了dff或者輸出端口,GOF LEC就會分析出這些新加的點并報出來。

如果有不合理的點報出來,就要debug找到原因:

首先,可以與formality或者conformal的LEC結果做對比,來排除用錯文件、約束設置錯誤等問題。

然后,可以用GOF的電路圖的方式來調試:

用start_gui來啟動GUI

在網表里找到不等價的點,右擊在電路圖上顯示

也可以按ctrl-g來快速加載

常見的電路圖調試方法:

在電路圖中顯示老設計和新設計的fanin,查看fanin是否一樣,這是最容易發現問題的地方

然后,同時選中兩個設計的時鐘pin或復位pin,查看兩個設計的時鐘和復位是否等價

再排查scan enable pin的設置

最后,逐步trace出兩個設計的邏輯錐的電路,從后向前,尋找不等價的點。

ca6e25f6-5e53-11ed-a3b6-dac502259ad0.png

四、PreMask網表ECO

在確認一致性檢查報出的不等價的點都是合理的情況下,就可以正式開始ECO了。

參考腳本如下:

# gof_eco.pl
use strict;


undo_eco(); #<-- 撤銷之前的改動
setup_eco("eco20221102");  #<-- 設計ECO的名字,GOF ECO輸出網表中新加的cell和連線會自動加上這個前綴


# 讀入lib庫
read_library("art.5nm.lib");
read_library("sram.lib");
read_library("analog.lib");


# RTL流程
my $rtl_flow = 1;
if($rtl_flow){


    # 設置define和include
    set_define("SYNTHESIS");
    set_define("NO_SIM");
    set_inc_dirs("/project/nd900/vlib/include", "/project/nd900/IPS/include");


    # 讀入老RTL
    my @rtl_old = ("ref0.sv", "ref1.sv", "ref2.sv");
    read_rtl('-ref', @rtl_old);


    # 讀入新RTL
    my @rtl_new = ("imp0.sv", "imp1.sv", "imp2.sv");
    read_rtl('-imp', @rtl_new);


    # 設置頂層模塊
    set_top("topmod");


    # 對比RTL
    rtl_compare;
}


# 讀入重新綜合的網表
read_design("-ref", "reference.gv");


# 讀入老的APR網表
read_design("-imp", "implementation.gv");


# 設置頂層
set_top("topmod");


# 設置DFT約束
set_ignore_output("scan_out*");
set_pin_constant("scan_enable", 0);
set_pin_constant("scan_mode", 0);


# 不需要再次做一致性檢查
# run_lec();


# 執行ECO
fix_design(); 
report_eco();


# 確認eco后的等價性,如果等價,邏輯ECO就基本結束了
run_lec();


# 寫出eco網表和腳本
write_verilog("eco.gv");
write_soce2("eco.tcl");

運行gof_lec.pl的腳本,分析不等價的點是否合理:

gof -run gof_eco.pl

前面大部分的設置與一致性檢查的腳本是相同的,只是把最后run_lec()換成fix_design()。在fix_design的時候,GOF ECO會先自動做一次LEC,分析出不等價的點,然后對不等價的點做eco修改。

在ECO結束后,通過report_eco來確認改動大小,可以看到哪些模塊增加了多少cell、刪除了多少cell、改動多少根連線。我們需要根據ECO report來判斷本次ECO的改動是否后端能夠實現。

再通過run_lec()確認一下修改之后是否完全等價,以防止遇到一些特殊情況,GOF ECO沒有能完全修復。當然,也需要用業界認可的LEC工具,如formality或者conformal,來確認最終的ECO是否正確。如果不等價,可以用GOF電路圖的方式來進一步分析和解決。

最后,寫出ECO網表和腳本。

五、PostMask網表ECO

當流片回來測試后發現有問題時,就需要進行PostMask ECO。這時只能利用提前放置Spare Cells來改金屬層。與PreMask的流程區別如下:

#read_library
# read_design
# run_lec
#fix_design
my $postmask = 1;
if($postmask){


    # Postmask時讀入def文件
    read_def("topmod.def");


    # 設置sparecell列表
    get_spare_cells("spr_1/spr_gate*");


    # 設置約束
    set_constraints("-num", "and<3,or<3");


    # 映射到sparecell
    map_spare_cells();


    # 查看ECO報告
    report_eco();
}


# 寫出eco網表和腳本
write_verilog("eco.gv");
write_soce2("eco.tcl");

在做postmask常常遇到附近資源不夠或者連線比較擁擠,這時可以調整set_constraints()的設置,多嘗試幾種方案。

六、后端工具里工作

后端工具里的操作和流程不屬于這份入門教程的范圍,但我們有一些有用的建議:

在PreMask ECO流程里,后端工具盡量可以讓插入新的Cell,這樣ECO時所有類型的stdcell都可以用,可以簡化網表修改,也有利用于時序和DRC收斂。

在PostMask ECO時,應該盡可能地前后端工程師多溝通,一起確定最終的ECO方案。

在遇到資源緊張時,應當與客戶、產品經理、項目經理等人員多溝通,給ECO條目排一排優先級,優先解決更重要的問題。并適當地放棄一些復雜的、困難的ECO。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59912
  • DFT
    DFT
    +關注

    關注

    2

    文章

    231

    瀏覽量

    22788
  • GUI
    GUI
    +關注

    關注

    3

    文章

    662

    瀏覽量

    39827

原文標題:NanDigits GOF ECO入門教程

文章出處:【微信號:ExASIC,微信公眾號:ExASIC】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RTC實時時鐘詳細描述

    、RTC的概述RTC就是實時時鐘,詳細英文 Real Time Clock。二、詳細描述1.使用2.中斷配置注意事項三、程序設計)RTC
    發表于 01-13 07:05

    Proteus仿真單片機串口的注意事項和實物調試注意事項

    藍牙的使用,Proteus仿真單片機串口的注意事項和實物調試注意事項。玩轉單片機串口詳細零基礎版學習單片機、Proteus仿真單片機串口定要看,
    發表于 02-23 06:57

    光伏系統設計思路及注意事項

    光伏系統設計思路及注意事項:本文結合光伏系統設計過程中遇到的問題,總結光伏系統設計流程和設計思路,闡述了設計過程中每個步驟、每一個細節需主要考慮的問題,并提
    發表于 06-08 11:56 ?53次下載

    TCL各機芯軟件升級操作步驟注意事項

    TCL各機芯軟件升級操作步驟注意事項
    發表于 09-06 15:02 ?18次下載

    PowerPCB到Allegro的轉換步驟注意事項

    PowerPCB到Allegro的轉換步驟注意事項
    發表于 02-15 15:17 ?0次下載

    全自動端子機操作步驟_注意事項及保養

    本文主要介紹了全自動端子機操作步驟、注意事項及保養。
    發表于 06-05 08:00 ?0次下載

    EMC現場測試的步驟注意事項有哪些?

    emc現場測試的步驟注意事項有哪些?
    的頭像 發表于 06-26 09:22 ?2705次閱讀

    java中equals()方法注意事項

    會有不同的注意事項。在本文中,我們將詳細討論equals()方法注意事項,并解釋如何正確使用它來比較兩
    的頭像 發表于 11-17 16:59 ?888次閱讀

    測絕緣電阻的正確方法,有哪些步驟注意事項

    測絕緣電阻的正確方法,有哪些步驟注意事項 絕緣電阻測試是電氣工程中常用的項安全檢測,用于評估電器設備或電氣線路的絕緣性能。正確的絕緣電阻測試方法
    的頭像 發表于 12-15 10:43 ?6944次閱讀

    LCR數字電橋來測量電容和電感的詳細步驟注意事項

    LCR數字電橋來測量電容和電感的詳細步驟注意事項? LCR數字電橋是種用來測量電容和電感的儀器,它利用LCR諧振原理,通過測量電路的諧振頻率來間接計算電容和電感的數值。下面將
    的頭像 發表于 12-21 15:37 ?1.2w次閱讀

    使用示波器探頭的步驟、技巧和注意事項

    使用示波器探頭的步驟、技巧和注意事項 示波器是種用于測量電信號波形的儀器,通過連接示波器探頭,可以將電壓信號引入示波器進行測量。正確使用示波器探頭是確保準確和安全測量的關鍵。本文將詳細
    的頭像 發表于 01-17 11:32 ?4397次閱讀

    鉗形電流表的使用方法注意事項

    鉗形電流表,作為電氣測量和測試的重要工具,其使用方法注意事項對于保障測量結果的準確性和操作人員的安全至關重要。本文將從鉗形電流表的使用方法注意事項
    的頭像 發表于 05-14 16:14 ?3687次閱讀

    現場總線的使用方法注意事項

    的穩定可靠運行,正確的使用方法注意事項至關重要。本文將詳細介紹現場總線的使用方法注意事項,以供讀者參考。
    的頭像 發表于 06-06 11:49 ?854次閱讀

    profinet網關的接線步驟注意事項

    Profinet網關的接線過程可以根據具體的應用場景和設備型號有所不同,但般可以按照以下步驟進行,以下是典型的接線步驟
    的頭像 發表于 09-18 11:53 ?751次閱讀

    如何為住宅配置靜態IP:步驟注意事項

    為住宅配置靜態IP地址,通常涉及以下步驟注意事項。
    的頭像 發表于 10-24 08:02 ?312次閱讀
    主站蜘蛛池模板: 好男人的视频在线观看 | 97国产在线播放 | 亚洲成人99| qvod电影资源 | xxnxx动漫| 久久免费精品一区二区 | 一区二区三区内射美女毛片 | 好嗨哟在线看片免费 | yellow在线观看免费直播 | 夫妻性姿势真人做视频 | 热久久视久久精品2015 | 亚洲欧美日韩精品久久奇米色影视 | 性生生活大片又黄又 | 黑色丝袜美女被网站 | 亚洲天堂2017无码 | 久久成人a毛片免费观看网站 | 亚洲三级视频在线 | 国产一区私人高清影院 | 九九热在线视频观看这里只有精品 | 免费看b站 | 国产免费人成在线视频视频 | 国产亚洲精品久久久久久无码网站 | 成人欧美尽粗二区三区AV | 草草色| 久久综合老色鬼网站 | 欧美hdxxxx| 一级做a爰片久久毛片潮喷动漫 | 99久久全国免费久久爱 | 国产精品色无码AV在线观看 | 国产69精品久久久久乱码 | 国内精品日本久久久久影院 | 麻豆国产精品va在线观看约 | 动漫女主被扒开双腿羞辱 | 国产盗摄TP摄像头偷窥 | 亚洲免费网站在线观看 | 星空无限传媒视频在线观看视频 | 97超碰97资源在线观看 | 国产囗交10p | 成人影片迅雷下载 | 精品久久久噜噜噜久久7 | 女人高潮了拔出来了她什么感觉 |