加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 11.3??FPGA與DSP的通信接口設(shè)計
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

FPGA與DSP協(xié)同處理系統(tǒng)設(shè)計之: FPGA與DSP的通信接口設(shè)計

09/24 15:01
10.7萬
閱讀需 20 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?

11.3??FPGA與DSP的通信接口設(shè)計

FPGADSP通信接口可以分成以下幾種。

·??存儲型接口,如EMIFA、EMIFB等。

·??主機型接口,如HPI等。

·??總線型接口,如PCI、EMAC等。

·??串口型接口,如McBSP、McASP、SPI、UART等。

·??特殊類接口,如VLYNQ、VPORT等。

以上的接口中,比較常用的接口是EMIF和HPI。其中總線接口需要協(xié)議支持,開發(fā)難度較大,串行接口開發(fā)簡單,但是速率較慢。VPORT等特殊接口一般是在特定的場合下應(yīng)用,不具備通用性,而且需要修改DSP驅(qū)動,開發(fā)周期較長。

11.3.1??基于TMS320C64x系列的EMIF接口設(shè)計

1.EMIF簡介

TMSC64x?EMIF是TMSC621x?EMIF的增強版。它具備TMSC621x/TMSC671x?EMIF的所有功能,并添加了以下新功能。

(1)EMIFA上的數(shù)據(jù)總線可以是64位寬,也可以是32位寬。

(2)EMIFB上的數(shù)據(jù)總線為16位寬。

(3)EMIF時鐘ECLKOUTx為內(nèi)部生成,并基于EMIF輸入時鐘。器件復(fù)位時,以下3個時鐘之一會被配置為EMIF輸入時鐘。

·??內(nèi)部CPU時鐘4分頻。

·??內(nèi)部CPU時鐘4分頻。

·??外部ECLKIN與TMSC64x?EMIF接口的存儲器應(yīng)按照ECLKOUTx的時鐘頻率運行。

·??可編程同步存儲器接口控制器的同步控制引腳替換了固定的SBSRAM控制引腳。

·??PDT引腳提供外部到外部傳輸支持。

如圖11.4所示為組成EMIFA和EMIFB接口的信號,表11.2對這些信號進行了描述。端口A的信號都帶前綴“A”,端口B的信號都帶前綴“B”。為方便起見,所有信號名稱都省略了EMIF端口前綴。

EMIFA接口具備與8、16、32或64位系統(tǒng)接口的功能。EMIFB接口端口僅支持8位和16位系統(tǒng),如圖11.5所示。

外部器件(主要是存儲器)通常與總線的ED[7:0]字節(jié)側(cè)右對齊。Endianess(字節(jié)順序)決定ED[7:0]位是作為字節(jié)0(little?endian(小端))還是字節(jié)N(big?endian(大端),其中2N是總線寬度)存取。對不同字節(jié)通道的選擇,可通過低有效字節(jié)使能信號的應(yīng)用(如表11.2所示)來完成。

圖11.4??EMIFA和EMIFB信號

?

表11.2 EMIF信號描述

引????腳

I/O/Z

描????述

CLKOUT4

O/Z

CPU時鐘的4分

CLKOUT6

O/Z

CPU時鐘的6分

ECLKIN

I

EMIF時鐘輸入

ECLKOUT1

O/Z

速率為?ECLKIN、CPU/4或CPU/6時的EMIF?輸出時鐘

ECLKOUT2

O/Z

速率為?ECLKIN、CLKOUT4或CLKOUT6時的EMIF輸出時鐘

ED[63:0]

I/O/Z

EMIFA?64位數(shù)據(jù)總線

ED[31:0]

I/O/Z

EMIFA?32位數(shù)據(jù)總線

ED[15:0]

I/O/Z

EMIFB?16位數(shù)據(jù)總線

EA[22:3]

O/Z

EMIFA地址輸出

EA[20:1]

O/Z

EMIFB地址輸出

CE0

O/Z

存儲器空間0的芯片選擇

CE1

O/Z

存儲器空間1的芯片選擇

續(xù)表

引????腳

I/O/Z

描????述

CE2

O/Z

存儲器空間2的芯片選擇

CE3

O/Z

存儲器空間3的芯片選擇

BE[7:0]

O/Z

EMIFA?64位字節(jié)使能,字節(jié)使能僅針對其對應(yīng)的字節(jié)通道有效

如BE[0]?對應(yīng)?ED[7:0]

BE[3:0]

O/Z

EMIFA?32位字節(jié)使能,字節(jié)使能僅針對其對應(yīng)的字節(jié)通道有效

BE[1:0]

O/Z

EMIFB?16位字節(jié)使能,字節(jié)使能僅針對其對應(yīng)的字節(jié)通道有效

ARDY

I

異步就緒輸入,低速外設(shè)插入等待狀態(tài)

SOE3

O/Z

CE3的同步輸出使能

AOE

O/Z

異步輸出使能

SDRAS

O/Z

DRAM存儲器的行地址選通脈沖

SOE

O/Z

同步輸出使能

ARE

O/Z

異步讀使能

SDCAS

O/Z

SDRAM存儲器的列地址選通脈沖

SADS/SRE

O/Z

同步地址選通脈沖或讀使能

AWE

O/Z

異步寫選通脈沖

SDWE

O/Z

SDRAM的寫使能

SWE

O/Z

同步寫使能

HOLD

I

外部總線保持請求

HOLDA

O

外部總線保持確認

BUSREQ

O

總線請求

PDT

O/Z

外設(shè)數(shù)據(jù)傳輸

SDCKE

O/Z

SDRAM時鐘使能

CLKOUT4

O/Z

CP?U?時鐘的4分

CLKOUT6

O/Z

CP?U?時鐘的6分

ECLKIN

I

EMI?F?時鐘輸入

ECLKOUT1

O/Z

速率為?ECLK?IN、CPU/4?或?CPU?/6?時的EMIF?輸出時鐘

ECLKOUT2

O/Z

速率為?ECLK?IN、CLKOUT4?或?CLKOUT6?時的?EMIF?輸出時鐘

ED[63:0]

I/O/Z

EMIFA?64?位數(shù)據(jù)總線14

ED[31:0]

I/O/Z

EMIFA?32?位數(shù)據(jù)總線

ED[15:0]

I/O/Z

EMIFB?16?位數(shù)據(jù)總線

EA[22:3]

O/Z

EMIFA?地址輸出

續(xù)表

引????腳

I/O/Z

描????述

EA[20:1]

O/Z

EMIFB?地址輸出

CE0

O/Z

存儲器空間?0?的芯片選擇

CE1

O/Z

存儲器空間?1?的芯片選擇

CE2

O/Z

存儲器空間?2?的芯片選擇

CE3

O/Z

存儲器空間?3?的芯片選擇

BE[7:0]

O/Z

EMIFA?64?位字節(jié)使能。字節(jié)使能僅針對其對應(yīng)的字節(jié)通道有效

BE[3:0]

O/Z

BE7?對應(yīng)?ED[63:56]

BE[1:0]

O/Z

BE6?對應(yīng)?ED[55:48]

ARDY

I

BE5?對應(yīng)?ED[47:40]

SOE3

O/E

BE4?對應(yīng)?ED[39:32]

BE3?對應(yīng)?ED[31:24]

BE2?對應(yīng)?ED[23:16]

BE1?對應(yīng)?ED[15:8]

BE0?對應(yīng)ED[7:0]

?

圖11.5??按Endianess對齊字節(jié)

有關(guān)EMIF接口及其功能的完整概述,請參閱相關(guān)的?TI?數(shù)據(jù)手冊(tms320c64xx.pdf,其中xx為15t、16t或18)。

2.FPGA的BlockRAM簡介

Xilinx架構(gòu)的FPGA都可以訪問模塊存儲器(BlockRAM)。Virtex、Virtex-E和Spartan-II?器件中的這些4Kbit的模塊在Virtex-II、Virtex-II?Pro和Spartan-3器件中都增加到18?Kbit?的模塊。

這些模塊都是完全同步、真正的雙端存儲器。用戶可獨立地從每個端口讀出或向每個端口寫入(但同一地址不能同時進行讀和寫)。另外,每個端口都有一個獨立的時鐘,并且對每個端口的數(shù)據(jù)寬度都可以獨立進行配置。如圖11.6所示為雙端RAM模塊的框圖。

?

由FPGA邏輯和一批Block?RAM組成的FIFO取決于所構(gòu)建的FIFO要求的寬度和深度。FIFO可使用Xilinx?CORE?Generator?工具構(gòu)建,或者可以用HDL手動組合。

使用CORE?Generator工具構(gòu)建FIFO具有一定優(yōu)勢,即設(shè)計可以達到并實現(xiàn)很高的性能指標。按照設(shè)計規(guī)范用HDL構(gòu)建的設(shè)計則可賦予設(shè)計人員完全的設(shè)計自由。

3.FPGA與DSP的EMIF連接

FPGA的靈活性使我們可以將其用做具備可選擇總線寬度(8位~64位)的各類存儲器而創(chuàng)建不同的設(shè)計。通過接口設(shè)計,可將FPGA用做同步或異步標準存儲器,或同步或異步FIFO。通過接口設(shè)計,可將FPGA以同步或異步的方式連接到EMIF。

在同步模式中,ECLKOUTx時鐘用于驅(qū)動FPGA接口邏輯。此時鐘甚至可以驅(qū)動整個?FPGA。FPGA的邏輯功能、專用乘法器、PPC405或MicroBlaze?處理器等使其具備了強大的處理功能。這樣,F(xiàn)PGA就可以用做協(xié)處理器或高速數(shù)據(jù)處理和傳輸器件。

FPGA的存儲器容量小于TMSC64x類型DSP的尋址空間。FPGA存儲器必須使用FPGA?Block?RAM來實現(xiàn)。上述TMSC64x到FPGA的接口為FIFO結(jié)構(gòu),可以使用Black?RAM資源來實現(xiàn)。

FIFO接口可使用標準的TMSC64x?EMIF?FIFO接口機制。如表11.3所示為EMIF信號的總結(jié)。

表11.3 EMIF與FPGA的接口信號

信?號?名?稱

方????向

CE

DSP輸出

AOE

DSP輸出

AWE

DSP輸出

ARE

DSP輸出

INTx

DSP輸入

INTy

DSP輸入

INTz

DSP輸入

ED[63:0]

DSP雙向

FIFO要求連續(xù)地讀時鐘和連續(xù)地寫時鐘。這些時鐘由ARE和AWE信號生成,使用?FPGA的本地時鐘控制功能進行布線。

?

DSP具有3.3V的接口邏輯,所以用于連接到EMIF的I/O組(bank)必須指定為3.3V?VCCIO。如果無法指定,就必須使用電平移位器件。這一器件可為兩個器件間的信號通路引入額外的時間。

4.FIFO接口的設(shè)計實例

本設(shè)計使用了標準的EMIF?FIFO設(shè)置。如圖11.7所示為用于Xilinx公司的Virtex-II?Pro?和Spartan-3器件的設(shè)計示例。

圖11.7??基于FIFO的EMIF接口實例

數(shù)據(jù)組芯片使能信號(Cex)與異步輸出使能(AOE)一起,用于為設(shè)計的寫或讀FIFO部分生成使能信號。此信號還用于為數(shù)據(jù)多路復(fù)用器和標志選擇邏輯生成使能信號。

FIFO的讀寫時鐘通過本地時鐘布線直接布線到FIFO時鐘輸入。

FIFO中使用的?RAMB16組件由于沿著與EMIF相連接的I/O塊進行排列,顯著改善了時序。當(dāng)Block?RAM組件的列的大小與使用的I/O的數(shù)量相同時,即可構(gòu)建快速的矩形接口。

本設(shè)計使用常規(guī)的FIFO標志輸出。要對標志邏輯施加額外控制,無論是針對DSP端還是FPGA端,可使用寫計數(shù)器和讀計數(shù)器輸出。

信號AINIT(圖11.7中未顯示)強制所有標志為高有效狀態(tài)。AINIT發(fā)出后,在第一個WR_CLK上,F(xiàn)ULL和ALMOST_FULL標志變?yōu)闊o效,呈低狀態(tài)。對于在首個RD_CLK邊沿上的EMPTY和ALMOST_EMPTY標記,也會發(fā)生同樣情況。

ALMOST_EMPTY和ALMOST_FULL標志表明只剩下了一個FIFO位置。使用WR_COUNT和RD_COUNT輸出,可以構(gòu)建用戶定義的FIFO標志。這兩個計數(shù)器的值都不反映FIFO內(nèi)容(地址)的準確位置。FIFO的兩個端口(時鐘域)都存在時鐘延遲,長度為一個時鐘周期。

輸出WR_COUNT和RD_COUNT為被延遲的內(nèi)部FIFO高位地址計數(shù)器。為輸出選擇兩個比特,即可將FIFO的位置確定到總尺寸的四分之一(如下面計數(shù)器解碼示例中所示)。

計數(shù)器越寬,位置就能越精細。下面是計數(shù)器解碼示例。

·??COUNT[1:0]?=?0b00表明FIFO小于1/4滿或1/4空。

·??COUNT[1:0]?=?0b01表明FIFO在1/4和1/2滿之間或1/4和1/2空之間。

·??COUNT[1:0]?=?0b10表明FIFO在1/2和3/4滿之間或1/2和3/4空之間。

·??COUNT[1:0]?=?0b11表明FIFO大于3/4滿或3/4空。

DSP對不同標志的反應(yīng)取決于FPGA中讀寫FIFO的狀態(tài)。

?

11.3.2??基于TMS320系列DSP的主機接口(HPI)設(shè)計

1.HPI接口簡介

HPI接口是一種數(shù)據(jù)寬度為16位的并行端口(C64xx系列DSP中,HPI口的數(shù)據(jù)寬度達到32位)。通過HPI口,主機可以直接對CPU的存儲器空間進行操作。

在C621x、C671x系列DSP中,沒有留出專門的EDMA通道來執(zhí)行HPI口的訪問操作,而是直接將HPI口連接到內(nèi)部的地址產(chǎn)生硬件上,因而提高了對內(nèi)部存儲空間的訪問速度。

HPI口內(nèi)部加入了兩個8級深度的讀寫緩沖,可以執(zhí)行地址自增的讀寫操作,提高讀寫操作的吞吐量。HPI口為內(nèi)部CPU提供了標準32位的數(shù)據(jù)接口,同時為外部主機也提供了一個經(jīng)濟的16位接口,所以對外部主機而言,每次讀寫必須執(zhí)行成對的16位操作。

對于C64xx系列DSP,HPI可以選擇16位(HPI16)和32位(HPI32)兩種模式。

對于C621x、C671x系列DSP,HPI口內(nèi)部有3個寄存器,分別是控制寄存器(HPIC)、地址寄存器(HPIA)和數(shù)據(jù)寄存器(HPID)。這3個寄存器可以直接被主機訪問,主機每執(zhí)行一次對CPU內(nèi)部存儲空間的訪問都必須先對控制寄存器和地址寄存器寫入相應(yīng)的值,然后才能對數(shù)據(jù)寄存器進行讀寫操作。

HPI口的外部接口是由數(shù)據(jù)總線HD[15:0]以及一部分用于描述和控制HPI接口的控制信號組成,這些控制信號的具體類型如表11.4所示。

表11.4 HPI信號描述

引????腳

描????述

HCNTL[1:0]

控制HPI的操作類型

HHCNTL

半字確認輸入,“0”、“1”分別表示一次字傳輸?shù)牡谝粋€半字和第二個半字

HR/W

讀/寫選擇

續(xù)表

引????腳

描????述

HRDY

就緒狀態(tài)標志

HINT

中斷標志,DSP向主機提出中斷

HAS

區(qū)別地址/數(shù)據(jù)復(fù)用總線的數(shù)據(jù)與地址

HDS1、HDS2、HCS

數(shù)據(jù)選通輸入,三者配合可用于產(chǎn)生一個HPI內(nèi)部選通信號HSTROBE,這個信號可以用以下公式來描述:

HSTROBE?=?[NOT(HDS1?XOR?HDS2)]?OR?HCS

對于一個寫HPI口的操作,應(yīng)首先使能HCS,變化HDS1或HDS2,可使HSTROBE信號產(chǎn)生一個下降沿。HPI口在這個下降沿采樣控制信號HCNTL[1:0]、HHWIL和HR/W,同時在使能HCS的同時驅(qū)動HRDY,以使主機進入等待狀態(tài)。直到HRDY產(chǎn)生下降沿,表明HPID已清空,可以接收新的數(shù)據(jù)。此時HSTROBE也將產(chǎn)生一個上升沿,并采樣HD[15:0]上的數(shù)據(jù)并將其送入HPID,以完成第一個半字的寫入。

對于第二個半字的寫入,由于32位的HPID已經(jīng)清空,可以直接寫入數(shù)據(jù)。不會出現(xiàn)未準備好的情況,所以HRDY一直保持為低,與第一個字節(jié)的寫入相同。該操作也在HSTROBE的下降沿采樣控制信號,并在HSTROBE的上升沿采樣數(shù)據(jù)總線HD[15:0]的數(shù)據(jù)并送HPID,以完成一個32位的寫入操作。

?

2.FPGA與DSP的HPI連接實例

FPGA與HPI的接口連接比較簡單,就是將HPI接口相關(guān)的信號全部連接到FPGA的管腳。如圖11.8和圖11.9所示分別是FPGA和TI不同系列的DSP的連接框圖。

圖11.8??FPGA與C621x、C671x系列DSP的HPI接口互聯(lián)框圖

圖11.9??FPGA與C64x系列DSP的HPI接口互聯(lián)框圖

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠見(www.farsight.com.cn)是國內(nèi)領(lǐng)先嵌入師培訓(xùn)機構(gòu),2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠見除提供嵌入式相關(guān)的長期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實驗平臺的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。