在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于FPGA的PCIe總線接口的DMA控制器的實(shí)現(xiàn)并進(jìn)行仿真驗(yàn)證

SwM2_ChinaAET ? 2018-01-11 10:57 ? 次閱讀

隨著通信技術(shù)的不斷發(fā)展,對(duì)數(shù)據(jù)傳輸系統(tǒng)的速度與數(shù)據(jù)傳送質(zhì)量的要求也在不斷提高。由Intel在2001年提出的第三代I/O總線技術(shù)——PCI Express總線技術(shù),采用高速差分串行的方式進(jìn)行數(shù)據(jù)傳輸,具有高帶寬、高可靠性、高拓展性等優(yōu)點(diǎn),很好地彌補(bǔ)了PCI、PCI-X總線的不足。

本文基于PCIe 2.0協(xié)議,利用Altera Transceiver PHY IP、Synopsys PCIe Core IP和AXI總線,提出了一種DMA控制器,并搭建了一個(gè)在FPGA端和PC之間的高速數(shù)據(jù)傳輸系統(tǒng)。實(shí)現(xiàn)了寄存器讀寫操作(單字讀寫)和DMA讀寫操作,并利用Synopsys VIP環(huán)境下進(jìn)行的系統(tǒng)仿真上位機(jī)軟件進(jìn)行觀察并驗(yàn)證了數(shù)據(jù)讀寫的正確性。

1 設(shè)計(jì)方案

1.1 基礎(chǔ)模塊

1.1.1 Altera Stratix V GX系列FPGA與PCIe PHY IP

本設(shè)計(jì)使用Stratix V GX系列下的5SGXEA7K2F40C2N FPGA芯片,該芯片內(nèi)部集成了PCIe PHY IP硬核模塊。PCIe PHY IP硬核包括三個(gè)部分,如圖1,PHY IP Core for PCI Express(PIPE)集成了PCIe總線的物理層。Transceiver Reconfiguration Controller IP Core可以動(dòng)態(tài)重新配置模擬參數(shù)。Transceiver PHY Reset Controller IP Core作為收發(fā)器的復(fù)位模塊,確保了PCIe鏈路的初始化。

1.1.2 Synopsys IP與VIP

VIP顧名思義就是驗(yàn)證IP(Verification IP),它為一些標(biāo)準(zhǔn)的接口提供標(biāo)準(zhǔn)的總線行為模型。Synopsys公司提供了PCIe總線的Controller IP,實(shí)現(xiàn)了PCIe總線數(shù)據(jù)鏈路層和事務(wù)層的功能,并內(nèi)置了DMA,同時(shí)也提供了針對(duì)PCIe總線的VIP,為PCIe總線提供了標(biāo)準(zhǔn)的總線行為模型,模擬了上位機(jī)的功能[8]

1.1.3 AXI總線

AXI(Advanced eXtensible Interface)總線是一種高性能、高帶寬、低延遲的總線協(xié)議,有一個(gè)顯著的特點(diǎn),地址/控制和數(shù)據(jù)通道是分開的,共有5個(gè)單向通道,分別為read address channel,write address channel,read data channel,write data channel,write response channel[9],減少了延時(shí),提高了DMA的效率。

1.2 總體方案設(shè)計(jì)

本設(shè)計(jì)采用的整體架構(gòu)如圖2所示,為Altera PHY IP+Synopsys PCIe Core IP+AXI總線+Application。

為了利用Synopsys 的PCIe VIP環(huán)境,采用了Synopsys PCIe Core IP。在PCIe事務(wù)層和應(yīng)用側(cè)之間采用了AXI總線接口,可以在以后的設(shè)計(jì)中進(jìn)行方便的拓展和替換。應(yīng)用側(cè)設(shè)計(jì)實(shí)現(xiàn)了PCIe DMA控制器的功能,并集成了兩塊RAM,一塊大小為128 DW,用來存儲(chǔ)寄存器讀寫的數(shù)據(jù);另一塊大小為512 DW,用來存儲(chǔ)DMA讀寫的數(shù)據(jù)。

2 DMA控制器的設(shè)計(jì)與實(shí)現(xiàn)

2.1 應(yīng)用端DMA操作流程

應(yīng)用端發(fā)起的DMA操作流程如圖3所示,最終DMA讀操作實(shí)現(xiàn)的結(jié)果為將主機(jī)側(cè)的數(shù)據(jù)以DMA的方式寫入到應(yīng)用端的內(nèi)存中。DMA寫操作實(shí)現(xiàn)的結(jié)果為將應(yīng)用端的數(shù)據(jù)以DMA的方式寫入到主機(jī)側(cè)的內(nèi)存中。圖3為應(yīng)用端發(fā)起的DMA操作具體的流程。

(1)主機(jī)側(cè)通過寄存器寫的方式,將DMA讀寫標(biāo)志、DMA長(zhǎng)度、DMA源和目的內(nèi)存地址寫入到應(yīng)用端的寄存器中;

(2)應(yīng)用端中的Slave模塊將這些命令發(fā)送給Master模塊;

(3)Master模塊按照Synopsys PCIe Core IP自定義的Dbi總線的方式,再將這些命令傳送給PCIe Core IP內(nèi)部的寄存器;

(4)PCIe Core IP接收DMA讀寫指令,并持續(xù)操作Master接口以實(shí)現(xiàn)后續(xù)操作;

(5)當(dāng)為DMA讀時(shí),PCIe Core IP的內(nèi)置DMA從主機(jī)側(cè)的“源內(nèi)存地址”中讀取到目標(biāo)數(shù)據(jù);當(dāng)為DMA寫時(shí),PCIe Core IP的Master接口通過AXI總線以讀的方式從“源內(nèi)存地址”讀取到目標(biāo)數(shù)據(jù);

(6)當(dāng)為DMA讀時(shí),PCIe Core IP的Master獲得DMA讀取到的目標(biāo)數(shù)據(jù),并通過AXI總線,以寫的方式寫入到應(yīng)用端的“目的內(nèi)存地址”中;當(dāng)為DMA寫時(shí),Master獲得目標(biāo)數(shù)據(jù)后,內(nèi)置DMA將數(shù)據(jù)發(fā)送到主機(jī)側(cè)的“目的內(nèi)存地址”中;

(7)當(dāng)DMA操作完成,PCIe Core IP會(huì)通知應(yīng)用端的中斷模塊;

(8)應(yīng)用端的中斷模塊會(huì)向主機(jī)側(cè)提交中斷。

2.2 應(yīng)用端DMA控制狀態(tài)機(jī)

應(yīng)用端只需將主機(jī)側(cè)寫入的DMA讀寫標(biāo)志、DMA長(zhǎng)度、DMA源和目的內(nèi)存地址以及DMA啟動(dòng)信號(hào)寫入到PCIe Core IP中的內(nèi)部寄存器,并等待DMA操作的完成,給出中斷信號(hào)。

下面為應(yīng)用端詳細(xì)的DMA控制狀態(tài)機(jī),如圖4所示,狀態(tài)機(jī)把DMA讀操作和DMA寫操作整合到了一起,減少了代碼量。

(1)IDLEPHASE:空閑狀態(tài)。當(dāng)啟動(dòng)信號(hào)start_flag有效時(shí),跳轉(zhuǎn)ENGINE_ENABLE狀態(tài);

(2)ENGINE_ENABLE:判斷DMA讀寫類型信號(hào)wr_rdn_flg,當(dāng)wr_rdn_flg為0,即為DMA讀(PC到FPGA)時(shí),使能DMA讀引擎;當(dāng)wr_rdn_flg為1,即為DMA寫(FPGA到PC)時(shí),使能DMA寫引擎;

(3)DMA_TRANS_SIZE:設(shè)置DMA數(shù)據(jù)傳輸長(zhǎng)度,最多一次傳輸512 DW,最少一次傳輸1 DW;

(4)DMA_SAR:設(shè)置DMA操作源地址(當(dāng)為DMA讀時(shí),源地址為主機(jī)端地址;當(dāng)為DMA寫時(shí),源地址為應(yīng)用端地址);

(5)DMA_DAR:設(shè)置DMA操作目的地址(當(dāng)為DMA讀時(shí),目的地址為應(yīng)用端地址;當(dāng)為DMA寫時(shí),目的地址為主機(jī)端地址);

(6)DMA_DOORBELL:使能DMA操作門鈴信號(hào)dma_strt,啟動(dòng)DMA操作;

(7)DMA_WAIT_INT:等待DMA操作完成;

(8)DMA_INT_STATUS:讀取DMA操作中斷寄存器狀態(tài),當(dāng)DMA操作完成信號(hào)dma_done有效時(shí),產(chǎn)生完成中斷,并跳轉(zhuǎn)DMA_CLEAR_INT狀態(tài);

(9)DMA_CLEAR_INT:清除中斷,回到IDLEPHASE狀態(tài),準(zhǔn)備下一次DMA傳輸。

3 DMA控制器功能驗(yàn)證

3.1 仿真驗(yàn)證

在完成代碼編寫之后,在VIP環(huán)境下搭建仿真平臺(tái),使用Synopsys公司的仿真驗(yàn)證工具VCS進(jìn)行功能測(cè)試,主要測(cè)試驗(yàn)證模塊能否正確對(duì)寄存器讀寫和DMA讀寫產(chǎn)生正確的反應(yīng)。

從圖5、圖6中可以看到,寫地址偏移為0x40,寫數(shù)據(jù)為32’h87654321;讀地址偏移為0x40,讀數(shù)據(jù)為32’h87654321,由此可判斷寄存器讀寫正確。

基于FPGA的PCIe總線接口的DMA控制器的實(shí)現(xiàn)并進(jìn)行仿真驗(yàn)證
基于FPGA的PCIe總線接口的DMA控制器的實(shí)現(xiàn)并進(jìn)行仿真驗(yàn)證

如圖7所示,由dma_strt和dma_done信號(hào)可以看出為2次DMA傳輸,由dma_wr_rdn可看出第一次為DMA讀操作(RC端到APP側(cè)),第二次為DMA寫操作(APP側(cè)到RC端)由dma_bc_len可看出當(dāng)前DMA操作長(zhǎng)度為2 000 Byte,即500 DW,slv_rdata和slv_wdata信號(hào)較為密集的部分分別為2次DMA操作的數(shù)據(jù),對(duì)比這兩次數(shù)據(jù),得知DMA操作正確。

基于FPGA的PCIe總線接口的DMA控制器的實(shí)現(xiàn)并進(jìn)行仿真驗(yàn)證

為了更加方便地比較結(jié)果,采取自動(dòng)對(duì)比文件的方法,即把寄存器或DMA寫的數(shù)據(jù)存放到一個(gè)文件中,再把寄存器或DMA讀回的數(shù)據(jù)存放到另一個(gè)文件中,通過對(duì)比兩個(gè)文件,判斷寄存器和DMA傳輸是正確的。

3.2 FPGA測(cè)試驗(yàn)證

在仿真驗(yàn)證完成之后,進(jìn)行FPGA測(cè)試驗(yàn)證,將硬件部分燒錄到板卡的FPGA芯片后,通過板卡的PCIe金手指插入到PC機(jī)的主板上,PC機(jī)重啟后檢測(cè)到PCIe硬件的插入,即可安裝對(duì)應(yīng)的PCIe驅(qū)動(dòng)軟件,利用上位機(jī)進(jìn)行測(cè)試。

上位機(jī)軟件界面如圖8所示,包括寄存器讀寫(Target操作)和DMA讀寫(Master操作)測(cè)試模塊。

基于FPGA的PCIe總線接口的DMA控制器的實(shí)現(xiàn)并進(jìn)行仿真驗(yàn)證

選擇“Target”操作的“dual”模式,寄存器長(zhǎng)度設(shè)置為118,因?yàn)榍?0個(gè)寄存器與DMA操作相關(guān),可能會(huì)觸發(fā)DMA操作,所以在軟件中選擇跳過。點(diǎn)擊“啟動(dòng)測(cè)試”,數(shù)據(jù)將會(huì)被先從主機(jī)側(cè)寫到FPGA,再從FPGA讀回到主機(jī)側(cè),比較兩次寄存器操作的數(shù)據(jù),即可判斷寄存器操作的正確性。

如圖9所示,選擇“Master”操作的“dual”模式,點(diǎn)擊“memory”,即在PC側(cè)開辟一塊內(nèi)存存放數(shù)據(jù),然后點(diǎn)擊“啟動(dòng)測(cè)試”,數(shù)據(jù)先從PC寫到FPGA的RAM中,接著再從FPGA回到PC,比較存放到PC內(nèi)存的數(shù)據(jù)和從FPGA寫回到PC的數(shù)據(jù),即可判斷DMA讀寫操作的正確性。

基于FPGA的PCIe總線接口的DMA控制器的實(shí)現(xiàn)并進(jìn)行仿真驗(yàn)證

根據(jù)DMA傳輸固定大小的數(shù)據(jù)的時(shí)間,可以計(jì)算出DMA讀寫速率,經(jīng)過多次測(cè)試,DMA讀寫速率分別為1 547 MB/s和1 607 MB/s。本設(shè)計(jì)采用的是PCIe Gen2、×4通道,理論最大傳輸速率為2 000 MB/s。分析代碼得出可能由于應(yīng)用端向PCIe Core IP寫入和讀取數(shù)據(jù)過程占用了一定的時(shí)間,另外驅(qū)動(dòng)程序向DMA寄存器寫入或讀取參數(shù)也占用了一些時(shí)間,都會(huì)影響速率。

4 結(jié)語

本文實(shí)現(xiàn)的基于FPGA的PCIe總線接口的DMA控制器是在Altera PHY IP和Synopsys Core IP的基礎(chǔ)上實(shí)現(xiàn)的,利用Synopsys VIP驗(yàn)證環(huán)境進(jìn)行了功能仿真驗(yàn)證,并通過FPGA進(jìn)行了系統(tǒng)實(shí)測(cè),達(dá)到了較高的傳輸速率,在Gen2、×4模式下,DMA讀寫操作的帶寬分別為 1 547 MB/s和1 607 MB/s,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。


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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16361

    瀏覽量

    178071
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1239

    瀏覽量

    82658
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    561

    瀏覽量

    100587

原文標(biāo)題:【學(xué)術(shù)論文】基于FPGA的PCIe總線接口的DMA控制器的設(shè)計(jì)

文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGAPCIE接口應(yīng)用需要注意哪些問題

    ,選擇高性能的PCIe IP核并進(jìn)行精細(xì)的設(shè)計(jì)優(yōu)化是至關(guān)重要的。 軟件和驅(qū)動(dòng)程序 : 即便硬件設(shè)計(jì)得當(dāng),軟件和驅(qū)動(dòng)程序的效率也會(huì)影響到系統(tǒng)的最終性能。需要確保軟件和驅(qū)動(dòng)程序與FPGAPCI
    發(fā)表于 05-27 16:17

    FPGA干貨分享三】基于FPGA的LBS控制器設(shè)計(jì)

    設(shè)計(jì)按照上述4個(gè)狀態(tài)進(jìn)行Verilog設(shè)計(jì),經(jīng)過仿真和上板調(diào)試,效果很好,下面是狀態(tài)機(jī)設(shè)計(jì)程序,仿真時(shí)序圖如圖3,圖4所示。3、結(jié)語本文設(shè)計(jì)的LBS控制器應(yīng)用在PEX8311和
    發(fā)表于 01-29 14:09

    基于FPGA的PCI Express總線接口應(yīng)用

    描述符表。根據(jù)實(shí)際使用的PCIE總線通道數(shù)和DMA長(zhǎng)度的不同,實(shí)際測(cè)試得到的總線速度也不同,表3給出了參考數(shù)據(jù)。5 結(jié)語使用FPGA來設(shè)計(jì)
    發(fā)表于 05-21 05:00

    采用FPGA實(shí)現(xiàn)PCIe接口設(shè)計(jì)

    系列FPGA實(shí)現(xiàn)PCIe接口所涉及的硬件板卡參數(shù)、應(yīng)用層系統(tǒng)方案、DMA仲裁、PCIe硬核配置與
    發(fā)表于 05-21 09:12

    如何通過PCIe進(jìn)行FPGA到PC的通信?

    嗨,我正在使用超大規(guī)模的FPGA板。我可以通過DMA子系統(tǒng)IP和DDR控制器IP將數(shù)據(jù)從PC傳輸?shù)紻DR。我打算在FPGA進(jìn)行一些處理,然
    發(fā)表于 05-08 09:40

    如何利用PCIe DMA總線實(shí)現(xiàn)一個(gè)基于FPGAPCIe 8位數(shù)據(jù)采集卡?

    PCIe總線通信過程是怎樣的?是什么原理?如何利用PCIe DMA總線實(shí)現(xiàn)一個(gè)基于
    發(fā)表于 09-17 07:16

    CPU數(shù)字通信接口FPGA進(jìn)行數(shù)據(jù)通信設(shè)計(jì)實(shí)現(xiàn)

    進(jìn)行FPGA設(shè)計(jì)時(shí)候,除了一些算法\\驗(yàn)證等應(yīng)用,其他情況下都需要FPGA控制器進(jìn)行數(shù)據(jù)交互
    發(fā)表于 08-19 16:32

    全愛科技Atlas200I A2 AI加速模塊-FPGA PCIE接口驗(yàn)證平臺(tái)

    Xilinx的官方PCIE 2.0 IP核或0 IP核,用來實(shí)現(xiàn)PCIE 硬核IP的例化; 使用DMA控制器
    發(fā)表于 09-05 14:39

    基于FPGA的PCI接口控制器的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的PCI接口控制器的設(shè)計(jì)與實(shí)現(xiàn) pci總線是高速同步總線,采用高度綜合優(yōu)化的
    發(fā)表于 12-14 14:29 ?1855次閱讀
    基于<b class='flag-5'>FPGA</b>的PCI<b class='flag-5'>接口</b><b class='flag-5'>控制器</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    FPGA實(shí)現(xiàn)CAN總線控制器源碼

    Xilinx FPGA工程例子源碼:FPGA實(shí)現(xiàn)CAN總線控制器源碼
    發(fā)表于 06-07 14:13 ?92次下載

    基于FPGA 的SPI Flash 控制器設(shè)計(jì)及驗(yàn)證

    [1] 。它比起傳統(tǒng)的并行總線接口Flash 來說節(jié)省了很多的I/ O 口資源,從而為系統(tǒng)功能的擴(kuò)展提供了更多的可能。為此提出了一種基于FPGA 的SPI Flash 控制器的設(shè)計(jì)方法
    發(fā)表于 11-22 08:47 ?1.3w次閱讀
    基于<b class='flag-5'>FPGA</b> 的SPI Flash <b class='flag-5'>控制器</b>設(shè)計(jì)及<b class='flag-5'>驗(yàn)證</b>

    Crossbar的多通道DMA控制器設(shè)計(jì)

    為了具體介紹本多通道 DMA 控制器的設(shè)計(jì)方案,下面首先對(duì)基于 Crossbar 的多通道 DMA 控制器的工作原理進(jìn)行詳細(xì)分析,接著具體說
    發(fā)表于 12-07 09:37 ?5047次閱讀
    Crossbar的多通道<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>設(shè)計(jì)

    如何使用FPGAPCIe總線進(jìn)行DMA平臺(tái)設(shè)計(jì)

    , PCI_ X等總線,因其性能無法達(dá)到系統(tǒng)的傳輸要求,正逐步淘汰,PCIe總 線作為新一代的總線標(biāo)準(zhǔn),它具有數(shù)據(jù)傳輸速率高,可更好地支持未來高端顯卡等優(yōu)點(diǎn),在LTE系統(tǒng)的物理層中,設(shè)計(jì)基于P
    發(fā)表于 11-13 16:40 ?29次下載
    如何使用<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIe</b><b class='flag-5'>總線</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>DMA</b>平臺(tái)設(shè)計(jì)

    dma控制器的組成

    一個(gè)DMA控制器,實(shí)際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個(gè)接口電路是在中斷
    的頭像 發(fā)表于 04-01 16:08 ?1.1w次閱讀

    PCIe控制器FPGA或ASIC),PCIe-AXI-Controller

    Transaction Layer的所有功能特性,不僅內(nèi)置DMA控制器,而且具備AXI4用戶接口,提供一個(gè)高性能,易于使用,可定制化的PCIe-AXI互連解決方案,同時(shí)適用于ASIC和
    的頭像 發(fā)表于 02-21 15:15 ?921次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>控制器</b>(<b class='flag-5'>FPGA</b>或ASIC),<b class='flag-5'>PCIe</b>-AXI-Controller
    主站蜘蛛池模板: 久久精品免费| 91大神在线看| 狂捣猛撞侍卫攻双性王爷受| 色视频在线免费看| 成人亚洲欧美| 我不卡老子影院午夜伦我不卡四虎| www色在线| 黄色一级视频网| 精品精品国产高清a毛片牛牛| 国产成人精品曰本亚洲78| 可以直接看的黄址 | 一区国产传媒国产精品| 久久99爰这里有精品国产| 久久久久久久久国产| 在线天堂中文字幕| 国产一区二区影院| 亚洲啪啪看看| 日韩精品亚洲一级在线观看| 午夜免费啪视频| 狠狠躁| 黄色毛片免费看| 成人免费黄色网| 四虎影视在线影院在线观看| 亚洲系列_1页_mmyy11| 亚洲福利秒拍一区二区| 男人不识本站| 高清一级| 日本在线黄| 欧美黑人5o厘米全进去| 亚洲第一色视频| 亚洲夜夜操| 真实国产伦子系| www你懂的| 日本不卡一| 国产美女特级嫩嫩嫩bbb| 欧美最猛黑人xxxx黑人猛交69| 日本吻胸抓胸激烈视频网站| 男女啪视频大全1000| 五月激情片| 色456| 天堂资源|