ASIC開發(fā)流程一覽,全是干貨
最近收拾書架,翻出一張多年以前的ASIC項目開發(fā)流程圖,一起回顧一下。典型的瀑布式開發(fā)流程:
本文引用地址:http://www.biyoush.com/article/201901/397231.htm

以算法設(shè)計為主導(dǎo)
算法C代碼手工轉(zhuǎn)換為RTL
RTL與算法C代碼生成的測試向量對比進(jìn)行驗證
依賴FPGA做大量實時、現(xiàn)場測試
適合通信信號處理,音視頻處理產(chǎn)品
1. 算法預(yù)研
確定了產(chǎn)品方向之后,算法工程師開始進(jìn)行調(diào)研。
要學(xué)習(xí)研究行業(yè)內(nèi)最新的研究成果、論文,提出創(chuàng)造性的方法來獲得最好的性能。要使用真實的測試數(shù)據(jù)和仿真結(jié)果進(jìn)行評估。最終交付為算法描述的C語言源碼。
算法調(diào)研結(jié)束后需要進(jìn)行審核(review):確定算法性能,確定系統(tǒng)架構(gòu)設(shè)計,確認(rèn)是否可以正式立項。審核過程需要算法設(shè)計、RTL設(shè)計、軟件、硬件系統(tǒng)、市場、管理層共同參與。
正式立項時,需要提供功能spec,以及算法C代碼功能仿真環(huán)境。與此同時,硬件組需要根據(jù)項目需求開始搭建硬件FPGA測試平臺。
2. 算法優(yōu)化
接下來進(jìn)行算法的優(yōu)化,主要考慮以下幾個方面:
算法復(fù)雜度
算法運(yùn)算量
變量精度
算法設(shè)計以及狀態(tài)機(jī)控制要具有自恢復(fù)能力
算法代碼要足夠stable,對于各種濾波器系數(shù)和變量要有一定的噪聲容忍度。
算法最終確定需要通過審核:算法架構(gòu),算法功能仿真,算法定點(diǎn)化和性能驗證。
3. 面向ASIC的C代碼實現(xiàn)
在此階段,算法C仿真代碼改變?yōu)槟K結(jié)構(gòu)代碼,分解為若干ASIC功能模塊,代碼的接口與RTL接口接近:
容易實現(xiàn)
高效率
節(jié)省邏輯
重用現(xiàn)有模塊
對帶有反饋的模塊中增加仿真延時
在接口增加仿真延時
最終的C代碼中:
主函數(shù)只包含連接關(guān)系和子模塊
所有子模塊以各自的時鐘速率調(diào)用
接口采用cycle based timing
需要準(zhǔn)備以下review和文檔:
ASIC模塊和接口設(shè)計指導(dǎo)
性能驗證報告
接口變量的時序圖和精度描述
4. C到RTL的實現(xiàn)
RTL設(shè)計工程師完成從C代碼到verilog的實現(xiàn)。算法工程師負(fù)責(zé)產(chǎn)生相應(yīng)的測試向量,包括子模塊測試和系統(tǒng)聯(lián)調(diào)測試。要使用各種典型的測試場景數(shù)據(jù),以及一些子模塊級別的隨機(jī)測試數(shù)據(jù)。
根據(jù)RTL設(shè)計以及綜合結(jié)果,可以獲得整個系統(tǒng)的時序信息,gate count和die size預(yù)估。
5. FPGA on-board test
由于RTL仿真的速度較慢,可以借助FPGA來進(jìn)行測試加速。硬件工程師準(zhǔn)備FPGA平臺,F(xiàn)PGA工程師進(jìn)行RTL到FPGA的代碼移植,軟件工程師協(xié)助相關(guān)測試軟件的開發(fā)與使用。
在FPGA上可以做到與RTL仿真一樣的效果,比如從內(nèi)存中提供輸入,并抓取輸出結(jié)果,與算法C產(chǎn)生的數(shù)據(jù)進(jìn)行比對。需要測試盡可能多的測試用例。
6. FPGA field test
如果項目代碼可以在FPGA上跑到與真實應(yīng)用同樣的速度(full speed),就可以用FPGA代碼直接做實時現(xiàn)場測試。在現(xiàn)場測試的任何問題,需要反饋給算法組進(jìn)行分析解決。
7. Final Check and Review
現(xiàn)場測試通過后,需要做最后的檢查和review全部代碼,然后開始芯片后端設(shè)計。
站在今天(2018年)的角度看過去上述流程有存在一些問題:
采用算法C到Cycle C再到RTL實現(xiàn)的流程,迭代長,易出錯
RTL驗證以直接定向測試為主,缺少隨機(jī)驗證,覆蓋率不夠
依賴FPGA實時測試作為驗證主要手段,F(xiàn)PGA平臺開發(fā)需要專門的人力資源和硬件平臺,而且FPGA平臺不夠靈活,且容易出現(xiàn)不穩(wěn)定的問題。
現(xiàn)在已經(jīng)有很多新技術(shù)可以借鑒,比如
基于High level synthesis,縮短開發(fā)周期
采用各種驗證方法學(xué),提高驗證覆蓋率
使用專用的硬件加速器平臺
最后,以上開發(fā)流程簡單,投資少,對于算法(大牛)主導(dǎo)的創(chuàng)業(yè)型公司,或者以IP開發(fā)為主的小型團(tuán)隊,還是可以使用的。
評論