當前位置:首頁 > EDA > 電子設計自動化
[導讀]摘要:介紹了FPGA內(nèi)嵌的PCI Express硬核端點模塊和Wishbone片上總線規(guī)范。應用VHDL語言,編程實現(xiàn)了Wishbone總線的主從端口,以及TLP包的編碼和解碼功能。在FPGA上運行程序并使用Chipscope測試時序波形,驗證了接口數(shù)

摘要:介紹了FPGA內(nèi)嵌的PCI Express硬核端點模塊和Wishbone片上總線規(guī)范。應用VHDL語言,編程實現(xiàn)了Wishbone總線的主從端口,以及TLP包的編碼和解碼功能。在FPGA上運行程序并使用Chipscope測試時序波形,驗證了接口數(shù)據(jù)傳輸?shù)姆€(wěn)定性和正確性。
關鍵詞:PCI Express總線;FPGA;PCIE端點模塊;Wishbone

0 引言
    當前,基于FPGA實現(xiàn)PCI Express接口有兩種方案,一是采用第三方PHY接口器件和FPGA實現(xiàn);二是采用集成GTP的FPGA來實現(xiàn)。集成GTP的FPGA實現(xiàn)PCI Express接口在鏈路效率、兼容性測試及資源可用性等方面有其獨特的優(yōu)勢。隨著技術(shù)的發(fā)展和對傳輸數(shù)據(jù)速率和靈活性要求的提高,將更加趨于利用高性能FPGA(即集成GTP的FPGA)來實現(xiàn)PCIExpress接口功能。但是,要在FPGA上實現(xiàn)PCI Express通信橋接,還需要用戶根據(jù)PCI Express協(xié)議構(gòu)建自己的軟IP或者向第三方或FPGA供應商購買IP核。構(gòu)建IP核的難題在于其難度較大且開發(fā)周期較長;向第三方或FPGA供應商購買的IP,存在專利費用問題。對于一些驗證性開發(fā),其重點一般在于應用功能的實現(xiàn),而希望公共模塊(如PCI Express接口)的開發(fā)在滿足性能的前提下,盡量少花時間和費用,從而縮短開發(fā)周期和成本。因此,利用已有可獲取資源,實現(xiàn)PCI Express接口成為這類開發(fā)中的首選。
    Xilinx的V5/V6系列FPGA芯片中已集成了硬核端點的PCI Express模塊,提供了PCI Express接口的底層配置,相當于提供了一個專用協(xié)議與PCI Express之間的橋梁。在PCI Express硬核端點上集成片上總線,實現(xiàn)PCI Express與應用模塊互聯(lián),將能更快地實現(xiàn)PCI Express接口的開發(fā)。
    目前比較常見的片上總線規(guī)范有IBM公司的CoreConnect,ARM公司的AMBA和Silicore Corp公司的Wishbone。CoreConnect和AMBA規(guī)范復雜,在設計中需要建立連接橋以連接不同IP核。相對于其他兩種接口規(guī)范,Wishbone接口規(guī)范具有簡單、高效、易于實現(xiàn)等特點,而且完全免費。因此,本文采用Wishbone總線規(guī)范實現(xiàn)PCI Exprpess接口。

1 Wishbone基本原理、Xilinx集成端點IP及TLP包結(jié)構(gòu)
1.1 Wishhone的基本原理
    Wishbone最先是由Silicore公司提出的,現(xiàn)在己被移交給OpenCores組織維護。其開放性、簡單性和靈活性受到廣大設計者的青睞,現(xiàn)在己有不少的用戶群體,特別是一些免費的IP核,采用Wishbone標準。除了具備地址/數(shù)據(jù)總線寬度可變、互聯(lián)結(jié)構(gòu)可變及仲裁機制靈活等片上總線的共同特點外,Wishhone還包括以下特征:
    (1)支持點到點、共享總線、十字交叉和基于交換結(jié)構(gòu)的互聯(lián);
    (2)支持常用的總線數(shù)據(jù)傳輸協(xié)議,如單字節(jié)讀寫周期、塊傳輸周期、控制操作及其他的總線事務等;
    (3)主/從結(jié)構(gòu),支持多控制器和64位地址空間,從端部分地址解碼;握手協(xié)議使得每個核都可以控制數(shù)據(jù)的傳輸速度;
    (4)用戶自定義標記(TAG),確定數(shù)據(jù)傳輸類型、中斷向量等;
    (5)接口簡單、緊湊,總線實現(xiàn)的邏輯單元少。
    Wishhone采用主端(Master)和從端(Slave)的架構(gòu)。主端模塊發(fā)出數(shù)據(jù)傳送請求,然后通過一個接口網(wǎng)絡和從端進行數(shù)據(jù)交換,其系統(tǒng)結(jié)構(gòu)如圖1所示。這個接口網(wǎng)絡稱之為INTERCON,各終端之間訪問通過INTERCON,INTERCON內(nèi)部可根據(jù)訪問情況采用不同的互連方式,Wishbone將它稱為可變互聯(lián)網(wǎng)絡??勺兓ヂ?lián)網(wǎng)絡的連接形式有點對點、數(shù)據(jù)流、共享總線和交叉總線等。


    Wishbone可變的互連方式允許系統(tǒng)設計工程師可以采用不同的IP核互連方式,以滿足不同場合的要求。根據(jù)需要,本設計采用點對點的總線互連方式。圖2給出了點對點的MASTER/SLAVE主從接口圖。其中SYSCON為產(chǎn)生時鐘和復位信號,TAGN為用戶自定義信號。


    Wishbone數(shù)據(jù)傳輸?shù)奈帐謾C制如圖3所示。準備傳輸數(shù)據(jù)時,Master設置STB_O輸出信號為有效(Wishbone設置高電平為有效電平),表示開始對Slave進行訪問;當接收完數(shù)據(jù),Master的ACK_I信號接收到Slave發(fā)出的完成信號,然后Master取消STB_O信號。Slave可以置RTY_O為高,表示Slave現(xiàn)在忙,以后再試;還可以置ERR_O為高,表示出錯。在Master和Slave傳輸數(shù)據(jù)期間,兩端都可以控制數(shù)據(jù)的傳輸速度。


1.2 Xilinx集成硬核端點IP結(jié)構(gòu)
    Xilinx的端點IP符合PCIe協(xié)議V1.1,集成了PCI Express協(xié)議中的物理層(PHY)、數(shù)據(jù)鏈接層(DLL)和傳輸層(TLL),其結(jié)構(gòu)框圖如圖4所示,包含有以下幾個接口:時鐘及復位接口;事務層接口;管理接口;緩存接口;收發(fā)器接口;配置和狀態(tài)接口。


    事務層接口,與用戶應用設計連接。在本次設計中連接到Wishbone從接口。
    時鐘及復位接口,包含DCM所需的反饋時鐘。在本次設計中系統(tǒng)參考時鐘為100 MHz,用戶時鐘為62.5MHz。
    收發(fā)器接口,與GTP相連。包含多條發(fā)送和接收鏈路,每條鏈路包含一對發(fā)送和一對接收信號,發(fā)送和接收信號都是差分信號,本文采用X1。
    緩存接口,與事務層和數(shù)據(jù)鏈路層相連。用來實現(xiàn)數(shù)據(jù)傳輸?shù)木彌_。這三個緩存器已在CORE Generator中進行了例化和配置。Block RAM數(shù)據(jù)通路為64位寬。三個Block RAM接口均與端點模塊的其余部分同步運行。每個接口都具備單獨的讀寫地址、數(shù)據(jù)和控制信號。
    管理接口,用于訪問端點模塊中的各種寄存器和信號,包括PCI Express配置空間、各種控制和狀態(tài)寄存器。管理接口還包含用于統(tǒng)計數(shù)據(jù)和監(jiān)測的輸出信號以及一個讀取流量控制信用輸出的接口。
    配置及狀態(tài)接口包含控制和狀態(tài)、錯誤、后端接口配置以及中斷端口。
    收發(fā)器接口、存儲器接口以及時鐘和復位接口在CORE Generator封裝中自動連接。這些接口在封裝之外均不可見。
1.3 TLP包結(jié)構(gòu)
    PCI Express協(xié)議是基于TLP包傳輸?shù)?,在PCIExpress設備之間傳輸?shù)腡LP結(jié)構(gòu)如圖5所示。數(shù)據(jù)發(fā)送時,來自軟件層/核心設備的核心信息包括頭以及數(shù)據(jù)部分(某些TLP不包含數(shù)據(jù)),經(jīng)事務層添加摘要部分,發(fā)往數(shù)據(jù)鏈路層后附加序列號及LCRC,最后在物理層添加幀開始及結(jié)束標志后發(fā)送;數(shù)據(jù)接收時,逐層去掉附加部分,最后將頭及數(shù)據(jù)部分送至軟件層/核心設備。


    在每個頭中含有類型及格式兩個字段,它們定義頭剩余部分的格式,用來指定事務的類型、頭的大小、數(shù)據(jù)有效載荷是否存在等。事務(在PCI Express請求者和完成者之間進行的操作)包括存儲器事務、I/O事務、配置事務和消息事務。事務分為三個類別:posted(不需要響應,不需要返回完成包,存儲器寫和消息屬于此類事務),非posted(需要響應)和完成包。


    本文設計的基于Wishbone的PCI Express接口的讀寫操作針對存儲器空間,其中存儲器讀寫操作TLP頭的格式如圖6所示。類型字段(Fmt)為00000b時表示存儲器讀或者寫;格式字段(Type)為00/01b時表示3DW/4DW的存儲器讀操作,為10/11b時表示3DW/4DW的存儲器寫操作。

2 基于Wishboen的PCI Express接口實現(xiàn)
2.1 實現(xiàn)原理
    本文基于Xilinx FPGA的PCI Express集成硬核端點模塊和Wishhone片上總線,實現(xiàn)了主機和外接存儲器問通過PCI Express的接口通信。PCI Express接口基于協(xié)議包傳輸機制,因此,集成端點模塊的數(shù)據(jù)傳輸均以TLP包的形式進行。實現(xiàn)數(shù)據(jù)傳輸可通過以下步驟進行(以PCI Express讀傳輸為例):
    (1)待傳輸數(shù)據(jù)存儲在應用模塊中的數(shù)據(jù)緩存器中,數(shù)據(jù)緩存器可以使用片外存儲器也可以使用片內(nèi)RAM資源。本設計使用的是片內(nèi)RAM資源;
    (2)數(shù)據(jù)通過集成在存儲器端的Wishbone總線輸入到數(shù)據(jù)緩存區(qū)(Tx_ram)中,在數(shù)據(jù)緩存區(qū)(Tx_ram)中根據(jù)規(guī)定格式形成TLP包;
    (3)根據(jù)PCI Express協(xié)議,將在數(shù)據(jù)緩存區(qū)(Tx_ram)中的TLP包通過集成端點模塊發(fā)送出去。
    PCI Express寫傳輸是上述的逆過程。
    其原理框圖如圖7所示。



2.2 設計買現(xiàn)
    Xilinx的V5/V6系列FPGA提供了一個PCI Express硬核端點模塊,此端點模塊提供了一個PCI Express接口通信的底層配置,但沒有包含對TLP包的編碼及解碼邏輯。因此,需要在設計中實現(xiàn)TLP包的編碼及解碼邏輯功能。編碼是將來自Wishbone片上總線的數(shù)據(jù)打包成TLP格式存入Tx_ram;解碼即是在Rx_ram中提取TLP包的有效載荷。在解碼邏輯中,最重要的就是要根據(jù)包頭的類型字段和格式字段來正確確定事務的類型、頭的大小、有效載荷是否存在。
    在應用模塊的存儲器端和FPGA端點IP核之間實現(xiàn)Wishbone的點對點連接,存儲器端接口為主端口,與硬核接口端為從端口。實現(xiàn)了32 b/16 b/8 b的單個存儲器的讀和寫以及主機到應用模塊間的DMA傳輸。需要注意的是,在Wishbone讀/寫操作的時候,一個時鐘周期只能進行一個雙字的傳送,對多個雙字進行讀寫時需要多個時鐘周期。
    主機到應用模塊間的DMA傳輸包括DMA寫操作和DMA讀操作,其狀態(tài)流程如圖8所示。


    DMA寫操作實現(xiàn)的主要方法是主機將TLP包頭中的各個字段正確填充,按照32位并組裝成TLP包頭,通過主機PCI Express接口傳輸?shù)郊啥它c硬核。硬核收到數(shù)據(jù)后,緩存到Rx_ram中,在解碼邏輯控制下,根據(jù)包頭類型(10/11b)及格式字段(00000b)發(fā)起Wishbone寫操作,將TLP包的有效載荷寫入存儲器中。
    在進行PCI Express的DMA讀操作時,數(shù)據(jù)通過wishbone總線讀入,在編碼邏輯控制下,數(shù)據(jù)按照TLP包格式寫入Tx_ram中,將數(shù)據(jù)打包成一個3DW完成包,等待端點模塊發(fā)送。
2.3 功能仿真
    本設計在XUPV5 LX110T開發(fā)板上進行了功能驗證試驗。首先利用Xilinx公司的CORE Generator工具生成PCI Express端點IP核,其主要參數(shù)是鏈路數(shù)為X1,基地址0使能,地址類型為32位,訪問類型為Memory類型,用戶時鐘輸入為62.5 MHz。編程設計完成后,通過JTAG接口下載到FPGA芯片中,用Chipscope進行測試,波形圖如圖9~圖10所示。


    通過數(shù)據(jù)傳輸試驗測試,Wishhone轉(zhuǎn)PCI Express接口的傳輸速率能達到80 MB/s以上,系統(tǒng)工作穩(wěn)定。目前,Wishbone實現(xiàn)了32 b/16 b/8 b的單個存儲器的讀和寫和DMA讀寫。如能夠編程實現(xiàn)Wishbone大字節(jié)塊的突發(fā)傳輸,傳輸速率將大大提高,這也是下一步開發(fā)的重點。

3 結(jié)語
    測試試驗結(jié)果證明,采用Wishbone和端點IP實現(xiàn)PCI Express總線接口,具有較高的通信速率,能滿足許多應用的一般通信要求,特別是開發(fā)過程簡化且極大地縮短了開發(fā)時間。這種設計模式能夠更加專注于應用功能的實現(xiàn)而不必在一些公共模塊(如PCIExpress)上花費更多的時間和成本。另外,本文采用FPGA芯片內(nèi)嵌PCI Express End point Block硬核來進行PCI Express的設計,實現(xiàn)方式也為相似產(chǎn)品開發(fā)提供了有益參考。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術(shù)
關閉
關閉