第一階段、設計准備
1. 需求分析:市場調研,同功能芯片功能比較。
2. 定架構:選擇合適的CPU、總線類型、各類型IP(RAM、ROM、EEPROM、EFUSE、晶振、PLL)、接口(I2C、spi、uart、Jtag、swd)、
協議、算法、看門狗、定時器、中斷、時鍾復位管理、電源管理、 模擬電路(電源電壓、ADC、charge pump、FET)。
3. 撰寫文檔:總體描述功能,畫出系統架構、系統狀態跳轉圖,詳細描述各個模塊功能、寄存器,給出功能設計圖、時序圖。
第二階段、方案實施
1. 代碼實現:根據以上設計准備階段指定的設計方案 ,工程師在規定的時間內完成代碼實現。
在實現過程中,要考慮:面積、速度、clock gating、CDC、latch等設計要點。
2. 功能前仿:在完成代碼實現之前和過程中,驗證工程師根據設計方案中每一個功能點寫出驗證case,並統計覆蓋率,保證代碼里的branch、line、
toggle、FSM等都有覆蓋到。
第三階段、時序分析
1、綜合:在完成代碼實現和功能仿真后,根據設計方案,制定時序約束文件,綜合工具依據時序約束文件生成網表和SDC文件。
2、等效檢查:利用等效工具,比較RTL代碼和綜合生成的網表,檢查兩者一致。
3、靜態時序分析:
第四階段:布局布線
1、網表、庫文件:完成第三階段后,向Layout house提供網表和功能實現過程中用到的庫文件,其包括:
a. 工藝PDK
b. stdcell庫數據(lef、lib、cdl、gds)
c. 驗證規則文件(drc、ant、lvs)
d. QRC techfile
e. 網表和SDC
同時,還要提供block形狀、面積、PIN坐標。
2、功能后仿:提供上述文件后,layout house將進行PR,生成帶延時信息的網表和各種Corner的SDF文件。在拿到網表后,需要使用網表進行功能
一致性檢查、靜態時序分析,並檢查spare gate是否被加入到網表里面。
然后利用這個網表和sdf文件,進行功能后仿(測試用例使用之前功能前仿時的case)。 如果發現時序違例,就要分析違例原因。根據
違例原因類型,可以采取修改部分代碼、ECO、PR修復等方式來解決違例。
如果需要修改代碼或者ECO,在修改完后,需要重復第三階段過程,並將綜合的網表再次提供給layout house,layout house返回網表和SDF后,
重復上述檢查和仿真;如果進行PR修復,那就是直接由layout house進行修改,layout house返回網表和SDF后,重復上述檢查和仿真。
第五階段:signoff
1、review:當上述步驟完成后,還要召集相關designer一起review,確保所有設計都是正確無誤的。
a. 確認所有功能都與設計方案一致。
b. 確認所有功能點都有仿真激勵覆蓋到。
c. 確認所有IP的GDS、PIN連接、電源供電、時序關系。
d. 確認D2A、A2D端口的名稱、方向、位寬。
只有上述幾項都確認無誤,最后才能tapeout。