使用ez usb fx3從設(shè)備fifo接口進(jìn)行設(shè)計(jì)_第1頁(yè)
使用ez usb fx3從設(shè)備fifo接口進(jìn)行設(shè)計(jì)_第2頁(yè)
使用ez usb fx3從設(shè)備fifo接口進(jìn)行設(shè)計(jì)_第3頁(yè)
使用ez usb fx3從設(shè)備fifo接口進(jìn)行設(shè)計(jì)_第4頁(yè)
使用ez usb fx3從設(shè)備fifo接口進(jìn)行設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

作者:RamaSaiKrishna軟件版本:EZ-USBFX3相關(guān)應(yīng)用筆記:AN75705、AN65974AN65974EZ-USB?FX3?的同步從FIFO接口。它詳盡說(shuō)明了硬件接口和標(biāo)志的配置設(shè)置,并提供了相關(guān)的示例。它還提供了有GPIF?IIDesigner的參考信息,以便能輕松地使用FIFO接口進(jìn)行設(shè)計(jì)。另外,本筆記還提供了兩個(gè)完整的設(shè)計(jì)示例,說(shuō)明如何使用同步從設(shè)備FIFO將FPGA連接至FX3。簡(jiǎn) GPIF 標(biāo)志配 GPIFII 使用局部標(biāo)志情況下的通用..................... 由標(biāo)志引起的錯(cuò)誤條

匯 附錄B:用FX3開(kāi)發(fā)套件(CYUSB3KIT- 附錄 簡(jiǎn)賽斯的EZ-USBFX3是新一代USB3.0外設(shè)控制器,可讓開(kāi)發(fā)者將USB3.0功能添加到任何系統(tǒng)內(nèi)。該控制器非常適合圖像和設(shè)備、、掃描儀等應(yīng)用。EZ-USBFX3設(shè)有一個(gè)完全可配置的并行、通用可編程GPIFII接口,可將其連接至外部處理器、ASIC或FPGA。GPIFII是賽斯旗艦USB2.0產(chǎn)品FX2LP中的GPIF的加強(qiáng)版本。GPIFII通過(guò)各接口(如同步地址數(shù)據(jù)復(fù)用接口)為常用設(shè)備(FPGA,圖像傳感器和處理器)提供無(wú)縫連接。同步從設(shè)備FIFO接口是GPIFII的普遍應(yīng)用。該接口適用于連接至EZ-USBFX3的外部器件通過(guò)FX3FIFO對(duì)其進(jìn)行數(shù)據(jù)/寫(xiě)入操作的應(yīng)用。不可通過(guò)從設(shè)備FIFO接口執(zhí)行直接寄存器。本應(yīng)用筆記先簡(jiǎn)單介紹GPIFII,然后詳細(xì)討論同步從設(shè)備FIFO接口。此外,還提供了兩個(gè)完整的設(shè)計(jì)示例,用來(lái)說(shuō)明如何在FPGA上執(zhí)行一個(gè)與同步從設(shè)備FIFO相兼容的主控接口。同時(shí)也提供了XilinxSpartan6FPGA和AlCycloneIIIFPGA的Verilog和VHDL文件。示例中包含了同步從設(shè)備FIFO的相應(yīng)FX3固件項(xiàng)目。這些示例使用XilinxSP601評(píng)估套件(用于Spartan6FPGA)、Al CycloneIIIStarter電路板(用于CycloneIIIFPGA)、FX3開(kāi)發(fā)套件(DVK)和FX3軟件開(kāi)發(fā)套件(SDK)來(lái)開(kāi)發(fā)。GPIFII是一個(gè)可編程狀態(tài)機(jī),可以靈活地實(shí)現(xiàn)一個(gè)工業(yè)標(biāo)準(zhǔn)或接口。它能夠作為主設(shè)備,也可以作為從設(shè)備運(yùn)提供256種固件可編程狀16816個(gè)可配置的控制引腳;所有的控制引腳可作為輸入/輸出或雙向引腳使用GPIFIIGPIFII狀態(tài)轉(zhuǎn)換所驅(qū)動(dòng)。狀態(tài)機(jī)的運(yùn)行方式由一個(gè)描述符定義。該描述符為滿(mǎn)足所需接口規(guī)格而設(shè)計(jì)。本質(zhì)上,GPIFII描述符是一組可編程寄存器配置。EZ-USBFX3寄存器空間中的8KB專(zhuān)門(mén)作為GPIFII波形空間,用于GPIFII描述符。USB同步從設(shè)備FIFO接口同步從設(shè)備FIFO接口非常合適外部處理器或器件需要對(duì)EZ-USBFX3的內(nèi)部FIFO緩沖區(qū)進(jìn)行數(shù)據(jù)讀/寫(xiě)的應(yīng)用。寄存器不可通過(guò)從設(shè)備FIFO接口執(zhí)行。同步從設(shè)備FIFO接口通常是USB應(yīng)用的首選接口,可以滿(mǎn)足高吞ExternalFPGA/EZ-USBExternalFPGA/EZ-USBDQ[15:0]/DQ[31:0]信號(hào)名信號(hào)說(shuō)這是從設(shè)備FIFO接口的選擇信號(hào)。必須激活它,才可以從設(shè)備FIFO這是從設(shè)備FIFO接口的寫(xiě)入選通信號(hào)。必須激活它,才可以對(duì)從設(shè)備FIFO執(zhí)行寫(xiě)入操作這是從設(shè)備FIFO接口的選通信號(hào)。必須激活它,才可以對(duì)從設(shè)備FIFO執(zhí)行操作這是輸出使能信號(hào)。該信號(hào)激活后,F(xiàn)X3就可驅(qū)動(dòng)從設(shè)備FIFO接口的數(shù)據(jù)總線。必須激活它,才可以對(duì)從設(shè)FLAGC/這些信號(hào)均是X3的標(biāo)志輸出。它們表示X3套接字是否可用。1在隨附的示例項(xiàng)目中,F(xiàn)AGA、LAGB使用于從設(shè)備O寫(xiě)入操作,而LAGC、FAGD使用于從設(shè)備O操作。這是從FIFO2這是從FIFO1632激活該信號(hào)后,可將短數(shù)據(jù)包或零長(zhǎng)度數(shù)據(jù)包寫(xiě)入從設(shè)備FIFO內(nèi)這是從設(shè)備FIFO 線程和套接字一節(jié)介紹了用于數(shù)據(jù)傳輸?shù)奶捉幼值母拍?。?biāo)志配置一節(jié)詳細(xì)描述了各標(biāo)志帶兩個(gè)地址線和帶五個(gè)地址線的從設(shè)備FIFO之間的差別帶兩個(gè)地址線的同步從設(shè)備FIFO接口支持多達(dá)四個(gè)套接字。如要四個(gè)套接字以上,請(qǐng)使用帶五個(gè)地址線的同步從的引腳數(shù)量降低,因此,需要將標(biāo)志配置為一個(gè)current_thread標(biāo)志。 由于額外的延遲和其他接口協(xié)議要求,建議您只在應(yīng)用需要四個(gè)GPIFII套接字以上時(shí)才使用帶五個(gè)地址線的同步從設(shè)備FIFO接口。有關(guān)該接口的信息,請(qǐng)參考應(yīng)用筆記AN68829—用于EZ-USBFX3的從設(shè)備FIFO接口:5位地址模式。備從設(shè)備FIFO接口的引腳映射情況2顯示了FIFO接口的默認(rèn)引腳映射情況。該表還介紹了GPIFII被配置為從設(shè)FIFO接口情況下各個(gè)可用的GPIO引腳和其他串行接口(UART/SPI/I2S)??砂葱栊薷囊_映射情況,并且可通過(guò)GPIFIIDesigner工具添加或重新配置各個(gè)標(biāo)志。信息,請(qǐng)查看標(biāo)志配置一EZ-USBFX3引使用16位數(shù)據(jù)總線的同步從設(shè)備FIFO接使用32位數(shù)據(jù)總線的同步從設(shè)備FIFO接GPIO/SPI_SCK從設(shè)備FIFO序列和接口時(shí)同步從設(shè)備FIFO接口時(shí)序

tt3cycefromaddrtoda

2cyclelatency

tFFO t(dedicatedthreadFlagforAn)(1=NotEmpty0=Empty)(dedicatedthreadFlagforAm)(1=NotEmpty0=Empty)

2cyclelatencyfromSLRDtoFLAGtttDQ(Data High-

D D(Am)D(Am)SLWR同步從設(shè)備FIFO讀序列FIFO地址穩(wěn)定且SLCS#激 激活SLRD#FIFO指針在PCLK的上升沿上更新,同時(shí),SLRD#被激活。這樣會(huì)啟動(dòng)從新尋FIFO至數(shù)據(jù)總線的數(shù)據(jù)傳輸。經(jīng)過(guò)tCO的傳輸延遲時(shí)間(從PCLK的上升沿算起)后即可提供新的數(shù)值。N是從FIFO的第一個(gè)數(shù)值。要想驅(qū)動(dòng)數(shù)據(jù)總線,還必須激活SLOE#。突發(fā)時(shí)將發(fā)生相同的序列注意:對(duì)于突發(fā)模式,SLRD#和SLOE#在整個(gè)過(guò)程中保持激活狀態(tài)。當(dāng)SLOE#被激活時(shí),將(使用之前已尋址的FIFO的數(shù)據(jù))驅(qū)動(dòng)數(shù)據(jù)總線。SLRD#被激活時(shí),在每一PCLK的連續(xù)升沿上,F(xiàn)IFO指針會(huì)遞增,且下一個(gè)數(shù)據(jù)值

tCH

tASFIFO dedicatedthreadFLAGforAn(1=NotFull0=Full)

3cyclelatencyfromSLWR#toFLAG

3cyclelatencyfromSLWR#toFLAGdedicatedthreadFLAGfor(1=NotFull0= tDS

DQ(DataN) D(Am)D(Am)tPES

tCH

tASFIFO

tPES(1=NotFull0=Full)(1=NotFull0=Full)DQ(Data High-同步從設(shè)備FIFO寫(xiě)序列FIFO地址穩(wěn)定且SLCS#tC的延遲后,F(xiàn)IFO標(biāo)志將被更新。注意:在突發(fā)模式下,SLWR#和SLCS#在整個(gè)突發(fā)寫(xiě)入過(guò)程中保持激活狀態(tài)。在突發(fā)寫(xiě)入模式下,SLWR#被激活PCLK的上升沿到來(lái)時(shí),都會(huì)將數(shù)據(jù)總線上的值寫(xiě)入FIFO內(nèi)。此外,F(xiàn)IFOPCLK的每個(gè)上升沿短數(shù)據(jù)包:PKTEND#信號(hào)可將某個(gè)短數(shù)據(jù)包發(fā)送USB主機(jī)。需要設(shè)計(jì)外部器件/處理器,使之在傳輸最后數(shù)據(jù)字時(shí)同時(shí)激活與該字相應(yīng)的SLWR#脈沖和PKTEND#。PKTEND#激活期間,F(xiàn)IFOADDR需要保持不變。同時(shí)激活PKTEND#SLWR#時(shí),GPIFII狀態(tài)機(jī)會(huì)將數(shù)據(jù)包視為短數(shù)據(jù)包,并將其發(fā)送到USB接口。如果協(xié)議不要求傳輸任數(shù)據(jù)包,則PKTEND#信號(hào)可被置高。請(qǐng)注意,執(zhí)行讀操作時(shí),沒(méi)有任何具體信號(hào)表示已從USB獲取了短數(shù)據(jù)包。空標(biāo)志必須由外部主設(shè)備,以確定讀零長(zhǎng)度數(shù)據(jù)包:外部器件/處理器可僅通過(guò)激活PKTEND#,而沒(méi)有激活SLWR#來(lái)傳輸一個(gè)零長(zhǎng)度數(shù)據(jù)包(ZLP)。必須驅(qū)動(dòng)SLCS#和地址,如圖5所示。標(biāo)志使用情況:外部處理器標(biāo)志信號(hào)來(lái)控制流量。標(biāo)志信號(hào)由EZ-USBFX3器件輸出。通過(guò)配置各標(biāo)志,可顯示參說(shuō)最小最大單接口時(shí)鐘頻–時(shí)鐘周–時(shí)鐘為高電平的4–時(shí)鐘為低電平的4–SLRD#CLK的建立時(shí)2–SLRD#CLK的數(shù)據(jù)保持時(shí)–SLWR#CLK的建立時(shí)2–SLWR#CLK的數(shù)–時(shí)鐘至數(shù)據(jù)有效的時(shí)–7數(shù)據(jù)輸入的建立2–時(shí)鐘上升沿后數(shù)據(jù)輸入保持的時(shí)0–地址到時(shí)鐘的建立時(shí)2–CLK至地址的地址保持時(shí)–SLOE#到數(shù)據(jù)為低阻態(tài)的0–時(shí)鐘到標(biāo)志輸出的傳輸–8SLOE#取消激活到數(shù)據(jù)為高阻態(tài)的–8PKTEND#CLK的建立時(shí)2–CLK上升沿后PKTEND#保持的時(shí)–CLK上升沿后數(shù)據(jù)輸出保持的2–注意:ADDRDATA的三需要理解線程、套接字以及DMA通道的概念。線程和套接字套接字是外設(shè)硬件模塊FX3RAM之間的連接點(diǎn)。FX3上的每個(gè)外設(shè)硬件模塊(如USB、GPIF、UARTSPI)具這些寄存器指向有效的DMA描述符,并使能或標(biāo)記與套接字相關(guān)的中斷。DMA描述符是一組位于FX3RAM中的寄存器。它了DMA緩沖區(qū)的地址和大小數(shù)據(jù),以及指向下一個(gè)DMA描述符的指針。這些指針構(gòu)建成DMA描述符鏈。DMA緩沖區(qū)是RAM的一部,用于暫時(shí)通過(guò)FX3器件傳輸?shù)臄?shù)據(jù)。通過(guò)FX3固件,可將部分RAM空間作為緩沖區(qū)使用。這些緩沖區(qū)的地址被為DMA描述符的一部分GPIF線程是GPIFII模塊內(nèi)的數(shù)據(jù)路徑,用來(lái)將外部數(shù)據(jù)引腳連接至套接字。套接字可通過(guò)某些直接互相發(fā)出信號(hào),或者通過(guò)中FX3CPU發(fā)出信號(hào)。該操作由固件配置的。例如,將數(shù)據(jù)流GPIFII模塊傳輸U(kuò)SB模DMA緩沖區(qū)目前為空。該操作被稱(chēng)為自動(dòng)DMA通道。當(dāng)FX3CPU不用修改數(shù)據(jù)流中的任何數(shù)據(jù)時(shí),將實(shí)現(xiàn)自動(dòng)DMA通道。另外,GPIF套接字FX3CPU發(fā)送一個(gè)中斷GPIF套接字已經(jīng)寫(xiě)滿(mǎn)DMA緩沖區(qū)。FX3CPU可將該信USB套接字。USB套接字FX3CPU發(fā)送一個(gè)中斷,來(lái)通USB套接字已經(jīng)讀空DMA緩沖區(qū)。此時(shí),F(xiàn)X3CPU可將該信息GPIF套接字。該操作被稱(chēng)為手DMA通道實(shí)現(xiàn)。如FX3CPU需要添加、刪除或發(fā)送套接字是指用于將數(shù)據(jù)寫(xiě)入DMA緩沖區(qū)內(nèi)的套接字。接收套接字是指從DMA緩沖區(qū)內(nèi)數(shù)據(jù)的套接字。套接字使用于DMA描述符上的DMA緩沖區(qū)地址、DMA緩沖區(qū)大小和DMA描述符鏈的值來(lái)管理數(shù)據(jù)。套接字寫(xiě)滿(mǎn)或DMA緩沖區(qū)后,需要經(jīng)過(guò)一段時(shí)間(幾微秒)DMA描述符轉(zhuǎn)移到另一個(gè)描述符。轉(zhuǎn)換過(guò)程中,套接字不EZ-USBFX3可提供多達(dá)四個(gè)物理硬件線程,以用于通GPIFII傳輸數(shù)據(jù)。每次可將任何一個(gè)套接字映射到一個(gè)物理線程上。默認(rèn)情況下,PIB0被映射到線0,PIB套接1被映1,PIB2被映射到線2以及PIB套接字3被映射到線程3。請(qǐng)注意,接口上的地址信號(hào)A1:A0表示需要的線程。FX3的DMA運(yùn)行機(jī)制將數(shù)據(jù)傳輸?shù)接成涞皆摼€程上的套接字。因此,當(dāng)A1:A0=0時(shí),將線程0,并且,通過(guò)線程0傳輸?shù)乃袛?shù)據(jù)將被傳輸?shù)教捉幼?。同樣地,當(dāng)A1:注意:從設(shè)備FIFO接口僅包含兩個(gè)地址線,所以最多只能四個(gè)套接字。如要四個(gè)套接字以上,必須使用帶五個(gè)地址線的從設(shè)備FIFO接口。信息,請(qǐng)參閱應(yīng)用筆記AN68829—用于EZ-USBFX3的從設(shè)備FIFO接口:5位必須通過(guò)配置DMA通道指定需要的套接字DMA通道配置備因此,若要通過(guò)從設(shè)備FIFO接口實(shí)現(xiàn)雙向數(shù)據(jù)傳輸,則需配置兩個(gè)DMA通道,其中一個(gè)帶有作為發(fā)送套接字的作為發(fā)送套接字的“P”端口是外部器件通過(guò)從設(shè)備FIFO接口對(duì)其進(jìn)行寫(xiě)入的套接字;作為接收套接字的“P”端口是外部器件通過(guò)從設(shè)備FIFO接口對(duì)其進(jìn)行的套接字。DMA通道上的“P”端口套接字編號(hào)要與A1:A0DMADMA通道。請(qǐng)注意,標(biāo)志將分別表示每個(gè)緩沖區(qū)的滿(mǎn)/為例如,如果已將兩個(gè)大小均1024字節(jié)的緩沖區(qū)分配DMA通道,則1024字節(jié)寫(xiě)入到第一個(gè)緩沖區(qū)后,滿(mǎn)標(biāo)志將表示“滿(mǎn)”狀態(tài)。它持續(xù)顯示滿(mǎn)狀態(tài),直DMA通道轉(zhuǎn)到第二個(gè)緩沖區(qū)為止。雖DMA通道轉(zhuǎn)到下一個(gè)緩沖區(qū)所需的時(shí)長(zhǎng)通常為幾微秒,但未能確定該時(shí)長(zhǎng)。外部主設(shè)備必須標(biāo)志來(lái)確定完成切換操作以及可用下一個(gè)緩沖區(qū)來(lái)標(biāo)志配置線程標(biāo)志例如,如果FLAGA于線程0,F(xiàn)LAGB于線程1,當(dāng)外部處理器對(duì)線程0進(jìn)行時(shí),必須FLAGA。當(dāng)外部處理器線程1時(shí),則必須FLAGB。置低的時(shí)間。在第四個(gè)時(shí)鐘沿上,外部主設(shè)備可以對(duì)處于低電平的標(biāo)志進(jìn)行采樣,如圖4所示。讀傳輸過(guò)程結(jié)束時(shí),標(biāo)志始終經(jīng)過(guò)兩個(gè)周期的延遲。兩個(gè)周期的延遲是從使緩沖區(qū)變?yōu)榭盏淖x周期(最后一次激活 當(dāng)前線程標(biāo)志可對(duì)標(biāo)志進(jìn)行配置,來(lái)指示當(dāng)前尋址的線程狀態(tài)。在這種情況下,GPIFII狀態(tài)機(jī)對(duì)地址總線上的地址進(jìn)行采樣,然后更新相應(yīng)標(biāo)志,用于指示該線程的狀態(tài)。這種配置要求的引腳數(shù)量更少,因?yàn)閱蝹€(gè)“current_thread志可用來(lái)表示四個(gè)線程的狀態(tài)。但當(dāng)同步從設(shè)FIFOcurrent_thread標(biāo)志時(shí),將發(fā)生兩個(gè)周期的延遲GPIFII先要沿上,可以尋址線程的標(biāo)志的有效狀態(tài)進(jìn)行采樣(請(qǐng)注意,SDK中的從設(shè)備FIFO描述符使用“current_thread”FIFOcurrentthreadFLA(1=NotFull0=Full)注意:寫(xiě)傳輸過(guò)程結(jié)束時(shí),標(biāo)志始終經(jīng)過(guò)三個(gè)周期的延遲。這三個(gè)周期的延遲是從使緩沖區(qū)變?yōu)闈M(mǎn)的寫(xiě)周期到標(biāo)志被置低的時(shí)間。在第四個(gè)時(shí)鐘沿上,外部主設(shè)備可以對(duì)處于低電平的標(biāo)志進(jìn)行采4所示。 局部可對(duì)標(biāo)志進(jìn)行配置,以指示套接字的一部分空/一部分滿(mǎn)狀態(tài)。必須選擇滿(mǎn)足下面條件的水印值:當(dāng)將要讀/寫(xiě)的32位注 表4匯總了各種標(biāo)志配置的相應(yīng)延遲。該表還顯示了GPIFIIDesigner中必須為特定標(biāo)志選擇的設(shè)置。有關(guān).標(biāo)志配GPIFII標(biāo)志設(shè)置選傳輸結(jié)束時(shí)的標(biāo)志延所需的附API調(diào)志的延對(duì)從設(shè)進(jìn)行的寫(xiě)操對(duì)從設(shè)進(jìn)行的讀操(從最后一(從最后一激活空標(biāo)志延遲延遲0周(外部器件可(外部器件可4個(gè)時(shí)3個(gè)時(shí)對(duì)有對(duì)有采樣采樣2個(gè)周(外部器件可(外部器件可(外部器件可3個(gè)時(shí)4個(gè)時(shí)3個(gè)時(shí)對(duì)有對(duì)有對(duì)有采樣采樣采樣0周取決取決通過(guò)調(diào)一部分空標(biāo)來(lái)設(shè)置水印等級(jí)注意:水印的單位為32位數(shù)據(jù)字示例設(shè)置了04設(shè)置了34一部分空標(biāo)2個(gè)周3個(gè)時(shí)取決取決CyU3PGpifSocketConfigureAPI對(duì)有注意:水印的單位為32位數(shù)據(jù)字采樣示例設(shè)置了04設(shè)置了34GPIFII實(shí)現(xiàn)同步從設(shè)備FIFO接口通過(guò)安裝GPIFIIDesigner工具,您可以看到從設(shè)備FIFO接口的GPIFII實(shí)現(xiàn)指導(dǎo)。請(qǐng)從賽斯上安裝GPIFIIDesigner工具。當(dāng)啟動(dòng)GPIFIIDesigner時(shí),您可以在起始頁(yè)上尋找CypressdInterfaces(賽斯提供的接口)項(xiàng)圖7.GPIFIIDesigner工具內(nèi)的從設(shè)備FIFO項(xiàng)目—Cypressdsync_slave_fifo_2bit項(xiàng)目是2位地址進(jìn)行同步從設(shè)FIFO接口GPIFII實(shí)現(xiàn)。下一節(jié)將說(shuō)明如何GPIFIIDesigner配置局部標(biāo)志。配置局部標(biāo)志在GPIFIIDesigner工具中,打開(kāi)CypressdInterfaces下方的sync_slave_fifo_2bit項(xiàng)目,然后選中 圖8.GPIFIIDesigner中的標(biāo)志設(shè)置—CypressdInterfaces項(xiàng)下的除了sync_slave_fifo_2bit.cyfx項(xiàng)目中所提供的設(shè)置之外,若想要添加標(biāo)志或進(jìn)行修改,請(qǐng)依次選擇File>SaveProjectasEditable。這樣,可以將該項(xiàng)目保存為新一個(gè)名稱(chēng),從而對(duì)新保存的項(xiàng)目進(jìn)行更改。9通過(guò)默認(rèn)sync_slave_fifo_2bit中的“SaveProjectasEditable”功能,設(shè)置新項(xiàng)目中的標(biāo)配置局部標(biāo)志的第二步是指定固件項(xiàng)目中的標(biāo)志水印值。在cyfxslfifo.c文件中,添加一個(gè)CyU3PGpifSocketConfigure()API調(diào)用,以指定水印值。在調(diào)用CyU3PGPIFLoad()API后可立即調(diào)用該API。有關(guān)CyU3PGpifSocketConfigure()API的完整說(shuō)EZ-USBFX3SDKAPIAPI的參數(shù)使用局部標(biāo)志情況下的通用激活局部標(biāo)志后,應(yīng)使用下面來(lái)計(jì)算將要讀/寫(xiě)的數(shù)據(jù)字?jǐn)?shù)量。()時(shí)鐘沿到來(lái)(這時(shí),對(duì)處于低電平的局部標(biāo)志進(jìn)行采樣)后將要寫(xiě)入的數(shù)據(jù)字的數(shù)量x(32/總線寬度)–4時(shí))=水印值x(32/總線寬度)–1局部標(biāo)志進(jìn)行采樣)后維持激活SLRD#的周期數(shù)=水印值x(32/總線寬度)–3。()本節(jié)介紹了使CyU3PGpifSocketConfigure()API指定的水印值的影響示例。還提供了截圖,以明確顯示使用不同水示例 0的邏輯分析器截圖。可見(jiàn),F(xiàn)LAGB(局部標(biāo)志)在寫(xiě)入最后數(shù)據(jù)字的同一個(gè)周期示例 下面顯示了標(biāo)志在傳輸結(jié)束時(shí)變?yōu)?的邏輯分析器截圖??梢?jiàn),在最后數(shù)據(jù)前四個(gè)周期,F(xiàn)LAGB(局部標(biāo)志)轉(zhuǎn)為低電平。這樣,在FLAGB轉(zhuǎn)為低電平的周期后,可以三個(gè)數(shù)據(jù)字。水印值=4,總線寬度=32因此,時(shí)鐘沿到來(lái)(這時(shí),對(duì)處于激活狀態(tài)的局部標(biāo)志進(jìn)行采樣)后可用于的32位數(shù)據(jù)字的數(shù)量=4x(32/32)–1=3示例下面顯示了標(biāo)志在傳輸結(jié)束時(shí)變?yōu)?的邏輯分析器截圖。可見(jiàn),在寫(xiě)入最后數(shù)據(jù)前的三個(gè)周期內(nèi),F(xiàn)LAGB(局部標(biāo)志)處于低電平。這樣,在FLAGB轉(zhuǎn)為低電平的周期后,可以?xún)蓚€(gè)數(shù)據(jù)字。水印值=3,總線寬度=16示例 下面顯示了標(biāo)志在傳輸結(jié)束時(shí)變?yōu)?的邏輯分析器截圖??梢?jiàn),在 志)處于低電平。這樣,在FLAGB轉(zhuǎn)為低電平的周期后,可以 使用局部標(biāo)志時(shí)的其他注意事項(xiàng):局部標(biāo)志僅用于決定傳輸結(jié)束的時(shí)間。必須在開(kāi)始傳輸時(shí)滿(mǎn)/空標(biāo)志,以確保套接字的可用性。這意味著,不避免使用局部標(biāo)志。外部主設(shè)備應(yīng)計(jì)算將要寫(xiě)入或的數(shù)據(jù)量,該計(jì)數(shù)值不超過(guò)創(chuàng)建DMA通道時(shí)所設(shè)置CyU3PGpifSocketConfigure()APIAPI中的最后參數(shù)。突發(fā)值被設(shè)置后,DMA硬件將在每個(gè)突發(fā)傳輸后(而不是每個(gè)字傳輸后)檢測(cè)水印值。例如,如果外部主設(shè)備始終進(jìn)行8個(gè)字的突發(fā)寫(xiě)EZ-USBFX3DMA8字突發(fā)的空間,標(biāo)志將轉(zhuǎn)為低電平。在局部標(biāo)志轉(zhuǎn)為低電平后,外部主設(shè)備可寫(xiě)入一個(gè)完整的8字突發(fā)。對(duì)于在16位模式下(對(duì)從設(shè)備FIFO進(jìn)行)的寫(xiě)操作,請(qǐng)根據(jù)使用局部標(biāo)志情況下的通用一節(jié)所介紹的公式,將CyU3PGpifSocketConfigure()API中的水印值設(shè)為‘6’。 由標(biāo)志引起的錯(cuò)誤條如果空白的緩沖區(qū),將發(fā)生緩沖區(qū)欠載錯(cuò)誤。如果寫(xiě)入到已滿(mǎn)的緩沖區(qū),則發(fā)生緩沖區(qū)過(guò)載錯(cuò)誤。這些錯(cuò)誤可導(dǎo)致緩沖區(qū)邊界的數(shù)據(jù)被損壞。由于從設(shè)FIFOFX3PIB模塊域,因此,與接口相關(guān)的所有錯(cuò)誤將被表示為PIB錯(cuò)誤。如果發(fā)生某PIB錯(cuò)誤,將觸PIB中斷。FX3SDK允許寄存一個(gè)用PIB中斷的回調(diào)函數(shù)。該回調(diào)函數(shù)用于檢查PIB錯(cuò)誤代碼。下面代碼示例介紹了如何寄存一個(gè)回調(diào)函數(shù)以及用于檢查欠載/過(guò)載錯(cuò)誤并彈出一個(gè)調(diào)試信息的實(shí)際回錯(cuò)誤代碼指示發(fā)生錯(cuò)誤的線程,如表5所示。如果發(fā)生這些錯(cuò)誤中的任意一個(gè),賽斯建議您使用一個(gè)邏輯分析器謹(jǐn)慎地分析接口時(shí)序,并特別注意局部標(biāo)志變?yōu)榱愫笏鶊?zhí)行的讀/寫(xiě)周期數(shù)量。有關(guān)的示例,請(qǐng)參考圖11到圖14。/*RegisteracallbackfornotificationofPIBinterrupts*//*CallbackfunctiontocheckforPIBvoidgpif_error_cb(CyU3PpibIntrTypecbType,uint16_t{{{caseCyU3PdebugPrint(4,caseCyU3PdebugPrint(4,caseCyU3PdebugPrint(4,caseCyU3PdebugPrint(4,caseCyU3PdebugPrint(4,caseCyU3PdebugPrint(4,caseCyU3PdebugPrint(4,caseCyU3PdebugPrint(4,CyU3PdebugPrint(4,“NoUnderrun/Overrun}}}PIB錯(cuò)誤代說(shuō)線程0緩沖區(qū)中的寫(xiě)入過(guò)線程1緩沖區(qū)中的寫(xiě)入過(guò)線程2緩沖區(qū)中的寫(xiě)入過(guò)線程3緩沖區(qū)中的寫(xiě)入過(guò)線程0緩沖區(qū)中的欠線程1緩沖區(qū)中的欠線程2緩沖區(qū)中的欠線程3緩沖區(qū)中的欠SDK內(nèi)的從設(shè)備FIFO固件示例本應(yīng)用筆記介紹了同步從設(shè)FIFO接口以及配置標(biāo)志的方法。實(shí)GPIFIIDesigner工具中的所需配置后,需要將已更新的配置集成到固件內(nèi)。完成編GPIFIIDesigner中的項(xiàng)目后,將生成一個(gè)頭文cyfxgpifconfig.h。該頭文件必須包含在固件項(xiàng)目中。EZ-USBFX3SDK包含一個(gè)集成了從設(shè)備FIFO接口的固件示例。EZ-USBFX3SDK后,可在下面中找到集成了FIFO接口的固件示例[FX3SDKInstallPath]\EZ-USBFX3該固件示例支持16位和32位數(shù)據(jù)總線寬度。頭文件cyfxslfifosync.h定義了常量位數(shù)據(jù)總線寬度,則將該常量設(shè)為0。設(shè)計(jì)示例1:將XilinxFPGA連接至FX3同步從設(shè)備FIFO接口本節(jié)提供一個(gè)完整的設(shè)計(jì)示例,其中通過(guò)同步從設(shè)FIFOXilinxSpartan6FPGAFX3。本節(jié)還描述了硬件設(shè)置可使用具有一個(gè)與XilinxSpartan6SP601評(píng)估套件互聯(lián)的賽斯FX3開(kāi)發(fā)套件(CYUSB3KIT-001)或SuperSpeedExplorer套件(CYUSB3KIT-003)的硬件設(shè)置來(lái)運(yùn)行示例中的項(xiàng)目。FX3電路板和Xilinx電路板通過(guò)Samtec至FMC互聯(lián)電路板相連。CYUSB3ACC-002互聯(lián)電路板通過(guò)Samtec連接器與賽斯FX3開(kāi)發(fā)套件(CYUSB3KIT-001)相連,并通過(guò)FMC連接器與Xilinx電路板相連。接器與Xilinx電路板相連。圖15顯示了使用SuperSpeedExplorer套件的硬件設(shè)置。信息,請(qǐng)參閱附錄B:用FX3開(kāi)發(fā)套件(CYUSB3KIT-001)的硬件設(shè)置。除了硬件設(shè)置,以下各步驟在使用任FX3電路的情況下均相同。固件和軟件組件下圖顯示了FPGA和FX3之間的互連圖。EZ-USBXilinxEZ-USBXilinxSpartan6回送傳輸:對(duì)于該組件,F(xiàn)PGA先從FX3 整個(gè)緩沖區(qū)的內(nèi)容,然后將其回寫(xiě)到FX3內(nèi)。USB主機(jī)應(yīng)發(fā)送短數(shù)據(jù)包:在該組件中,F(xiàn)PGA先將一個(gè)完整的數(shù)據(jù)包傳輸?shù)紽X3,然后再發(fā)送一個(gè)短數(shù)據(jù)包。USB包。USB主機(jī)應(yīng)發(fā)送IN令牌數(shù)據(jù)包,從而接收該數(shù)據(jù)。USBIN令牌數(shù)據(jù)包,從而接收該數(shù)據(jù)。您可以使用EZ-USBFX3SDK中提供ControlCenter或Streamer工具實(shí)現(xiàn)該操作。串流輸出(OUT)數(shù)據(jù)傳輸:在該組件中,F(xiàn)PGAFIFOFX3連續(xù)數(shù)Streamer工具實(shí)現(xiàn)該操作。FX3固件的詳細(xì)信息USB3.0USB2.0 斯的ControlCenter和工具啟動(dòng)USB備支 ()在工作頻率100MHz32FIFO的運(yùn)行起著關(guān)鍵作用。設(shè)置DMA對(duì)于回送傳輸、短數(shù)據(jù)包和ZLP傳輸,需要?jiǎng)?chuàng)建兩個(gè)DMA一個(gè)是P2UPIB_SOCKET_0作為發(fā)送套接字,UIB_SOCKET_1作為接收套接字。DMA緩沖區(qū)大5121024USBUSB2.0USB3.0。DMA緩沖區(qū)的數(shù)量為2。另一個(gè)是U2PPIB_SOCKET_3作為接收套接字,UIB_SOCKET_1作為發(fā)送套接字。DMA緩沖區(qū)大小5121024USBUSB2.0USB3.0。DMA2。(each(each(each(eachEP1bufferbufferbufferbufferXilinxSpartanInternalUSB注意:(eachEP1bufferbuffer(eachEP1bufferbufferXilinxSpartanUSB/*setupDMAchannelforloopback/shortpacket/ZLPtransfers#define一個(gè)是P2U通道,其PIB_SOCKET_0作為發(fā)送套接字,UIB_SOCKET_1作為接收套接字。根據(jù)所使用的USB連接類(lèi)型,DMA16×1024(USB3.0連接方式)或16×512(USB2.0連接方式)。DMA緩沖區(qū)的數(shù)量為8。選用該緩沖區(qū)大小和數(shù)量,以得到高吞吐量性能。bufferbufferbufferbuffer(eachEP1EZ-USBbufferbufferbufferbuffer(eachEP1EZ-USBbufferbufferbufferbufferXilinxSpartanUSB另一個(gè)是U2PPIB_SOCKET_3作為接收套接字,UIB_SOCKET_1作為發(fā)送套接字。DMA緩沖區(qū)大緩沖區(qū)數(shù)量來(lái)增強(qiáng)性能,但需要降低P2U通道的緩沖區(qū)數(shù)量。其原因是FX3SDK所提供的緩沖區(qū)空間不足以支持兩個(gè)通道同時(shí)具有8個(gè)大小為16×1024的緩沖區(qū)。bufferbufferbufferbuffer(eachEZ-USBbufferbufferbufferbufferbufferbuffer(eachEZ-USBbufferbufferbufferbufferXilinxSpartanUSB/*setupDMAchannelforstreamIN/OUTtransfers#define/*SlaveFIFOP_2_Uchannelbuffer#define/*SlaveFIFOU_2_Pchannelbuffer#defineFPGA實(shí)現(xiàn)的詳細(xì)信息100為了得到FX3的最大性能,GPIF接口100MHz的頻率工作。SP601配有一個(gè)27MHz的板上單端振蕩器FPGA主設(shè)備模式狀態(tài)機(jī)串流IN和串流OUT傳輸。22.用于選擇模式的FPGA(Mode(Mode(Mode(Mode(Mode(Mode(Mode(Mode!=(Mode==(Mode(Modefpga_master_mode_idlefpga_master_mode_partialfpga_master_mode_idle狀態(tài)。fpga_master_mode_zlp如果mode=ZLP,狀態(tài)機(jī)將進(jìn)入該狀態(tài)。mode!=ZLP,狀態(tài)機(jī)將從該模式切fpga_master_mode_stream_infpga_master_mode_idle狀態(tài)。fpga_master_mode_stream_out狀態(tài)fpga_master_mode_idle狀態(tài)。fpga_master_mode_loop_backmodeLOOPBACK,狀態(tài)機(jī)將進(jìn)入該狀態(tài)。如果modeLOOPBACK,狀態(tài)機(jī)將從該狀態(tài)切換到fpga_master_mode_idle狀態(tài)。串流IN示例FPGA對(duì)從設(shè)備FIFO進(jìn)行寫(xiě)操作23串流INFPGA (flaga_d==1)==

(flagb_d== (flagb_d==PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=stream_in_wait_flagb狀態(tài)stream_in_write狀態(tài)PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=stream_in_write_wr_delay狀態(tài):備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),在局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)的SLWR#FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA在對(duì)被置為0短數(shù)據(jù)包FPGAFIFO]該示例說(shuō)明了如何使用PKTEND#傳輸短數(shù)據(jù)包的程序。下圖顯示了在VerilogRTL中針對(duì)短數(shù)據(jù)包示例執(zhí)行的狀態(tài).t==

(flaga_d==1)&== flagb_d== (flagb_d==|((strob==1)&

partial_idle狀態(tài)PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=partial_wait_flagb狀態(tài)partial_write狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=partial_write_wr_delay狀態(tài)每當(dāng)flagb_d=0或(strob=1和 t=“1110”)時(shí),狀態(tài)機(jī)將進(jìn)入該狀態(tài)。如果strob=1,F(xiàn)PGA主設(shè)備將PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),在局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)partial_wait狀態(tài) 鐘周期,以確保flaga上的有效狀態(tài)。FPGAZLPFIFO]25.ZLP t==

(flaga_d==1)&==

(flagb_d==1)&(strob==

(flagb_d==

(flagb_d==

zlp_idlePKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=zlp_wait_flagbzlp_write狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=zlp_write_wr_delay狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),在局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)zlp_wait狀態(tài)flagb_d1strob1時(shí),狀態(tài)機(jī)將zlp_wait_flagb狀態(tài)切換到該狀態(tài),并將一zlp數(shù)據(jù)包傳輸?shù)絪由于水6,因此,只有經(jīng)過(guò)局部標(biāo)志(flagb)6個(gè)周期,flaga0。該狀態(tài)會(huì)暫停執(zhí)行多4個(gè)時(shí)鐘周期,以確保flaga上的有效狀態(tài)。 VerilogRTL中針對(duì)串流OUT示例執(zhí)行的狀態(tài)機(jī) t==

(flagc_d==1)==

t==

(flagd_d==

(flagd_d==stream_out_idlePKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=stream_out_flagc_rcvdstream_out_wait_flagdstream_out_read狀態(tài)PKTEND#=1;SLOE#=0;SLRD#=0;SLCS#=0;SLWR#=1;A[1:0]=stream_out_read_rd_oe_delay備PKTEND#=1;SLOE#=0;SLRD#=0;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(2b),在局部標(biāo)志(flagd)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)SLRD#進(jìn)行采樣三個(gè)周期。由于考慮FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA0flagd_d(flagd的觸發(fā)輸出)進(jìn)行采樣后,激活SLRD#一個(gè)周期。stream_out_read_oe_delay PKTEND#=1;SLOE#=0;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]= 回送示例FPGA從從設(shè)備FIFO數(shù)據(jù)回寫(xiě)到從設(shè)備FIFO](flagc_d==1)==flagd_d==flagb_d==flagb_d==flagd_d==t==flaga_d==t==loop_back_idle狀態(tài)PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_flagc_rcvdloop_back_wait_flagdloop_back_read如果flagd_d=1,狀態(tài)機(jī)將進(jìn)入該狀態(tài)。狀態(tài)機(jī)將激活讀控制信號(hào)如下:PKTEND1;SLOE0;SLRD0;SLCS0;SLWR1;A[1:03loop_back_read_rd_oe_delay狀態(tài)備PKTEND#=1;SLOE#=0;SLRD#=0;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(2b),在局部標(biāo)志(flagd)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)的SLRD#進(jìn)行采樣三個(gè)周期。由于FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA對(duì)被置0flagd_d(flagd的觸發(fā)輸出)進(jìn)行采樣后,激活SLRD#一個(gè)周期。loop_back_read_oe_delay PKTEND#=1;SLOE#=0;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_wait_flaga PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_wait_flagb備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_write狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=loop_back_write_wr_delay狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),在局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)的SLWR#進(jìn)行采樣兩個(gè)周期于FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA在對(duì)被置0的局部flagb_d(flagb的觸發(fā)輸出)進(jìn)行采樣后激活SLWR#一個(gè)周期。loop_back_flush_fifoPKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=項(xiàng)目操作SuperSpeedExplorer套件時(shí),要確保已將跳線J5FX3開(kāi)發(fā)套件(CYUSB3KIT-001)時(shí),請(qǐng)按照表7FMCFX3DVKXilinxSP601DVK電路板,并在給XilinxSP601DVK供電之前,先給FX3DVK電路板供電。FPGA開(kāi)始任何數(shù)據(jù)操作前,必須先FPGAFX3進(jìn)行配置。FPGAGPIO輸入確定需要啟動(dòng)使用固件鏡像文件(SF_loopback.img)對(duì)FX3FX3SDKControlCenter工具通過(guò)USB主機(jī)編程FX3。slavefifo2b_fpga_top.bitXilinxSpartan6FPGA。可使用任何標(biāo)準(zhǔn)的編程器(如XilinxISE設(shè)計(jì)如果先編程好了FPGA,F(xiàn)X3DVK將不會(huì)在主機(jī)PC上進(jìn)行枚舉,因?yàn)樵撎准?fù)責(zé)驅(qū)動(dòng)PMODE線。30.使用ControlCenterFX3固件,用于進(jìn)行固件后,在啟動(dòng)數(shù)據(jù)傳輸前,F(xiàn)X3SuperSpeed器件進(jìn)行枚舉(如果已連接至一USB3.0端6.slavefifo2b_fpga_top.bitFPGAFPGA傳輸模關(guān)關(guān)關(guān)打FPGA連續(xù)寫(xiě)入一完整的數(shù)據(jù)包,后跟一個(gè)短數(shù)據(jù)關(guān)關(guān)打關(guān)FPGA連續(xù)寫(xiě)入完整的數(shù)據(jù)包,后跟關(guān)關(guān)打打FPGA連續(xù)寫(xiě)入完整的數(shù)據(jù)包(來(lái)自主機(jī)的串流BULKIN數(shù)據(jù)包關(guān)打關(guān)關(guān)FPGA連續(xù)完整的數(shù)據(jù)包(來(lái)自主機(jī)的串流BULKOUT數(shù)據(jù)包關(guān)打關(guān)打回送傳輸模關(guān)XXX無(wú)現(xiàn)在,可使用ControlCenter工具啟動(dòng)傳輸過(guò)程。首先,從USB主機(jī)啟動(dòng)一個(gè)BULKOUT傳輸。在ControlCenter中選擇BULKOUTendpoint項(xiàng),然后點(diǎn)擊TransferFile-OUT按鍵。這樣,您可瀏覽并選擇包含需要傳輸?shù)臄?shù)據(jù)的文件。在本應(yīng)用筆記的附件中,您可在Loopback文件夾中找到TEST.txt文件。該文件包含一個(gè)以交替方式發(fā)送“0xA5A5A5A50x5A5A5A5A”的數(shù)據(jù)圖案。雙擊選擇該文件,F(xiàn)PGA正在等待FLAGA變?yōu)?。只要PIB_SOCKET_0的緩沖區(qū)中的數(shù)據(jù)可用,F(xiàn)PGA會(huì)立即該數(shù)據(jù)。然后,F(xiàn)PGA會(huì)回送同樣的數(shù)據(jù),并將其寫(xiě)入到FX3的PIB_SOCKET_3。您可USB主機(jī)發(fā)送一BULKIN傳輸。ControlCenter中選BULKINendpointTransferData-IN按鍵。先前寫(xiě)入的數(shù)據(jù)將被。對(duì)于串流INOUTSF_streamIN.img編程FX3器件。也可以使用FX3SDK中固件后,F(xiàn)X3SuperSpeed器件進(jìn)行枚舉(USB3.0端口)。這樣,可以通過(guò)ControlCenter工具或FX3SDK中的串流工具啟動(dòng)數(shù)據(jù)傳輸。在串IN情況下,F(xiàn)PGA正在等FLAGA1。當(dāng)緩沖區(qū)可用時(shí),F(xiàn)PGAFX3的PIB_SOCKET_0USBBULKIN傳輸。在賽斯StreamerBULKINStart34InZ77ExpressChipset的Win764在串流OUT情況下,F(xiàn)PGA正在等待FLAGC變?yōu)?。當(dāng)數(shù)據(jù)可用時(shí),F(xiàn)PGA立即連續(xù)FX3的PIB_SOCKET_3中的數(shù)據(jù)。您可從USB主機(jī)發(fā)送連續(xù)的BULKOUT傳輸。在賽斯Streamer工具中選擇BULKOUT端點(diǎn),然后點(diǎn)擊Start。這時(shí),將顯示性能數(shù)值。圖35中顯示了在配有InZ77ExpressChipset的Win764位電腦上觀察到的性能。SF_streamIN.imgINOUTSF_streamIN.img8個(gè)緩4個(gè)緩沖區(qū)分別分配給P2UDMAU2P通道。SF_streamOUT.img文件中,則8個(gè)緩沖4個(gè)緩沖區(qū)分別U2PDMA通的U2P性能。短數(shù)據(jù)包和ZLP數(shù)據(jù)FX3。的狀態(tài)。一旦FLAGA等于1,F(xiàn)PGA會(huì)開(kāi)始寫(xiě)入FX3。如果將開(kāi)關(guān)配置為短數(shù)據(jù)包傳輸,F(xiàn)PGA將寫(xiě)入完整的數(shù)據(jù)包(1024個(gè)字節(jié)),然后再寫(xiě)入一個(gè)短數(shù)據(jù)包。如果將開(kāi)關(guān)配置為ZLP傳輸,F(xiàn)PGA將寫(xiě)入一個(gè)完整的數(shù)據(jù)包(1024個(gè)字節(jié)),然后再寫(xiě)入一個(gè)ZLP*?,F(xiàn)在,USBBULKINControlCenterBULKINTransferData-IN按鍵。首先,將收到完整的數(shù)據(jù)包。再次點(diǎn)擊TransferData-IN?,F(xiàn)在,將收到短數(shù)據(jù)包或ZLP。后立即傳輸短數(shù)據(jù)包的情況與此相同。這是因?yàn)镕X3緩沖區(qū)不被刪除,直到主機(jī)要求ControlCenter上的數(shù)據(jù)。設(shè)計(jì)示例2:將AlFPGA連接至FX3的同步從設(shè)備FIFO接本節(jié)將提供一個(gè)完整的設(shè)計(jì)示例,其中的Al 硬件設(shè)置可按照硬件設(shè)置執(zhí)行本示例中的項(xiàng)目。該硬件設(shè)置包括一個(gè)與CycloneIIIFPGA電路板相連的賽斯FX3開(kāi)發(fā)FX3電路板和Al電路板連接起來(lái)。CYUSB3ACC-003互聯(lián)電路板通過(guò)Samtec連接器與賽斯FX3開(kāi)發(fā)套件CYUSB3ACC-006互聯(lián)電路板通過(guò)多個(gè)SuperSpeedExplorer套件(CYUSB3KIT-003)相連,并通圖38顯示了使用SuperSpeedExplorer套件的硬件設(shè)置。信息,請(qǐng)參見(jiàn)附錄B:用FX3開(kāi)發(fā)套件(CYUSB3KIT-001)的硬件設(shè)置。除了硬件設(shè)置,以下各步驟在使用任何FX3電路的情況下均相同。 固件和軟件組件下圖顯示了FPGA和FX3之間的互連圖。 CycloneIIIEZ-USB回送傳輸:FPGA先從FX3 包,用于發(fā)送和接收該數(shù)據(jù)。您可使用EZ-USBFX3SDK中提供的ControlCenter工具實(shí)現(xiàn)該操作。短數(shù)據(jù)包:FPGAFX3,然后再發(fā)送一個(gè)短數(shù)據(jù)包。USBIN令牌數(shù)據(jù)零長(zhǎng)度數(shù)據(jù)包(ZLP)傳輸:FPGA先將一個(gè)完整的數(shù)據(jù)包傳輸?shù)紽X3,然后再發(fā)送一個(gè)零長(zhǎng)度數(shù)據(jù)包。USB主機(jī)應(yīng)發(fā)送IN令牌數(shù)據(jù)包,用于接收該數(shù)據(jù)。串流(OUT)數(shù)據(jù)傳輸:FPGA實(shí)現(xiàn)單向傳輸,即是通過(guò)同步從設(shè)FIFOFX3連續(xù)數(shù)據(jù)。USB主機(jī)應(yīng)發(fā)OUT令牌數(shù)據(jù)包,用于發(fā)送該數(shù)據(jù)??墒笶Z-USBFX3SDKControlCenterStreamer工具實(shí)現(xiàn)該操FX3固件的詳細(xì)信息USB3.0USB2.0 斯的ControlCenter和工具啟動(dòng)USB備支 ()設(shè)置DMA對(duì)于回送傳輸、短數(shù)據(jù)包和ZLP傳輸,需要?jiǎng)?chuàng)建兩個(gè)DMA一個(gè)是P2UPIB_SOCKET_0作為發(fā)送套接字,UIB_SOCKET_1作為接收套接字。DMA緩沖區(qū)大5121024USBUSB2.0USB3.0。DMA緩沖區(qū)的數(shù)量為2。另一個(gè)是U2PPIB_SOCKET_3作為接收套接字,UIB_SOCKET_1作為發(fā)送套接字。DMA緩沖區(qū)大小5121024USBUSB2.0USB3.0。DMA2。(eachbuffer(eachbuffer(eachbufferEP1bufferbufferbufferbuffer CycloneInternalUSB注意:只有P2U通道用于傳輸短數(shù)據(jù)包和ZLP數(shù)據(jù)包(eachbufferEP1(eachbufferEP1bufferbuffer CycloneUSB/*setupDMAchannelforloopback/shortpacket/ZLPtransfers#define一個(gè)是P2UPIB_SOCKET_0作為發(fā)送套接字,UIB_SOCKET_1作為接收套接字。根據(jù)所使用的USB連接類(lèi)型,DMA16×1024(USB3.0連接方式)16×512(USB2.0連接方式)。DMA緩沖區(qū)的數(shù)量為8。選擇該緩沖區(qū)大小和數(shù)量,以得到高吞吐量性能。bufferEP1bufferbufferbufferbufferEP1bufferbufferbufferbufferbufferbufferbuffer CycloneUSB另一個(gè)是U2PPIB_SOCKET_3作為接收套接字,UIB_SOCKET_1作為發(fā)送套接字。DMA緩沖區(qū)P2U通道的緩沖區(qū)數(shù)量。其原因FX3SDK所提供的緩沖區(qū)空間不足以支持兩個(gè)通道同8個(gè)大小16×1024bufferEZ-USB CyclonebufferEZ-USB CyclonebufferbufferbufferbufferbufferbufferbufferbufferUSB/*setupDMAchannelforstreamIN/OUTtransfers#define/*SlaveFIFOP_2_Uchannelbuffer#define/*SlaveFIFOU_2_Pchannelbuffer#defineFPGA實(shí)現(xiàn)的詳細(xì)信息 CycloneIII100為了得到FX3的最大性能,GPIF接口將以100MHz的頻率工作。CycloneIII電路板配有一個(gè)50MHz的板上單端振蕩器。FPGA使用一個(gè)PLL,以從50MHz的時(shí)鐘生成一個(gè)100MHz的時(shí)鐘。串流IN示例FPGA對(duì)從設(shè)備FIFO進(jìn)行寫(xiě)操作45串流INFPGA(flaga_d==(flagb_d==(flagb_d==stream_in_idlePKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=stream_in_wait_flagb狀態(tài)stream_in_write狀態(tài)PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=stream_in_write_wr_delay狀態(tài):備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=入根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)的的觸發(fā)輸出)進(jìn)行采樣后激活SLWR#一個(gè)周期。短數(shù)據(jù)包示例[FPGA分別將整個(gè)數(shù)據(jù)包和短數(shù)據(jù)包寫(xiě)入到從設(shè)備FIFO].t==

(flaga_d== flagb_d== (flagb_d==|((strob==1)& t

partial_idle狀態(tài)PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=partial_wait_flagb狀態(tài)partial_write狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=partial_write_wr_delay狀態(tài)每當(dāng)flagb_d=0或(strob=1和 t=“1111”)時(shí),狀態(tài)機(jī)將進(jìn)入該狀態(tài)。如果strob=1,F(xiàn)PGA主設(shè)備將傳輸一個(gè)短數(shù)據(jù)包。從設(shè)備FIFO控制線的狀態(tài)為:PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)SLWR#進(jìn)行采樣兩個(gè)周期于FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA0的局partial_wait狀態(tài) 鐘周期,以確保flaga上的有效狀態(tài)。FPGAZLPFIFO]圖47.ZLP傳輸?shù)臓顟B(tài)機(jī)(flaga_d(flaga_d==t==(flagb_d==1)&(strob==(flagb_d==(flagb_d==zlp_idlePKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=zlp_wait_flagbzlp_write狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=zlp_write_wr_delay狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)SLWR#進(jìn)行采樣兩個(gè)周期于FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA0的局zlp_wait狀態(tài)flagb_d1strob1時(shí),狀態(tài)機(jī)將zlp_wait_flagb狀態(tài)切換到該狀態(tài),并將一zlp數(shù)據(jù)包傳輸?shù)絪由于水6,因此,只有經(jīng)過(guò)局部標(biāo)志(flagb)6個(gè)周期,flaga0。該狀態(tài)會(huì)暫停執(zhí)行多4個(gè)時(shí)鐘周期,以確保flaga上的有效狀態(tài)。 VerilogRTL中針對(duì)串流OUT示例執(zhí)行的狀態(tài)機(jī) t==

(flagc_d==

t==

(flagd_d==

(flagd_d==stream_out_idlePKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=stream_out_flagc_rcvdstream_out_wait_flagdstream_out_read狀態(tài)PKTEND#=1;SLOE#=0;SLRD#=0;SLCS#=0;SLWR#=1;A[1:0]=stream_out_read_rd_oe_delay備PKTEND#=1;SLOE#=0;SLRD#=0;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(2b),局部標(biāo)志(flagd)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)的SLRD#進(jìn)行采樣三個(gè)周期。由于考慮FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA0flagd_d(flagd的觸發(fā)輸出)進(jìn)行采樣后,激活SLRD#一個(gè)周期。stream_out_read_oe_delay PKTEND#=1;SLOE#=0;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]= 回送示例FPGA從從設(shè)備FIFO數(shù)據(jù)回寫(xiě)到從設(shè)備FIFO]:

(flagc_d==

flagd_d==flagb_d==

flagb_d== flagd_d==

flaga_d==

t==

t==

loop_back_idle狀態(tài)PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_flagc_rcvd狀態(tài)loop_back_wait_flagd狀態(tài)loop_back_read如果flagd_d=1,狀態(tài)機(jī)將進(jìn)入該狀態(tài)。狀態(tài)機(jī)將激活讀控制信號(hào)如下:PKTEND1;SLOE0;SLRD0;SLCS0;SLWR1;A[1:03loop_back_read_rd_oe_delay備PKTEND#=1;SLOE#=0;SLRD#=0SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(2b),局部標(biāo)志(flagd)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)的SLRD#進(jìn)行采樣三個(gè)周期。由于考慮FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA0flagd_d(flagd的觸發(fā)輸出)進(jìn)行采樣后,激活SLRD#一個(gè)周期。loop_back_read_oe_delay PKTEND#=1;SLOE#=0;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_wait_flaga狀態(tài) PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_wait_flagb狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=loop_back_write狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=loop_back_write_wr_delay狀態(tài)備PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=根據(jù)使用局部標(biāo)志情況下的通用一節(jié)中的(1),局部標(biāo)志(flagb)變?yōu)?后,F(xiàn)X3需要對(duì)處于激活狀態(tài)SLWR#進(jìn)行采樣兩個(gè)周期于FPGA至接口的一個(gè)周期的傳輸延遲,F(xiàn)PGA0的局loop_back_flush_fifoPKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=項(xiàng)目操作SuperSpeedExplorer套件時(shí),要確保已將跳線J5FX3開(kāi)發(fā)套件(CYUSB3KIT-001)時(shí),請(qǐng)按照表7對(duì)各跳線器和開(kāi)關(guān)進(jìn)行設(shè)置。使用HSMC連接器將FX3DVK電路板連接至AlCycloneIIIFPGA入門(mén)電路板,并在給AlCycloneIIIFPGA電路板供電之前,先給FX3DVK電路板供電。使用固件鏡像文SF_loopback.imgFX3FX3SDKControlCenterUSB主機(jī)編程FX3。編程AlCycloneIIIFPGA前,應(yīng)先對(duì)FX3進(jìn)行編程。固件后,F(xiàn)X3器件會(huì)作為一個(gè)SuperSpeed器件進(jìn)行枚舉(如果已連接到USB3.0端口)。50ControlCenter對(duì)FX3固件進(jìn)行編slaveFIFO2b_loopback.sofAlCycloneIIIFPGA??墒褂萌我鈽?biāo)準(zhǔn)的編程器(如QuartusII軟件中的USB-Blaster應(yīng)用)編程FPGA?,F(xiàn)在,可使用ControlCenter工具啟動(dòng)傳輸過(guò)程。首先,從USB主機(jī)啟動(dòng)一個(gè)BULKOUT傳輸。在ControlCenter中選擇BULKOUTendpoint項(xiàng),然后點(diǎn)擊TransferFile-OUT按鍵。這樣,您可瀏覽并選擇包含需要傳輸?shù)臄?shù)據(jù)的文件。在本應(yīng)用筆記的附件中,您可在回送文件夾中找到TEST.txt文件。該文件包含一個(gè)以交替方式發(fā)送“0xA5A5A5A50x5A5A5A5A”的數(shù)據(jù)圖案。雙擊選擇該文件,然后發(fā)送FPGA正在等待FLAGA變?yōu)?。只要PIB_SOCKET_0的緩沖區(qū)中的數(shù)據(jù)可用,F(xiàn)PGA會(huì)立即該數(shù)據(jù)。然后,F(xiàn)PGA會(huì)回送同樣的數(shù)據(jù),并將其寫(xiě)入到FX3的PIB_SOCKET_3。您可USBBULKINControlCenter中選BULKINendpoint項(xiàng),并點(diǎn)TransferData-IN按鍵。這樣,先前寫(xiě)入的數(shù)據(jù)將被。 對(duì)于串流IN或串流OUT,使用固件鏡像文件SF_streamIN.img編程FX3器件。也可以使用FX3SDK中的ControlCenter工具通過(guò)USB主機(jī)編程FX3。編程AlCycloneIIIFPGA前,應(yīng)先對(duì)FX3進(jìn)行編程。固件后,F(xiàn)X3器件會(huì)作為一個(gè)超速器件進(jìn)行枚舉(如果已連接到USB3.0端口)。對(duì)于串流IN傳輸和串流OUT傳輸,分別使用slaveFIFO2b_streamIN.sof文件和slaveFIFO2b_streamOUT.sof文件編程AlCycloneIIIFPGA??墒褂萌我鈽?biāo)準(zhǔn)的編程器(如QuartusII軟件中的USB-Blaster應(yīng)用)編程在串流IN情況下,F(xiàn)PGA正在等待FLAGA變?yōu)?。當(dāng)緩沖區(qū)可用時(shí),F(xiàn)PGA立即將數(shù)據(jù)連續(xù)寫(xiě)入到FX3的PIB_SOCKET_0。您可USBBULKIN傳輸。在賽斯Streamer工具中選BULKIN端Start55InZ77ExpressChipsetWin764位電在串流OUT情況下,F(xiàn)PGA正在等待FLAGC變?yōu)?。當(dāng)數(shù)據(jù)可用時(shí),F(xiàn)PGA立即連續(xù)FX3的PIB_SOCKET_3中的數(shù)據(jù)。您可從USB主機(jī)發(fā)送連續(xù)的BULKOUT傳輸。在賽斯Streamer工具中選擇BULKOUTStart56中顯示了在配有InZ77ExpressChipset的Win764位電腦上觀察到的性能。SF_streamIN.img文件可使用于INOUTSF_streamIN.img8個(gè)緩沖4個(gè)緩沖區(qū)分別分配U2P性能。 對(duì)于串流IN或串流OUT,使用固件鏡像文件SF_shrt_ZLP.img編程FX3器件。也可以使用FX3SDK中的ControlCenter工具通過(guò)USB主機(jī)編程FX3。編程AlCycloneIIIFPGA前,應(yīng)先對(duì)FX3進(jìn)行編程。固件后,F(xiàn)X3器件會(huì)作為一個(gè)SuperSpeed器件進(jìn)行枚舉(如果已連接到USB3.0端口)。通過(guò)使用slaveFIFO2b_partial.sof文件對(duì)AlCycloneIIIFPGA進(jìn)行編程??墒褂萌我鈽?biāo)準(zhǔn)的編程器(完成編程FX3固件后,分配給PIB_SOCKET_0的緩沖區(qū)立即可用。通過(guò)FLAGA,F(xiàn)PGA正在處于等待該條件發(fā)生的狀態(tài)。一旦標(biāo)志等于1,F(xiàn)PGA會(huì)開(kāi)始對(duì)FX3進(jìn)行寫(xiě)操作?,F(xiàn)在,USB主機(jī)可發(fā)送BULKIN令牌數(shù)據(jù)包。在ControlCenter工具中,選擇BULKIN端點(diǎn),然后點(diǎn)擊TransferData-IN按鍵。首先,將收到完整的數(shù)據(jù)包。再次點(diǎn)擊TransferData-IN按鍵。現(xiàn)在,將收到短數(shù)據(jù)ZLP傳輸?shù)臏y(cè)試步驟 對(duì)于串流IN或串流OUT,使用固件鏡像文件SF_shrt_ZLP.img編程FX3器件。也可以使用FX3SDK中的ControlCenter工具通過(guò)USB主機(jī)編程FX3。編程AlCycloneIIIFPGA前,應(yīng)先對(duì)FX3進(jìn)行編程。固件后,F(xiàn)X3器件會(huì)作為一個(gè)SuperSpeed器件進(jìn)行枚舉(如果已連接到USB3.0端口)。slaveFIFO2b_ZLP.sofAlCycloneIIIFPGA??墒褂萌我鈽?biāo)準(zhǔn)的編程器(如QuartusII軟件中的USB-Blaster應(yīng)用)編程FPGA。完成編程FX3固件后,分配給PIB_SOCKET_0的緩沖區(qū)立即可用。通過(guò)FLAGA,F(xiàn)PGA正在處于等待該條件發(fā)生的狀態(tài)。一旦標(biāo)志等于1,F(xiàn)PGA會(huì)開(kāi)始對(duì)FX3進(jìn)行寫(xiě)操作?,F(xiàn)在,USB主機(jī)可發(fā)送BULKIN令牌數(shù)據(jù)包。在ControlCenter工具中,選擇BULKIN相關(guān)的項(xiàng)目文件文件/文件夾名說(shuō)FX3固FX3該文件夾包括下面的子文件夾XilinxFPGA源代碼(Verilog),可支持所有傳輸類(lèi)型(串流IN、串流OUT、XilinxFPGA源代碼(VHDL),可支持所有的傳輸類(lèi)型(串流IN、串流OUT、Verilog和VHDL中的AlFPGA源代碼該文件夾包含針對(duì)每一種傳輸?shù)淖游募A。下面的每個(gè)文件夾中均包含VHDL項(xiàng)目fpga_loopback,用于回送數(shù)據(jù)傳輸fpga_partial,用于短數(shù)據(jù)包數(shù)據(jù)傳輸fpga_streamIN,用于串流IN數(shù)據(jù)傳輸fpga_streamOUT,用于串流OUT數(shù)據(jù)傳輸fpga_zlp,用于ZLP傳輸該文件是一個(gè)X3IO實(shí)現(xiàn),并用來(lái)設(shè)置回送傳輸所DMA通道。注意:各個(gè)FX3固件鏡像之間的唯一區(qū)別在于DMA通道的設(shè)置方式,以便能輕該文件是一個(gè)FX3固件鏡像,包含了從設(shè)備FIFO實(shí)現(xiàn)。當(dāng)執(zhí)行串流IN傳輸時(shí),它可設(shè)置性能優(yōu)化所要求的DMA通道。該文件是一個(gè)FX3固件鏡像,包含了從設(shè)備FIFO實(shí)現(xiàn)。當(dāng)執(zhí)行串流OUT傳輸時(shí),它可設(shè)置性能優(yōu)化所要求的DMA通道。該文件是一個(gè)X3IO實(shí)現(xiàn)。當(dāng)執(zhí)行短數(shù)據(jù)包或零長(zhǎng)度數(shù)據(jù)包(ZP)傳輸時(shí),它可設(shè)置性能優(yōu)化所要求的DMA通道。該文件包含了通過(guò)使用ControlCenter工具中TransferFile-OUT按鍵發(fā)送的數(shù)匯本應(yīng)用筆記詳細(xì)說(shuō)明了同步從設(shè)FIFO接口。此外,還介紹了不同的標(biāo)志配置以及使GPIFIIDesigner工具配置標(biāo)故障排除可能USB在低功耗模式下停滯。使用CyU3PUsbLPMDisable函數(shù)停止進(jìn)入低功耗模式,如(evtype, ){switch{case/*Stoptheapplicationbeforere-starting.*/if(glIsApplnActive){}/*Starttheloopbackfunction.*/CyFxSlFifoApplnStart();注意:該解決方案可能不與USB兼容。您可以采取SDK提供的USBBULKSourceSink示例中(瀏覽至實(shí)現(xiàn)該解決方案后FX3DVKBULKIN傳輸操作還失敗,此時(shí),請(qǐng)確保短接J10012引腳。短接這些引腳后,F(xiàn)LAGA可用于連接至從設(shè)備FIFO接口的FPGA。FPGA將數(shù)據(jù)寫(xiě)入從設(shè)FIFO時(shí)FIFO接口GPIFII狀態(tài)機(jī)將處于“Write”狀態(tài)。寫(xiě)入數(shù)據(jù)后(該數(shù)據(jù)為數(shù)據(jù)包大小的倍數(shù)),如要立即發(fā)送ZLP,F(xiàn)PGA在取消激活SLWR#信號(hào)后需要在至少兩個(gè)時(shí)鐘周期激活PKTEND#信號(hào)。這是因?yàn)镚PIFII狀態(tài)機(jī)需要兩個(gè)時(shí)鐘周期

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論