一種axi/pcie總線轉(zhuǎn)換裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種總線轉(zhuǎn)換裝置,尤其涉及一種AXI/PCIE總線轉(zhuǎn)換裝置,用于實現(xiàn)AXI總線與PCIE總線之間的數(shù)據(jù)通信。
【背景技術(shù)】
[0002]AXI是一個新的高性能的協(xié)議,是AMBA公司提出的AMBA3.0中的最重要的部分,滿足超高性能和復(fù)雜的片上系統(tǒng)設(shè)計的需求。它是一種面向高性能、高帶寬、低延遲的片內(nèi)總線。它的主要特點是地址/控制和數(shù)據(jù)是分離的,支持不對齊的數(shù)據(jù)傳輸,同時它把讀寫數(shù)據(jù)通道分離,并支持顯著的傳輸訪問和亂序訪問。
[0003]PCIE是當(dāng)前主流的總線和接口標(biāo)準(zhǔn),這個新標(biāo)準(zhǔn)取代原來的PCI和AGP總線,成為新一代計算機(jī)設(shè)備的接口標(biāo)準(zhǔn)。PCIE總線采用點對點的串行通信方式,基于包進(jìn)行數(shù)據(jù)傳輸,現(xiàn)在主流的計算機(jī)接口都提供了 PCIE接口。許多帶有AXI接口的運用系統(tǒng)可以通過此總線轉(zhuǎn)換控制器直接訪問PCIE設(shè)備。
[0004]對于兩種不同協(xié)議總線間的數(shù)據(jù)通信,可以通過總線轉(zhuǎn)換裝置(或稱轉(zhuǎn)換橋)來實現(xiàn)?,F(xiàn)有AXI/PCIE總線轉(zhuǎn)換裝置都是只單單完成協(xié)議轉(zhuǎn)換、數(shù)據(jù)的傳輸。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)不足,提供一種AXI/PCIE總線轉(zhuǎn)換裝置,在快速準(zhǔn)確實現(xiàn)AXI總線與PCIE總線之間數(shù)據(jù)通信的同時,具有結(jié)構(gòu)簡單、實現(xiàn)成本低,以及兼容性好的優(yōu)點。
[0006]本發(fā)明具體采用以下技術(shù)方案:
一種AXI/PCIE總線轉(zhuǎn)換裝置,用于實現(xiàn)AXI總線與PCIE總線之間的數(shù)據(jù)通信,其特征在于,該裝置包括:配置模塊、AXI讀通道模塊、AXI寫通道模塊、發(fā)送FIFO模塊、接收FIFO模塊、發(fā)送控制模塊、接收控制模塊、Master模塊、Slave模塊、TX模塊和RX模塊,其中:
所述配置模塊與AXI總線相連,接收來自處理器的操作命令,負(fù)責(zé)配置DMA控制寄存器組,啟動數(shù)據(jù)傳輸操作;
所述AXI讀通道模塊與AXI總線相連,用于將來自AXI總線的數(shù)據(jù)傳送到發(fā)送FIFO模塊中;
所述AXI寫通道模塊與AXI總線相連,用于將接收FIFO模塊中的數(shù)據(jù)傳送到AXI總線上;
所述發(fā)送FIFO模塊與AXI讀通道模塊相連,用于緩存來自AXI總線的數(shù)據(jù),其緩存的數(shù)據(jù)按PCIE總線端的時鐘頻率被取走;
所述接收FIFO模塊與AXI寫通道模塊相連,用于緩存來自PCIE總線的數(shù)據(jù),其緩存的數(shù)據(jù)按AXI總線端的時鐘頻率被取走;
所述發(fā)送控制模塊用于完成AXI總線至PCIE總線的數(shù)據(jù)位寬轉(zhuǎn)換,并控制來自AXI總線的數(shù)據(jù)的發(fā)送; 所述接收控制模塊用于完成PCIE總線至AXI總線的數(shù)據(jù)位寬轉(zhuǎn)換,并控制來自PCIE總線的數(shù)據(jù)的接收;
所述Master模塊與發(fā)送FIFO和發(fā)送控制模塊分別相連,用于將從AXI總線那端獲取得到的數(shù)據(jù)、地址信息等組裝成報文,傳給TX模塊;
所述Slave模塊與RX模塊相連,用于完成各種報文的接收和區(qū)分,對讀寫報文和錯誤報文進(jìn)行不同處理,對于正確報文,提取出相關(guān)信息和數(shù)據(jù)后發(fā)往Master模塊,對于錯誤報文,將其控制信息發(fā)送至Master模塊;
所述TX模塊與Master模塊相連,負(fù)責(zé)將數(shù)據(jù)傳送到PCIE總線;
所述RX模塊與Slave模塊相連,負(fù)責(zé)接收來自PCIE總線的數(shù)據(jù),并送給Slave模塊進(jìn)行解析。
[0007]優(yōu)選地,發(fā)送控制模塊按照以下方法完成AXI總線至PCIE總線的數(shù)據(jù)位寬轉(zhuǎn)換:將來自AXI總線的64bits數(shù)據(jù)每4個為一組拼接成一個256bits的數(shù)據(jù)傳送給PCIE總線。
[0008]接收控制模塊按照以下方法完成PCIE總線至AXI總線的數(shù)據(jù)位寬轉(zhuǎn)換:將來自PCIE總線的256bits的數(shù)據(jù)拆解成4個64bits的數(shù)據(jù)傳送給AXI總線。
[0009]優(yōu)選地,所述Master模塊的發(fā)送控制邏輯處理流程,具體如下:
1)初始化,當(dāng)前情況下不斷監(jiān)測發(fā)送請求信號,當(dāng)發(fā)現(xiàn)發(fā)送請求信號有效時,馬上進(jìn)入下一步準(zhǔn)備就緒;
2)準(zhǔn)備就緒,此時Master模塊首先檢測是否是帶數(shù)據(jù)的報文,如果是不帶數(shù)據(jù),則下一步為報文包頭傳輸;如果是帶有數(shù)據(jù)的報文,則設(shè)置帶有數(shù)據(jù)負(fù)載的標(biāo)志信號payload為I ;如果是錯誤報文,就會遵循錯誤報文的處理邏輯;完成上述操作后,下一步驟為報文包頭傳輸;
3)報文包頭傳輸,此時Master模塊向TX模塊發(fā)送一個請求發(fā)送數(shù)據(jù)報文頭的發(fā)送請求,當(dāng)數(shù)據(jù)報文頭發(fā)送完畢后,就會返回一個反饋信號,整個發(fā)送控制邏輯接收到反饋信號后,檢測payload的值,如果payload為0,則當(dāng)前報文傳輸完畢,否則繼續(xù)傳輸報文的數(shù)據(jù)負(fù)載;
4)傳輸報文的數(shù)據(jù)負(fù)載,Master模塊建立TX模塊與對應(yīng)的發(fā)送FIFO模塊之間的鏈接,使TX模塊能夠持續(xù)的從發(fā)送FIFO模塊中讀取當(dāng)前報文剩余的未傳輸數(shù)據(jù)負(fù)載;
5)當(dāng)前數(shù)據(jù)報文傳輸完畢,一個周期以后,進(jìn)行下一個數(shù)據(jù)報文的發(fā)送。
[0010]優(yōu)選地,所述Slave模塊的接收控制邏輯處理流程,具體如下:
1)初始化,當(dāng)Slave模塊接收到報文時,馬上進(jìn)行下一步工作報文字段解析檢查;
2)報文包頭字段解析檢查,Slave模塊對報文頭中各個解析出來的字段進(jìn)行檢查,如果合法,則下一步準(zhǔn)備接收報文,如果非法,則停止接收報文;
3)準(zhǔn)備接收報文,Slave模塊檢測報文是否帶數(shù)據(jù),如果不帶數(shù)據(jù),則重新回到初始化,結(jié)束此報文的接收,如果帶有數(shù)據(jù),則接受報文數(shù)據(jù);如果接收到的報文帶有數(shù)據(jù),則Slave模塊將數(shù)據(jù)寫入FIFO中;所有的數(shù)據(jù)都接收完畢了,接收邏輯再次初始化,本次報文接收完成;如果是非法的報文,則停止報文接收;
4)終止報文的接收,終止接收報文后,接收控制邏輯再次初始化,結(jié)束本次報文的接收。
[0011]優(yōu)選地,所述TX模塊的報文發(fā)送處理流程,具體如下: 1)初始化,TX模塊一直檢測發(fā)送請求信號,當(dāng)發(fā)送請求信號有效時,下一步發(fā)送報文包頭;
2)發(fā)送報文包頭,此時TX模塊開始發(fā)送數(shù)據(jù),并從報文包頭中提取信息,確認(rèn)報文是否能在一個周期內(nèi)發(fā)送完成,如若可以,則等待反饋信號,如若不行,則繼續(xù)剩余報文的發(fā)送;
3)繼續(xù)當(dāng)前報文剩余的數(shù)據(jù)報文的發(fā)送,直至當(dāng)前報文發(fā)送完畢,等待反饋信號;
4)TX模塊等待PCIE總線處理完畢的反饋信號,一旦接收到來自PCIE總線的反饋信號則初始化,開始新一輪報文的發(fā)送。
[0012]優(yōu)選地,所述RX模塊的報文接收處理流程,具體如下:
O初始化,此時RX模塊持續(xù)檢測是否有報文需要接收,一旦檢測到有報文需要接收,則開始接收報文包頭;
2)接收報文包頭,此時RX模塊對接收到的數(shù)據(jù)報文的頭部信息進(jìn)行提取,獲取要接收的報文的長度,同時根據(jù)報文頭部的信息判斷報文是否有異?;蛘咤e誤,如若報文是正常的且一個周期內(nèi)能接收完畢,那么檢測報文是否結(jié)束;如若報文是正常的且一個周期內(nèi)不能接收完畢,那么繼續(xù)未接收完成的報文的接收;如若報文是異常的,那么就會停止接收異常報文;
3)接收剩余未接收的報文,RX模塊繼續(xù)當(dāng)前報文尚未接收完的報文的接收,直至接收完畢,重新回到初始化;
4)停止接收異常報文,接收到的報文是無效的,不會傳輸緩存至FIFO中,但接收結(jié)束以后會給出一個接收結(jié)束信號;
5)報文接收完畢,此時RX模塊一直檢測報文的結(jié)束信號,一旦檢測到報文的結(jié)束信號,流程重新回到初始化。
[0013]相比現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:
1、本發(fā)明既能實現(xiàn)總線協(xié)議轉(zhuǎn)換,又能實現(xiàn)內(nèi)存直接訪問;
2、本發(fā)明中帶有的接收和發(fā)送FIFO既能實現(xiàn)時鐘域的轉(zhuǎn)換,又能起到控制流量的作用防止數(shù)據(jù)丟失,這就可以使得工作時鐘可相當(dāng)靈活的配置,而現(xiàn)有的技術(shù)中也許可配置工作時鐘,但也會受到一些其他因素的限制,配置的工作模式比較有限且固定。
【附圖說明】
[0014]圖1為本發(fā)明AXI/PCIE總線轉(zhuǎn)換裝置的基本結(jié)構(gòu)示意圖;
圖2為本發(fā)明AXI/PCIE總線轉(zhuǎn)換裝置將AXI總線數(shù)據(jù)轉(zhuǎn)換為PCIE總線數(shù)據(jù)的轉(zhuǎn)換流程不意圖;
圖3為本發(fā)明AXI/PCIE總線轉(zhuǎn)換裝置將PCIE總線數(shù)據(jù)轉(zhuǎn)換為AXI總線數(shù)據(jù)的轉(zhuǎn)換流程不意圖;
圖4為Master模塊發(fā)送狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖;
圖5為Slave模塊接收狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖;
圖6為TX模塊接收狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖;
圖7為RX模塊接收狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖;
圖8為接收、發(fā)送控制模塊對接收、發(fā)送FIFO模塊的控制原理框圖; 圖9為配置模塊的工作流程圖。
【具體實施方式】
[0015]下面結(jié)合附