本發(fā)明涉及計(jì)算機(jī)硬件技術(shù)領(lǐng)域,尤其涉及一種基于自定義接口實(shí)現(xiàn)FPGA內(nèi)部存儲(chǔ)空間讀寫(xiě)操作的調(diào)試方法。
背景技術(shù):
在現(xiàn)有的計(jì)算機(jī)科學(xué)教學(xué)過(guò)程中,很多計(jì)算機(jī)硬件設(shè)計(jì)的課程都缺乏有效的調(diào)試手段,從而使得學(xué)生們常常將大量的時(shí)間用于調(diào)試設(shè)計(jì)缺陷,而沒(méi)有足夠的時(shí)間去理解教學(xué)內(nèi)容。
鑒于此,有必要針對(duì)調(diào)試方法進(jìn)行改進(jìn),以便于直接講解教學(xué)過(guò)程。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于自定義接口實(shí)現(xiàn)FPGA內(nèi)部存儲(chǔ)空間讀寫(xiě)操作的調(diào)試方法,可以便于學(xué)生們快速地定位設(shè)計(jì)問(wèn)題,更好地理解教學(xué)內(nèi)容。
本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
一種基于自定義接口實(shí)現(xiàn)FPGA內(nèi)部存儲(chǔ)空間讀寫(xiě)操作的調(diào)試方法,包括:
由上位機(jī)調(diào)用驅(qū)動(dòng)程序結(jié)構(gòu),來(lái)識(shí)別與其通過(guò)USB接口相連的轉(zhuǎn)換板,再發(fā)送包含讀/寫(xiě)命令以及相應(yīng)地址的數(shù)據(jù)包給轉(zhuǎn)換板;
所述轉(zhuǎn)換板接收到數(shù)據(jù)包后進(jìn)行解析,并轉(zhuǎn)換成自定義的類(lèi)SPI總線(xiàn)接口時(shí)序,再發(fā)送給FPGA芯片;
FPGA芯片解析接收到的類(lèi)SPI總線(xiàn)接口時(shí)序,并根據(jù)解析結(jié)果做出相應(yīng)的響應(yīng)。
所述驅(qū)動(dòng)程序結(jié)構(gòu)為CY7C68013A的驅(qū)動(dòng)程序結(jié)構(gòu),轉(zhuǎn)換板芯片型號(hào)為:CY7C68013A。
該方法還包括:所述上位機(jī)初始化USB設(shè)備連接的轉(zhuǎn)換板并讀出供應(yīng)商id和產(chǎn)品id。
由上述本發(fā)明提供的技術(shù)方案可以看出,通過(guò)上位機(jī)直接對(duì)FPGA內(nèi)部存儲(chǔ)空間進(jìn)行包含讀寫(xiě)的調(diào)試操作,非常的方便和直觀,也方便學(xué)生理解教學(xué)內(nèi)容。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他附圖。
圖1為本發(fā)明實(shí)施例提供的一種基于自定義接口實(shí)現(xiàn)FPGA內(nèi)部存儲(chǔ)空間讀寫(xiě)操作的調(diào)試方法的示意圖。
圖2為本發(fā)明實(shí)施例提供的上位機(jī)與轉(zhuǎn)換板通信數(shù)據(jù)包格式示意圖。
具體實(shí)施方式
下面結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
本發(fā)明實(shí)施例提供一種基于自定義接口實(shí)現(xiàn)FPGA內(nèi)部存儲(chǔ)空間讀寫(xiě)操作的調(diào)試方法,如圖1所示,其主要包括:
由上位機(jī)調(diào)用驅(qū)動(dòng)程序結(jié)構(gòu),來(lái)識(shí)別與其通過(guò)USB接口相連的轉(zhuǎn)換板,再發(fā)送包含讀/寫(xiě)命令以及相應(yīng)地址的數(shù)據(jù)包給轉(zhuǎn)換板;
所述轉(zhuǎn)換板接收到數(shù)據(jù)包后進(jìn)行解析,并轉(zhuǎn)換成自定義的類(lèi)SPI總線(xiàn)接口時(shí)序(可簡(jiǎn)稱(chēng)EJTAG接口),再發(fā)送給FPGA芯片;
FPGA芯片解析接收到的類(lèi)SPI總線(xiàn)接口時(shí)序,并根據(jù)解析結(jié)果做出相應(yīng)的響應(yīng)。
上述方案可以直接通過(guò)上位機(jī)對(duì)FPGA內(nèi)部存儲(chǔ)空間進(jìn)行讀寫(xiě)操作的工具,在CPU設(shè)計(jì)課程中是非常有效的調(diào)試方式。
本發(fā)明實(shí)施例中,上位機(jī)可以是XP系統(tǒng)的PC,其主要功能有:初始化板子上USB設(shè)備的連接、配置FPGA、內(nèi)存回收(讀取數(shù)據(jù))、MEM測(cè)試(讀寫(xiě)數(shù)據(jù))。對(duì)于初始化USB設(shè)備的連接,同時(shí)需要獲取供應(yīng)商id和產(chǎn)品id,這些只需要通過(guò)對(duì)芯片廠(chǎng)家提供的lib進(jìn)行封裝即可實(shí)現(xiàn)。上位機(jī)的上述功能可以通過(guò)相應(yīng)的程序來(lái)實(shí)現(xiàn)。
本發(fā)明實(shí)施例中,上位機(jī)最主要的功能就是對(duì)FPGA存儲(chǔ)空間進(jìn)行讀寫(xiě)操作,需要先設(shè)置地址,再讀取或?qū)懭胂鄳?yīng)地址的數(shù)據(jù)。上位機(jī)與轉(zhuǎn)換板通信數(shù)據(jù)包格式如圖2所示。
在上位機(jī)的程序開(kāi)發(fā)中,首先需要用Visual Studio編寫(xiě)CyWrapper工程,該工程對(duì)驅(qū)動(dòng)程序接口進(jìn)行封裝,編譯生成DLL文件、LIB文件頭文件(CyAPI.h)。接著建立Qt工程,通過(guò)調(diào)用CyAPI.h對(duì)DLL文件和LIB文件進(jìn)行鏈接,利用界面工具設(shè)計(jì)界面,調(diào)用DLL里面的函數(shù)對(duì)FPGA的內(nèi)部存儲(chǔ)空間進(jìn)行讀寫(xiě)操作。上位機(jī)程序首先會(huì)初始化板子上USB設(shè)備的連接并讀出供應(yīng)商id和產(chǎn)品id,之后會(huì)提供配置FPGA、內(nèi)存回收、MEM測(cè)試的功能。
本發(fā)明實(shí)施例中,驅(qū)動(dòng)程序?yàn)镃Y7C68013A(可簡(jiǎn)稱(chēng)68013)的驅(qū)動(dòng)程序結(jié)構(gòu),轉(zhuǎn)換板芯片型號(hào)為:CY7C68013A。
轉(zhuǎn)換板所要實(shí)現(xiàn)的各個(gè)功能也可以通過(guò)相應(yīng)的固件程序來(lái)實(shí)現(xiàn),比如固件程序負(fù)責(zé)連接上位機(jī)與實(shí)驗(yàn)箱(XC6SLX150),接收上位機(jī)發(fā)來(lái)的數(shù)據(jù)包,并解析、模擬EJTAG接口時(shí)序,實(shí)現(xiàn)讀寫(xiě)操作。FPGA程序?qū)崿F(xiàn)EJTAG接口到并行RAM-like接口的轉(zhuǎn)換,并提供一端可供讀寫(xiě)的存儲(chǔ)空間。
本發(fā)明實(shí)施例中,可以全部采用EP0端點(diǎn)進(jìn)行通信;同時(shí),地址、數(shù)據(jù)均為32bit位寬(占4個(gè)字節(jié))。
本發(fā)明實(shí)施例的上述方案,通過(guò)上位機(jī)直接對(duì)FPGA內(nèi)部存儲(chǔ)空間進(jìn)行包含讀寫(xiě)的調(diào)試操作,非常的方便和直觀,有助于學(xué)生理解教學(xué)內(nèi)容。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書(shū)的保護(hù)范圍為準(zhǔn)。