《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 從算法到RTL實現(xiàn),F(xiàn)PGA工程師該怎么做?

從算法到RTL實現(xiàn),F(xiàn)PGA工程師該怎么做?

2022-07-13
作者:Duoqiang Liu
來源:FPGA算法工程師
關(guān)鍵詞: FPGA RTL 算法

  FPGA工程師怎么把算法RTL實現(xiàn)?FPGA工程師實現(xiàn)算法的時候科學步驟是什么?FPGA的開發(fā)設(shè)計怎樣進行仿真驗證?


        群友們提到一個很多人都會遇到的現(xiàn)實問題:

  “把一個算法用RTL實現(xiàn),有哪些比較科學的步驟?第一步干什么?第二步干什么?第三步干什么……?”

  微信圖片_20220713164341.png

  這個問題,對于FPGA、ASIC等邏輯電路設(shè)計人員來講,是非常重要的問題。

  通常來講,我們做算法實現(xiàn),需要有對標的算法模型,作為驗證硬件邏輯設(shè)計是否正確的參考依據(jù)。

  我們首先要根據(jù)實際需求,針對某方面的信號處理問題,做一個鏈路級或模塊級快速仿真驗證設(shè)計。最常見的比如通過MATLAB/C/C++等軟件環(huán)境進行設(shè)計和驗證。

  微信圖片_20220713164901.png

  軟件環(huán)境可以快速搭建仿真模型,并且進行驗證,為硬件RTL實現(xiàn)提供參考依據(jù)。在具體算法設(shè)計時,必須考慮數(shù)據(jù)流的處理過程:數(shù)據(jù)從哪里來,數(shù)據(jù)需要經(jīng)過哪些步驟處理,處理之后送到哪里。

  接下來,我們需要將MATLAB、C++等算法模型由浮點轉(zhuǎn)為定點,這個工作可以做好之后再去做邏輯設(shè)計,也可以省略,但一定要清楚是如何定點的。

  做好算法設(shè)計后,需要進行性能評估,看是否符合預期要求,不符合則進一步優(yōu)化,或者換一種設(shè)計方法。

  在做邏輯實現(xiàn)之前,還有一個重要工作,就是對算法處理步驟進行一步一步分解,解決如何從a到b再到c的過程,落實到加減乘除。

  當算法實際滿足要求后,則考慮邏輯實現(xiàn)的問題。

  首先,建議采用自頂向下的設(shè)計思想,進行系統(tǒng)架構(gòu)設(shè)計,明確整個處理過程,需要執(zhí)行哪些功能,涉及哪些接口。

  微信圖片_20220713164914.png

  接下來,選芯片器件,評估資源占用情況,評估需要用多少乘法器,除法器,DSP,BRAM,GT等。

  其次,評估處理時間要求,是否需要實時性處理,給予多少時間來處理,進而評估所需時鐘頻率,以及是否需要存在多個時鐘域處理。

  微信圖片_20220713165042.png

  對于信號處理系統(tǒng),有的需要實時處理,有的則不需要實時處理。最具挑戰(zhàn)的無疑是實時性要求高的通信、雷達和圖像等領(lǐng)域的信號處理問題。

  首先解決信號處理中的算法問題,為實現(xiàn)某一處理過程,需要分哪些步驟,最終得到什么樣的結(jié)果。

  為了實現(xiàn)實時處理,邏輯電路該怎么去設(shè)計?

  微信圖片_20220713165058.png

  于是,算法問題既要研究如何處理數(shù)據(jù)流的問題,也要研究如何快速處理的問題。

  電路實現(xiàn)時,則需要考慮資源消耗、并行處理結(jié)構(gòu),流水處理和控制邏輯。

  微信圖片_20220713165115.png

  如果有處理速率要求,則需考慮并行+流水的處理方式,并考慮單時鐘下的數(shù)據(jù)位寬。

  同時,務必明確數(shù)據(jù)流向,前后級接口,功能模塊內(nèi)部RTL邏輯處理,細化到每個時鐘應該怎么處理,step by step。

  微信圖片_20220713165133.png

  以上都比較明確后,可以著手進行RTL設(shè)計。RTL設(shè)計的核心,便是寄存器、RAM和FSM的靈活使用。其中,F(xiàn)SM占據(jù)了大部分功能。通常情況下,我們不只是操作純數(shù)據(jù)流,而是在各種控制信號和參數(shù)下進行設(shè)計,此時涉及各種FSM和選擇器設(shè)計,并注意是否需要進行流控。

  微信圖片_20220713165148.png

  RTL代碼設(shè)計完成之后,進行TestBench平臺搭建和仿真驗證是必要的,特別是對于復雜功能模塊或系統(tǒng)設(shè)計而言。經(jīng)驗再豐富的工程師,也不敢保證,不經(jīng)過仿真驗證直接上板一定沒問題。

  驗證也是一門重要的技術(shù),這也是為什么存在IC驗證崗位,目的就是為芯片成功流片嚴格把關(guān),一旦流片失敗,損失重大,影響深遠。

  FPGA的開發(fā)設(shè)計,同樣需要進行仿真驗證。通常,我們可以通過算法鏈路產(chǎn)生所需激勵源,通過TestBench對功能模塊進行驗證,并進行結(jié)果對比分析。重點解決兩個問題:

  一是驗證邏輯時序是否存在問題,比如信號是否對齊,有無接口處理不當導致數(shù)據(jù)丟失等。

  二是信號處理過程是否得當,數(shù)據(jù)位寬、精度等是否符合算法要求。

  解決功能性問題后,就需要考慮性能問題。定點是否合適,與浮點算法性能的差異有多大,或者軟件中的定點處理與邏輯電路定點處理,誤差有多大。在不斷驗證過程中,優(yōu)化算法設(shè)計和邏輯電路設(shè)計。

  剩下的邏輯綜合、實現(xiàn)、比特流生成和調(diào)試等環(huán)節(jié),屬于常規(guī)操作,但對于邏輯綜合、實現(xiàn)中的時序約束和相關(guān)策略設(shè)置,也是十分重要的。

  微信圖片_20220713165726.png

  最后,用一張圖總結(jié)如何從算法到RTL實現(xiàn)。

  微信圖片_20220713165826.png

  本文只是粗略地分析了算法到RTL代碼實現(xiàn)之間的邏輯關(guān)系,以及從實現(xiàn)角度,我們應該怎么去著手。

  具體到某個信號處理算法實現(xiàn)時,必須清楚整個信號處理過程,對算法一步一步分解,再對信號流、定點和接口進行設(shè)計。

  做任何事情之前,先謀劃布局,磨刀不誤砍柴工,扎扎實實做好每一步,功到自然成。


  更多信息可以來這里獲取==>>電子技術(shù)應用-AET<<

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧美成人免费一级人片 | 奇米影视亚洲狠狠色777不卡 | 天天操天天干天天操 | 欧美日韩三 | 人成在线 | 国产欧美国产精品第一区 | 成人免费观看视频久爱网 | 性色网址| 色射视频 | 日本一道免费一区二区三区 | 日韩高清的天堂在线观看免费 | 青青草国产 | 午夜影院污网页入口 | 久久久国产亚洲精品 | 国产日韩欧美中文字幕 | 韩国伦理剧在线播放 | 欧美一区二区视频在线观看 | 黄视频在线免费看 | 国产免费人成在线看视频 | 欧美日韩影视 | 亚洲精品国精品久久99热 | 第四色成人网 | 亚洲三级理论 | 2018精品国产一区二区 | 欧美中文字幕无线码视频 | 日韩午夜精品 | 欧美精品导航 | 成人欧美在线 | 亚洲第九页 | 免费国产之a视频 | 一一本大道香蕉大 | 欧美日韩xxx| 91免费精品国偷自产在线在线 | 桃桃酱无缝丝袜在线播放 | 又大又粗又爽的三级小视频 | 在线观看黄色x视频 | 欧美性精品| 美女网站在线观看视频18 | 成人观看天堂在线影片 | 欧美激情_区二区三区 | 国产午夜精品理论片久久影视 |