<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ASIC開(kāi)發(fā)流程一覽,全是干貨

ASIC開(kāi)發(fā)流程一覽,全是干貨

作者: 時(shí)間:2019-01-29 來(lái)源:半導體行業(yè)觀(guān)察 收藏

  最近收拾書(shū)架,翻出一張多年以前的項目開(kāi)發(fā)流程圖,一起回顧一下。典型的瀑布式開(kāi)發(fā)流程:

本文引用地址:http://dyxdggzs.com/article/201901/397231.htm

  


  以算法設計為主導

  算法C代碼手工轉換為RTL

  RTL與算法C代碼生成的測試向量對比進(jìn)行驗證

  依賴(lài)FPGA做大量實(shí)時(shí)、現場(chǎng)測試

  適合通信信號處理,音視頻處理產(chǎn)品

  1. 算法預研

  確定了產(chǎn)品方向之后,算法工程師開(kāi)始進(jìn)行調研。

  要學(xué)習研究行業(yè)內最新的研究成果、論文,提出創(chuàng )造性的方法來(lái)獲得最好的性能。要使用真實(shí)的測試數據和仿真結果進(jìn)行評估。最終交付為算法描述的C語(yǔ)言源碼。

  算法調研結束后需要進(jìn)行審核(review):確定算法性能,確定系統架構設計,確認是否可以正式立項。審核過(guò)程需要算法設計、RTL設計、軟件、硬件系統、市場(chǎng)、管理層共同參與。

  正式立項時(shí),需要提供功能spec,以及算法C代碼功能仿真環(huán)境。與此同時(shí),硬件組需要根據項目需求開(kāi)始搭建硬件FPGA測試平臺。

  2. 算法優(yōu)化

  接下來(lái)進(jìn)行算法的優(yōu)化,主要考慮以下幾個(gè)方面:

  算法復雜度

  算法運算量

  變量精度

  算法設計以及狀態(tài)機控制要具有自恢復能力

  算法代碼要足夠stable,對于各種濾波器系數和變量要有一定的噪聲容忍度。

  算法最終確定需要通過(guò)審核:算法架構,算法功能仿真,算法定點(diǎn)化和性能驗證。

  3. 面向的C代碼實(shí)現

  在此階段,算法C仿真代碼改變?yōu)槟K結構代碼,分解為若干功能模塊,代碼的接口與RTL接口接近:

  容易實(shí)現

  高效率

  節省邏輯

  重用現有模塊

  對帶有反饋的模塊中增加仿真延時(shí)

  在接口增加仿真延時(shí)

  最終的C代碼中:

  主函數只包含連接關(guān)系和子模塊

  所有子模塊以各自的時(shí)鐘速率調用

  接口采用cycle based timing

  需要準備以下review和文檔:

  ASIC模塊和接口設計指導

  性能驗證報告

  接口變量的時(shí)序圖和精度描述

  4. C到RTL的實(shí)現

  RTL設計工程師完成從C代碼到verilog的實(shí)現。算法工程師負責產(chǎn)生相應的測試向量,包括子模塊測試和系統聯(lián)調測試。要使用各種典型的測試場(chǎng)景數據,以及一些子模塊級別的隨機測試數據。

  根據RTL設計以及綜合結果,可以獲得整個(gè)系統的時(shí)序信息,gate count和die size預估。

  5. on-board test

  由于RTL仿真的速度較慢,可以借助FPGA來(lái)進(jìn)行測試加速。硬件工程師準備FPGA平臺,FPGA工程師進(jìn)行RTL到FPGA的代碼移植,軟件工程師協(xié)助相關(guān)測試軟件的開(kāi)發(fā)與使用。

  在FPGA上可以做到與RTL仿真一樣的效果,比如從內存中提供輸入,并抓取輸出結果,與算法C產(chǎn)生的數據進(jìn)行比對。需要測試盡可能多的測試用例。

  6. field test

  如果項目代碼可以在FPGA上跑到與真實(shí)應用同樣的速度(full speed),就可以用FPGA代碼直接做實(shí)時(shí)現場(chǎng)測試。在現場(chǎng)測試的任何問(wèn)題,需要反饋給算法組進(jìn)行分析解決。

  7. Final Check and Review

  現場(chǎng)測試通過(guò)后,需要做最后的檢查和review全部代碼,然后開(kāi)始芯片后端設計。

  站在今天(2018年)的角度看過(guò)去上述流程有存在一些問(wèn)題:

  采用算法C到Cycle C再到RTL實(shí)現的流程,迭代長(cháng),易出錯

  RTL驗證以直接定向測試為主,缺少隨機驗證,覆蓋率不夠

  依賴(lài)FPGA實(shí)時(shí)測試作為驗證主要手段,FPGA平臺開(kāi)發(fā)需要專(zhuān)門(mén)的人力資源和硬件平臺,而且FPGA平臺不夠靈活,且容易出現不穩定的問(wèn)題。

  現在已經(jīng)有很多新技術(shù)可以借鑒,比如

  基于High level synthesis,縮短開(kāi)發(fā)周期

  采用各種驗證方法學(xué),提高驗證覆蓋率

  使用專(zhuān)用的硬件加速器平臺

  最后,以上開(kāi)發(fā)流程簡(jiǎn)單,投資少,對于算法(大牛)主導的創(chuàng )業(yè)型公司,或者以IP開(kāi)發(fā)為主的小型團隊,還是可以使用的。



關(guān)鍵詞: ASIC FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>