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

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

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

利用Block Design加速設(shè)計(jì)

Comtech FPGA ? 來(lái)源:Comtech FPGA ? 作者:Comtech FPGA ? 2022-12-15 14:04 ? 次閱讀

一 Block Design設(shè)計(jì)方法

早期的FPGA,資源是比較有限的,設(shè)計(jì)規(guī)模相對(duì)也比較小,之前的設(shè)計(jì)流程中工程師常用的設(shè)計(jì)以HDL+Xilinx IP為結(jié)構(gòu),設(shè)計(jì)中也會(huì)顧慮到FPGA資源的節(jié)省。

隨著FPGA的資源越來(lái)越大,設(shè)計(jì)的快速構(gòu)建、易修改、隨著版本可迭代的要求越來(lái)越高。好比在早期單片機(jī)時(shí)代,C語(yǔ)言是主流的工具;而處理器越來(lái)越強(qiáng),腳本類語(yǔ)言能更快構(gòu)建最終應(yīng)用。

Xilinx越來(lái)越多的例程,給出的參考設(shè)計(jì)是基于Block Design設(shè)計(jì)方法的,block design設(shè)計(jì)方法具備如下優(yōu)勢(shì):

A. 框圖形式,直觀易懂
Block Design基于框圖的形式,搭積木+連線的方式; B. 節(jié)省大量的Coding時(shí)間

互聯(lián)總線連線,可以鼠標(biāo)單一連線。Block Design的一個(gè)IP往往可以獨(dú)立運(yùn)行,比代碼的方式只是一個(gè)wrapper包含的內(nèi)容更多;

C. 可以隨著Vivado升級(jí),快速更新IP,保持設(shè)計(jì)更新
傳統(tǒng)HDL+IP的方式,IP升級(jí)后還需要檢查對(duì)應(yīng)HDL的適配。Block Design一般來(lái)說(shuō),IP作為一個(gè)模塊升級(jí),基本上Block Design直接升級(jí),內(nèi)部不用再干預(yù); D. 包括大量的通用IP,可以靈活構(gòu)建設(shè)計(jì)
尤其是基于AMBA的IP,可以幫助用戶快速靈活構(gòu)建設(shè)計(jì);

二 Block Design設(shè)計(jì)實(shí)例

如何理解Block Design設(shè)計(jì)方法、工具如何使用等問(wèn)題Xilinx有詳細(xì)的文檔手冊(cè)來(lái)介紹,本文中不做介紹,本文簡(jiǎn)單以一個(gè)實(shí)際的案例,介紹使用Block Design加速設(shè)計(jì)。

本文描述的這個(gè)設(shè)計(jì),需要4路光纖,運(yùn)行Aurora協(xié)議,各路Aurora線速率不同。最終Aurora協(xié)議的數(shù)據(jù)部分,還需要通過(guò)PCIe上傳到上位機(jī)。反過(guò)程是上位機(jī)的數(shù)據(jù),通過(guò)PCIe最終分發(fā)到4路Aurora光纖,向外傳輸。

本文描述的這個(gè)設(shè)計(jì)中的兩個(gè)要點(diǎn):

1. 利用DDR做大容量緩存

有很多應(yīng)用需要用DDR做緩存,例如常見的PCIe+Aurora收發(fā),或者ADC/DAC,圖像采集卡等,兩邊速率不匹配并且累計(jì)需要的容量超過(guò)FPGA內(nèi)部FIFO的時(shí)候,需要外部的DDR做緩沖。

早期Xilinx DDR IP的用戶接口,只提供了類似于FIFO那樣的接口,并且只有一個(gè)用戶接口。

05277c2c-7c3d-11ed-8abf-dac502259ad0.png

在傳統(tǒng)的RTL設(shè)計(jì)方法中,需要將DDR作為緩存,需要自己做如下設(shè)計(jì):

A. 多數(shù)據(jù)輸入輸出的接口,將app_接口擴(kuò)展多個(gè)獨(dú)立的接口,供不同的端口使用

B. 總線仲裁,多個(gè)獨(dú)立接口仲裁,按照round-robin,或者搶占式的方式提供仲裁

C. 地址管理,不同的端口深度要求不同的情況下,對(duì)應(yīng)管理不同的地址空間。

實(shí)現(xiàn)這些功能,大概需要寫這么多代碼,對(duì)一個(gè)工程師來(lái)說(shuō),這些代碼可能需要2-4周的代碼和仿真時(shí)間:

053e1f7c-7c3d-11ed-8abf-dac502259ad0.png

如果使用Block Design實(shí)現(xiàn),1個(gè)小時(shí)差不多就可以實(shí)現(xiàn)上面的這些內(nèi)容,在Block Design中:

A. 最右側(cè)的DDR IP 直接出AXI接口;

B. 使用AXI Smart Connect實(shí)現(xiàn)多端口擴(kuò)展,自帶仲裁功能;

C. 使用DATAMOVER完成外圍FIFO數(shù)據(jù)到DDR的數(shù)據(jù)讀寫;

05516a6e-7c3d-11ed-8abf-dac502259ad0.png

搭建這個(gè)Block只需要10分鐘,到這一步為止,剩下的工作只需要控制DATAMOVER的命令接口即可。

2. 使用XDMA直接和DDR交互

過(guò)去Xilinx 平臺(tái)設(shè)計(jì)DMA,從最早的XAPP1052,到后來(lái)一些付費(fèi)的PLDA和NWlogicIP,設(shè)計(jì)復(fù)雜度不用說(shuō),哪怕購(gòu)買了IP也需要一些時(shí)間融入到自己的產(chǎn)品中。

Xilinx有一個(gè)XDMA IP,這個(gè)IP的介紹和使用參考PG195。這里使用Block Design,添加XDMA。

XDMA對(duì)外有2個(gè)接口:

A. 一個(gè)是AXI_LITE接口,這里接AXI_BRAM IP,對(duì)外是一個(gè)bram接口,用作寄存器接口,控制PCIe卡內(nèi)部的寄存器;

B. 一個(gè)是AXI Memory Full接口,可以直接對(duì)接DDR空間,訪問(wèn)所有的DDR部分;

05a198e0-7c3d-11ed-8abf-dac502259ad0.png

通過(guò)地址空間來(lái)看,DDR被PCIe XDMA和4路DATAMOVER共享,DATAMOVER外部接收的數(shù)據(jù)緩存在DDR空間,上位機(jī)可以直接讀走這片緩存的數(shù)據(jù),從而實(shí)現(xiàn)外部數(shù)據(jù)到上位機(jī)的過(guò)程。

05b4fdf4-7c3d-11ed-8abf-dac502259ad0.png

一個(gè)實(shí)際的PCIe Aurora光纖收發(fā)的工程,在Block Design中搭建這些框圖,外圍的代碼非常簡(jiǎn)單。下面是一個(gè)實(shí)際的工程,4光口的Aurora收發(fā)卡,使用DDR緩存,并且使用PCIe和上位機(jī)交互。

Block Design中包含了PCIe部分,以及上面的DDR緩沖的部分,外部只需要1個(gè)DATAMOVER寫控制、1個(gè)DATAMOVER讀控制、1個(gè)寄存器接口,即完成整個(gè)設(shè)計(jì)。

05f96250-7c3d-11ed-8abf-dac502259ad0.png

三 結(jié)語(yǔ)

使用Block Design設(shè)計(jì)方法,主體部分都可以快速拖拽和連線完成,使得外圍所需要的的代碼大大簡(jiǎn)化,只需要區(qū)區(qū)3個(gè)模塊代碼,完成從數(shù)據(jù)流到DDR的緩沖以及通過(guò)XDMA讀取DDR的過(guò)程,從而完成外圍接口和上位機(jī)的通訊。

這個(gè)設(shè)計(jì)可以適配很多種Stream形式的設(shè)計(jì):

A. Aurora光纖收發(fā)卡;

B. Camera Link圖像采集卡;

C. AD/DA數(shù)據(jù)采集回放卡;

審核編輯 :李倩

聲明:本文內(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)注

    1624

    文章

    21538

    瀏覽量

    600454
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4694

    瀏覽量

    68075
  • Block
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    14667

原文標(biāo)題:利用Block Design加速設(shè)計(jì)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    利用邊沿速率加速器和自動(dòng)感應(yīng)電平轉(zhuǎn)換器

    電子發(fā)燒友網(wǎng)站提供《利用邊沿速率加速器和自動(dòng)感應(yīng)電平轉(zhuǎn)換器.pdf》資料免費(fèi)下載
    發(fā)表于 09-02 11:58 ?0次下載
    <b class='flag-5'>利用</b>邊沿速率<b class='flag-5'>加速</b>器和自動(dòng)感應(yīng)電平轉(zhuǎn)換器

    淺談Pango_Design_Suite工具的安裝

    聯(lián)系了小眼睛FPGA官方客服,獲取了基于PGX-Mini 4K開發(fā)板的SDK包,這里有包含了兩個(gè)版本的Pango_Design_Suite安裝文件,筆者
    發(fā)表于 05-30 00:43

    Cadence與NVIDIA聯(lián)合推出利用加速計(jì)算和生成式AI重塑設(shè)計(jì)

    中國(guó)上海,2024 年 3 月 25 日——楷登電子(美國(guó) Cadence 公司,NASDAQ:CDNS)近日宣布,公司將深化與 NVIDIA 在 EDA、系統(tǒng)設(shè)計(jì)與分析、數(shù)字生物學(xué)和人工智能領(lǐng)域的多年合作,推出兩款變革性解決方案,利用加速計(jì)算和生成式 AI 重塑設(shè)計(jì)。
    的頭像 發(fā)表于 03-25 14:36 ?514次閱讀

    利用GPU加速在Orange Pi?5上跑LLMs:人工智能愛好者High翻了!

    本期視頻將會(huì)給人工智能愛好者們帶來(lái)超級(jí)震撼!視頻中,我們將深入了解利用GPU加速在OrangePi5上跑LLMs的精彩世界。最近知乎上的一篇文章《利用GPU加速,在OrangePi上跑
    的頭像 發(fā)表于 01-22 15:29 ?895次閱讀
    <b class='flag-5'>利用</b>GPU<b class='flag-5'>加速</b>在Orange Pi?5上跑LLMs:人工智能愛好者High翻了!

    加速度傳感器原理及其應(yīng)用

    中形成電壓信號(hào),從而測(cè)量加速度。 2.電容原理:電容式加速度傳感器利用電容的變化來(lái)測(cè)量加速度。當(dāng)傳感器受到加速度時(shí),內(nèi)部的移動(dòng)部件會(huì)導(dǎo)致電容
    的頭像 發(fā)表于 01-05 08:39 ?1472次閱讀
    <b class='flag-5'>加速</b>度傳感器原理及其應(yīng)用

    LTpowerCAD supply design和ToolBox無(wú)法使用怎么解決?

    從官網(wǎng)下載的LTpowerCAD解壓完整安裝setup,軟件版本2.7.1,即使是sync/release也是無(wú)法解決報(bào)錯(cuò)問(wèn)題,只有system design功能能正常使用外,supply
    發(fā)表于 01-04 08:10

    粒子加速器的加速原理是啥呢?

    粒子加速器的加速原理是啥呢? 粒子加速器是一種重要的實(shí)驗(yàn)設(shè)備,用于研究粒子物理學(xué)、核物理學(xué)等領(lǐng)域。其主要原理是通過(guò)電場(chǎng)和磁場(chǎng)的作用,對(duì)帶電粒子進(jìn)行加速,在高速運(yùn)動(dòng)過(guò)程中使其獲得較大的動(dòng)
    的頭像 發(fā)表于 12-18 13:52 ?1847次閱讀

    芯片Block的劃分問(wèn)題解析

    后端在floorplan階段,如何擺放macro是一個(gè)很重要的問(wèn)題。如果采用層次化設(shè)計(jì),對(duì)于每一個(gè)block來(lái)說(shuō)都需要在block內(nèi)部把所分配的macro擺好。
    的頭像 發(fā)表于 12-06 14:51 ?577次閱讀

    block schematic如何使用?

    block schematic這個(gè)如何使用,有使用指南嗎?auido input 沒(méi)東西可選啊。
    發(fā)表于 11-29 07:11

    AMD Vivado Design Suite 2023.2的優(yōu)勢(shì)

    由于市場(chǎng)環(huán)境日益復(fù)雜、產(chǎn)品競(jìng)爭(zhēng)日趨激烈,為了加快推出新型自適應(yīng) SoC 和 FPGA 設(shè)計(jì),硬件設(shè)計(jì)人員和系統(tǒng)架構(gòu)師需要探索更為高效的全新工作方式。AMD Vivado Design Suite
    的頭像 發(fā)表于 11-23 15:09 ?755次閱讀

    一個(gè)微型的粒子加速

    粒子加速器是一種利用電場(chǎng)和磁場(chǎng)來(lái)加速帶電粒子,如電子、質(zhì)子或離子,使其達(dá)到非常高的能量的裝置。它們?cè)诳茖W(xué)、醫(yī)學(xué)和工業(yè)等領(lǐng)域有許多應(yīng)用,如研究物質(zhì)的結(jié)構(gòu)、制造醫(yī)用同位素或產(chǎn)生X射線。然而,大多數(shù)粒子
    的頭像 發(fā)表于 10-31 09:31 ?712次閱讀

    如何利用3軸加速度計(jì)計(jì)算Z方向的角度?

    現(xiàn)在想利用3軸加速度計(jì)計(jì)算Z方向的角度,但是網(wǎng)上都說(shuō)需要磁力計(jì),請(qǐng)教有沒(méi)有一位大神知道在沒(méi)有磁力計(jì)的情況下如何計(jì)算Z方向角度
    發(fā)表于 10-30 07:05

    Cadence 與 Arm Total Design 合作,加速開發(fā)基于 Arm 的定制 SoC

    日——楷登電子(美國(guó) Cadence 公司,NASDAQ:CDNS)近日宣布與 Arm ?Total Design?合作,共同致力于支持和加速開發(fā)基于 Arm Neoverse ?Compute
    的頭像 發(fā)表于 10-25 10:40 ?371次閱讀
    Cadence 與 Arm Total <b class='flag-5'>Design</b> 合作,<b class='flag-5'>加速</b>開發(fā)基于 Arm 的定制 SoC