<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FPGA與DSP協(xié)同處理系統(tǒng)設(shè)計(jì)之: FPGA與DSP的通信接口設(shè)計(jì)

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

          作者: 時(shí)間:2017-06-05 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/348799.htm

          11.3設(shè)計(jì)

          可以分成以下幾種。

          ·存儲(chǔ)型接口,如A、B等。

          ·主機(jī)型接口,如等。

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

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

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

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

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

          1.EMIF簡介

          TMSC64xEMIF是TMSC621xEMIF的增強(qiáng)版。它具備TMSC621x/TMSC671xEMIF的所有功能,并添加了以下新功能。

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

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

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

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

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

          ·外部ECLKIN與TMSC64xEMIF接口的存儲(chǔ)器應(yīng)按照ECLKOUTx的時(shí)鐘頻率運(yùn)行。

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

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

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

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

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

          圖11.4EMIFA和EMIFB信號(hào)

          表11.2 EMIF信號(hào)描述

          引腳

          I/O/Z

          描述

          CLKOUT4

          O/Z

          CPU時(shí)鐘的4分

          CLKOUT6

          O/Z

          CPU時(shí)鐘的6分

          ECLKIN

          I

          EMIF時(shí)鐘輸入

          ECLKOUT1

          O/Z

          速率為ECLKIN、CPU/4或CPU/6時(shí)的EMIF輸出時(shí)鐘

          ECLKOUT2

          O/Z

          速率為ECLKIN、CLKOUT4或CLKOUT6時(shí)的EMIF輸出時(shí)鐘

          ED[63:0]

          I/O/Z

          EMIFA64位數(shù)據(jù)總線

          ED[31:0]

          I/O/Z

          EMIFA32位數(shù)據(jù)總線

          ED[15:0]

          I/O/Z

          EMIFB16位數(shù)據(jù)總線

          EA[22:3]

          O/Z

          EMIFA地址輸出

          EA[20:1]

          O/Z

          EMIFB地址輸出

          CE0

          O/Z

          存儲(chǔ)器空間0的芯片選擇

          CE1

          O/Z

          存儲(chǔ)器空間1的芯片選擇

          續(xù)表

          引腳

          I/O/Z

          描述

          CE2

          O/Z

          存儲(chǔ)器空間2的芯片選擇

          CE3

          O/Z

          存儲(chǔ)器空間3的芯片選擇

          BE[7:0]

          O/Z

          EMIFA64位字節(jié)使能,字節(jié)使能僅針對(duì)其對(duì)應(yīng)的字節(jié)通道有效

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

          BE[3:0]

          O/Z

          EMIFA32位字節(jié)使能,字節(jié)使能僅針對(duì)其對(duì)應(yīng)的字節(jié)通道有效

          BE[1:0]

          O/Z

          EMIFB16位字節(jié)使能,字節(jié)使能僅針對(duì)其對(duì)應(yīng)的字節(jié)通道有效

          ARDY

          I

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

          SOE3

          O/Z

          CE3的同步輸出使能

          AOE

          O/Z

          異步輸出使能

          SDRAS

          O/Z

          DRAM存儲(chǔ)器的行地址選通脈沖

          SOE

          O/Z

          同步輸出使能

          ARE

          O/Z

          異步讀使能

          SDCAS

          O/Z

          SDRAM存儲(chǔ)器的列地址選通脈沖

          SADS/SRE

          O/Z

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

          AWE

          O/Z

          異步寫選通脈沖

          SDWE

          O/Z

          SDRAM的寫使能

          SWE

          O/Z

          同步寫使能

          HOLD

          I

          外部總線保持請(qǐng)求

          HOLDA

          O

          外部總線保持確認(rèn)

          BUSREQ

          O

          總線請(qǐng)求

          PDT

          O/Z

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

          SDCKE

          O/Z

          SDRAM時(shí)鐘使能

          CLKOUT4

          O/Z

          CPU時(shí)鐘的4分

          CLKOUT6

          O/Z

          CPU時(shí)鐘的6分

          ECLKIN

          I

          EMIF時(shí)鐘輸入

          ECLKOUT1

          O/Z

          速率為ECLKIN、CPU/4或CPU/6時(shí)的EMIF輸出時(shí)鐘

          ECLKOUT2

          O/Z

          速率為ECLKIN、CLKOUT4或CLKOUT6時(shí)的EMIF輸出時(shí)鐘

          ED[63:0]

          I/O/Z

          EMIFA64位數(shù)據(jù)總線14

          ED[31:0]

          I/O/Z

          EMIFA32位數(shù)據(jù)總線

          ED[15:0]

          I/O/Z

          EMIFB16位數(shù)據(jù)總線

          EA[22:3]

          O/Z

          EMIFA地址輸出

          續(xù)表

          引腳

          I/O/Z

          描述

          EA[20:1]

          O/Z

          EMIFB地址輸出

          CE0

          O/Z

          存儲(chǔ)器空間0的芯片選擇

          CE1

          O/Z

          存儲(chǔ)器空間1的芯片選擇

          CE2

          O/Z

          存儲(chǔ)器空間2的芯片選擇

          CE3

          O/Z

          存儲(chǔ)器空間3的芯片選擇

          BE[7:0]

          O/Z

          EMIFA64位字節(jié)使能。字節(jié)使能僅針對(duì)其對(duì)應(yīng)的字節(jié)通道有效

          BE[3:0]

          O/Z

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

          BE[1:0]

          O/Z

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

          ARDY

          I

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

          SOE3

          O/E

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

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

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

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

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

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

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

          2.簡介

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

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

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

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

          3.FPGA與DSP的EMIF連接

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

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

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

          FIFO接口可使用標(biāo)準(zhǔn)的TMSC64xEMIFFIFO接口機(jī)制。如表11.3所示為EMIF信號(hào)的總結(jié)。

          表11.3 EMIF與FPGA的接口信號(hào)

          信號(hào)名稱

          方向

          CE

          DSP輸出

          AOE

          DSP輸出

          AWE

          DSP輸出

          ARE

          DSP輸出

          INTx

          DSP輸入

          INTy

          DSP輸入

          INTz

          DSP輸入

          ED[63:0]

          DSP雙向

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

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

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

          本設(shè)計(jì)使用了標(biāo)準(zhǔn)的EMIFFIFO設(shè)置。如圖11.7所示為用于Xilinx公司的Virtex-IIPro和Spartan-3器件的設(shè)計(jì)示例。

          圖11.7基于FIFO的EMIF接口實(shí)例

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

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

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

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

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

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

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

          計(jì)數(shù)器越寬,位置就能越精細(xì)。下面是計(jì)數(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對(duì)不同標(biāo)志的反應(yīng)取決于FPGA中讀寫FIFO的狀態(tài)。

          11.3.2基于TMS320系列DSP的主機(jī)接口()設(shè)計(jì)

          1.HPI接口簡介

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

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

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

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

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

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

          表11.4 HPI信號(hào)描述

          引腳

          描述

          HCNTL[1:0]

          控制HPI的操作類型

          HHCNTL

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

          HR/W

          讀/寫選擇

          續(xù)表

          引腳

          描述

          HRDY

          就緒狀態(tài)標(biāo)志

          HINT

          中斷標(biāo)志,DSP向主機(jī)提出中斷

          HAS

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

          HDS1、HDS2、HCS

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

          HSTROBE=[NOT(HDS1XORHDS2)]ORHCS

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

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

          2.FPGA與DSP的HPI連接實(shí)例

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

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

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();