衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

把一個(gè)算法用RTL實(shí)現(xiàn),有哪些比較科學(xué)的步驟?

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-04-26 10:19 ? 次閱讀

針對(duì)近日技術(shù)交流群里討論的算法與RTL實(shí)現(xiàn)問(wèn)題,寫篇文章,做一次總結(jié)。

新手遇到的是新問(wèn)題,對(duì)于有相關(guān)經(jīng)驗(yàn)的工程師而言,可能都遇到過(guò)。

作為算法、FPGAIC等集中交流的平臺(tái),群賢畢至,集思廣益,解決大家對(duì)相關(guān)知識(shí)和技術(shù)上的困惑,讓問(wèn)題變得更簡(jiǎn)單。

群友們提到一個(gè)很多人都會(huì)遇到的現(xiàn)實(shí)問(wèn)題:

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

c5cfc0d6-c506-11ec-bce3-dac502259ad0.png

這個(gè)問(wèn)題,對(duì)于FPGA、ASIC等邏輯電路設(shè)計(jì)人員來(lái)講,是非常重要的問(wèn)題。

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

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

c5ddef1c-c506-11ec-bce3-dac502259ad0.png

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

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

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

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

當(dāng)算法實(shí)際滿足要求后,則考慮邏輯實(shí)現(xiàn)的問(wèn)題。

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

c5ea2908-c506-11ec-bce3-dac502259ad0.png

接下來(lái),選芯片器件,評(píng)估資源占用情況,評(píng)估需要用多少乘法器,除法器,DSP,BRAM,GT等。

其次,評(píng)估處理時(shí)間要求,是否需要實(shí)時(shí)性處理,給予多少時(shí)間來(lái)處理,進(jìn)而評(píng)估所需時(shí)鐘頻率,以及是否需要存在多個(gè)時(shí)鐘域處理。

c605bc72-c506-11ec-bce3-dac502259ad0.png

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

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

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

c61816e2-c506-11ec-bce3-dac502259ad0.png

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

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

c6233ac2-c506-11ec-bce3-dac502259ad0.png

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

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

c63a474e-c506-11ec-bce3-dac502259ad0.png

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

c65190fc-c506-11ec-bce3-dac502259ad0.png

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

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

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

一是驗(yàn)證邏輯時(shí)序是否存在問(wèn)題,比如信號(hào)是否對(duì)齊,有無(wú)接口處理不當(dāng)導(dǎo)致數(shù)據(jù)丟失等。

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

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

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

c671246c-c506-11ec-bce3-dac502259ad0.png

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

c68b0e72-c506-11ec-bce3-dac502259ad0.png

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

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

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21798

    瀏覽量

    606067
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4630

    瀏覽量

    93365
  • 仿真模型
    +關(guān)注

    關(guān)注

    1

    文章

    28

    瀏覽量

    12320
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59954

原文標(biāo)題:從算法到RTL實(shí)現(xiàn),F(xiàn)PGA工程師該怎么做?

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+閱讀第章部分筆記

    數(shù)字電路設(shè)計(jì)分為前端和后端前端開(kāi)發(fā)工程師負(fù)責(zé)編寫RTL即對(duì)數(shù)字電路的抽象描述。后端開(kāi)發(fā)工程師負(fù)責(zé)將該抽象描述轉(zhuǎn)變?yōu)榫哂芯唧w型號(hào)名稱的電路元器件,并且將其放置在特定的位置,線路將它們連接在起。前端是抽象型電路,后端是具象型電
    發(fā)表于 12-02 21:41

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡(jiǎn)介

    內(nèi)容簡(jiǎn)介這是本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通算法研發(fā)到數(shù)字IC設(shè)計(jì)的實(shí)現(xiàn)屏障,以及指導(dǎo)芯片設(shè)計(jì)工程師從底層掌握復(fù)雜電路設(shè)計(jì)與優(yōu)化方法為目標(biāo)的專業(yè)技術(shù)書。任何芯片(如WiFi芯片
    發(fā)表于 11-21 17:14

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+介紹基礎(chǔ)硬件算法模塊

    作為嵌入式開(kāi)發(fā)者往往比較關(guān)注硬件和軟件的協(xié)調(diào)。本書介紹了除法器,信號(hào)發(fā)生器,濾波器,分頻器等基本算法的電路實(shí)現(xiàn),雖然都是基礎(chǔ)內(nèi)容,但是也是最常用到的基本模塊。 隨著逆全球化趨勢(shì)的出現(xiàn),過(guò)去的研發(fā)
    發(fā)表于 11-21 17:05

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+本介紹基礎(chǔ)硬件算法模塊實(shí)現(xiàn)的好書

    看下本書內(nèi)容簡(jiǎn)介,然后再瀏覽下各個(gè)章節(jié)的內(nèi)容。 從簡(jiǎn)介來(lái)看,本書也是關(guān)注最基礎(chǔ),最常用的那部分算法的電路實(shí)現(xiàn)比較貼合工程實(shí)踐,適合無(wú)基礎(chǔ)或者
    發(fā)表于 11-20 13:42

    Pure path studio內(nèi)能否自己創(chuàng)建個(gè)component,來(lái)實(shí)現(xiàn)特定的算法,例如LMS算法

    TLV320AIC3254EVM-K評(píng)估模塊, Pure path studio軟件開(kāi)發(fā)環(huán)境。 問(wèn)題:1.Pure path studio 內(nèi)能否自己創(chuàng)建個(gè)component,來(lái)實(shí)現(xiàn)特定的
    發(fā)表于 11-01 08:25

    使用AIC3254做音頻采集,使用PPS 5.95進(jìn)行算法編輯,想使用兩個(gè)距離較遠(yuǎn)的麥克風(fēng)采集語(yǔ)音,什么樣的算法比較好?

    我的產(chǎn)品使用AIC3254做音頻采集,使用PPS 5.95進(jìn)行算法編輯,現(xiàn)在想使用兩個(gè)距離較遠(yuǎn)的麥克風(fēng)采集語(yǔ)音,請(qǐng)問(wèn)什么樣的算法比較好?
    發(fā)表于 10-29 06:03

    簡(jiǎn)述光刻工藝的三個(gè)主要步驟

    “ 光刻作為半導(dǎo)體中的關(guān)鍵工藝,其中包括3大步驟的工藝:涂膠、曝光、顯影。三個(gè)步驟個(gè)異常,整
    的頭像 發(fā)表于 10-22 13:52 ?838次閱讀

    名單公布!【書籍評(píng)測(cè)活動(dòng)NO.46】從算法到電路 | 數(shù)字芯片算法的電路實(shí)現(xiàn)

    :elecfans123)領(lǐng)取書籍進(jìn)行評(píng)測(cè),如在5個(gè)工作日內(nèi)未聯(lián)系,視為放棄本次試用評(píng)測(cè)資格! 《從算法到電路——數(shù)字芯片算法的電路實(shí)現(xiàn)》 是
    發(fā)表于 10-09 13:43

    LM2903做了個(gè)窗口比較器電路,比較器輸出個(gè)變化的電平導(dǎo)致LED閃爍怎么解決?

    LM2903做了個(gè)窗口比較器電路,在8.6V 至8.9V輸入時(shí),比較器輸出
    發(fā)表于 09-18 08:44

    tlv3501做了個(gè)過(guò)零比較器,正弦波變成方波,大于1MHz 時(shí)波形變形很大怎么改善?

    tlv3501做了個(gè)過(guò)零比較器,正弦波變成方波,頻率在1MHz以下時(shí)方波波形正常,大于1MHz 時(shí)波形變形很大,要求是達(dá)到10MHz
    發(fā)表于 08-30 06:15

    需要個(gè)單限電壓比較器,閾值電壓200mv,LM311可以實(shí)現(xiàn)嗎?

    需要個(gè)單限電壓比較器,閾值電壓200mv,LM311可以實(shí)現(xiàn)嗎?
    發(fā)表于 08-16 13:55

    數(shù)值比較器的級(jí)聯(lián)端什么作用

    進(jìn)行級(jí)聯(lián),以實(shí)現(xiàn)更復(fù)雜的比較功能。 數(shù)值比較器是種數(shù)字電路,用于比較兩個(gè)數(shù)字信號(hào)的大小。根據(jù)比較
    的頭像 發(fā)表于 07-10 10:37 ?1319次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的原理、數(shù)學(xué)推導(dǎo)及實(shí)現(xiàn)步驟

    傳播算法的原理、數(shù)學(xué)推導(dǎo)、實(shí)現(xiàn)步驟以及在深度學(xué)習(xí)中的應(yīng)用。 神經(jīng)網(wǎng)絡(luò)概述 神經(jīng)網(wǎng)絡(luò)是種受人腦啟發(fā)的計(jì)算模型,由大量的神經(jīng)元(或稱為節(jié)點(diǎn))組成,每個(gè)神經(jīng)元與其他神經(jīng)元通過(guò)權(quán)重連接。神經(jīng)
    的頭像 發(fā)表于 07-03 11:16 ?971次閱讀

    FPGA能實(shí)現(xiàn)什么樣的算法

    FPGA功能如此強(qiáng)大,請(qǐng)問(wèn)FPGA能實(shí)現(xiàn)或者比較適合實(shí)現(xiàn)什么樣的算法
    發(fā)表于 05-26 20:18

    蘋果手機(jī)一個(gè)id怎么取消同步

    蘋果手機(jī)一個(gè)id怎么取消同步? 取消蘋果手機(jī)間的同步功能可以通過(guò)以下步驟完成。請(qǐng)注意,這些步驟適用于iOS 11及更高版本。 步驟1:打
    的頭像 發(fā)表于 02-19 10:19 ?3535次閱讀
    上市百家乐官网评论| 运城百家乐的玩法技巧和规则 | 百家乐官网投注方式| 百家乐在线手机玩| 大发麻将| 明溪百家乐官网的玩法技巧和规则| 美国太阳城养老社区| 百家乐官网币| 百家乐真人娱乐场开户注册| 百家乐官网视频游戏视频| 葡京百家乐的玩法技巧和规则| 网络百家乐官网路单图| 最佳场百家乐的玩法技巧和规则| 百家乐官网开户平台| 夜总会百家乐的玩法技巧和规则| 网络百家乐官网游戏机怎么破解| 博彩百家乐字谜总汇二丹东| 百家乐官网网站程序| 大发888二十一点| 成都百家乐官网的玩法技巧和规则| 北京德州扑克比赛| 百家乐官网网址官网| 久盛国际| 威尼斯人娱乐城怎么样| 百家乐官网平注法口诀| 大连棋牌网| 财富百家乐官网的玩法技巧和规则 | 大赢家百家乐官网娱乐| 香港六合彩开| 大发888娱乐城casinolm0| 赌场百家乐官网代理| 大发888为什么进不去| 百家乐官网庄牌闲牌| 托克托县| 百家乐博彩公| 博狗百家乐官网的玩法技巧和规则| 鸿利国际| 新世百家乐的玩法技巧和规则| 百家乐官网轮盘| 网上尊龙国际娱乐| 亚洲百家乐博彩的玩法技巧和规则|