<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/201901/397231.htm

            


            以算法設(shè)計(jì)為主導(dǎo)

            算法C代碼手工轉(zhuǎn)換為RTL

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

            依賴FPGA做大量實(shí)時(shí)、現(xiàn)場(chǎng)測(cè)試

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

            1. 算法預(yù)研

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

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

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

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

            2. 算法優(yōu)化

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

            算法復(fù)雜度

            算法運(yùn)算量

            變量精度

            算法設(shè)計(jì)以及狀態(tài)機(jī)控制要具有自恢復(fù)能力

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

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

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

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

            容易實(shí)現(xiàn)

            高效率

            節(jié)省邏輯

            重用現(xiàn)有模塊

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

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

            最終的C代碼中:

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

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

            接口采用cycle based timing

            需要準(zhǔn)備以下review和文檔:

            ASIC模塊和接口設(shè)計(jì)指導(dǎo)

            性能驗(yàn)證報(bào)告

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

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

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

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

            5. on-board test

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

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

            6. field test

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

            7. Final Check and Review

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

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

            采用算法C到Cycle C再到RTL實(shí)現(xiàn)的流程,迭代長(zhǎng),易出錯(cuò)

            RTL驗(yàn)證以直接定向測(cè)試為主,缺少隨機(jī)驗(yàn)證,覆蓋率不夠

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

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

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

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

            使用專用的硬件加速器平臺(tái)

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



          關(guān)鍵詞: ASIC FPGA

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();