想寫這個內容大概是在半個月之前吧,苦於沒有比較系統的介紹pad的放置的教程,一直在到處收集摸索,現在把自己的經驗大致總結一下:
首先闡明一點,這次放置的pad只是應專案需要,在晶元外面新增一些備用的框框給後端使用,因此具體到手動新增時,不知道會不會有什麼問題(~。~)
1.首先,可以將pad分為兩類,一種是類似vdd/gnd/corner之類的全域性pad,這種需要在綜合之後手動新增到產生的網表中,一種是需要自己去在前端例化的pad,如輸出pad_out,這些可以跟前段工程師進行討論
2.對於pad,這個定義,有的人把它定義為晶元外接的金屬,我把它暫時考慮為instance,方便理解。
3.所有關於pad的結構,選擇,適用型別,datasheet等內容,都可以在fab提供的doc檔案中找到,此處不再贅述啦~
下面就是在放置pad的時候的流程了:
1.與前端工程師溝通,大致了解需要在晶元設定的管腳數目和位置,根據以上對pad的分類在綜合之前的verilog中新增例化,例如:
module sample(in,out); //晶元core
input in;
output out;
endmodule
module top(in_top,out_top);//在頂層檔案中例化,新增pad
bt3320_pm_a pad_in(.pad(in),.z(in_top));//選擇合適的pad結構和型別,例化需要的管腳即可
可以看到,例化pad的過程,不過是在寫好的rtl**外圍再新增一層殼子,可以這麼理解吧
2.例化之後,用vcs進行前端的綜合,然後會生成一系列網表檔案:*.sdc *.v 等等
3.開啟生成的*.v就可以在裡面新增第一種pad了。例如:
vdd_33_pm pad_vdd1();//vdd
vdd_18_pm pad_vdd2();
gnd_pm pad_gnd();//gnd
corner corner1();//這裡是例化晶元外圍的四個corner
4.完成了在綜合產生的網表中新增pad之後就可以進行encounter的使用了
5.在encounter時,需要注意的一點是,在import design的時候要順便新增fab 給提供的io的lef庫,之後的流程就基本與普通的綜合無異了。
6.如果需要固定pad的位置座標,有乙個比較簡單的辦法:
先按照以上步驟跑個流程出來,然後在完成optimize deign/post-cts之後儲存一下io file,可以手動修改這個file然後重新開始乙個新的版本,只要額外load進去這個io file即可。
數字驗證流程
1.熟讀專案文件,包括設計文件,介面文件等 2.根據文件提取測試點,測試點分解分類有 資料流功能點,暫存器,dfx功能,異常等 3.編寫元件驗證 與完整的驗證環境相比,缺少dut,主要為了驗證介面元件,用於搭建整體環境。包括transation,sequence,sequencer,driver,m...
phy device的新增流程
phy device的新增流程,了解linux驅動中的 驅動 裝置 匯流排 模型。cpp view plain copy print?87 int mdiobus register struct mii bus bus 88 124 125 省略。138 phydev mdiobus scan bu...
zabbix新增主機流程
1新增host 以及新增host group 2鏈結到組的item模板 3看需求disable 不需要的item項 4檢視latest date 5 trigger看需求,關掉不需要的 6新增user以及郵件 給supper admin許可權,否則無法收到郵件 7配置action,盡量clone a...