基于局域網和fpga的遠程電路設計硬件實驗系統及方法
【技術領域】
[0001]本發明涉及計算機實驗儀器,尤其是一種基于局域網和FPGA的遠程電路設計硬件實驗系統及方法。
【背景技術】
[0002]現有的計算機硬件的教學實驗方法和系統大致分成兩大類:一類是基于計算機仿真技術的純軟件模擬實驗環境;另一類是在本地實驗室真實硬件平臺上完成實驗的實驗環境。
[0003]前者不涉及真實的硬件實驗設備,所有的實驗內容都集中到服務器上,通過網絡發布,用戶通過一臺能夠連接互聯網的電腦和配套的仿真軟件即可進行相關的實驗并獲得實驗結果;后者在本地進行相關的實驗,通常需要用戶和真實的硬件設備進行連接和交互,用戶可以真實的感受到實際操作的效果,但是需要投入大量的實驗設備并進行相關的維護。
[0004]以上兩種方法一虛一實,但前者缺少了實際硬件操作的可信度和可驗證性,且不是所有情況都能真實仿真的;后者需要投入大量的人力、物力及財力進行設備的更新和維護,在大量人員集中做實驗的情況下,實驗設備難以得到保證,同時實驗人員只能在規定的時間和規定的地點進行實驗,不太符合當前開放性實驗的需要。隨著大型開放式網絡課程MOOC在全球的推廣,急需解決在網絡開放環境下進行硬件實驗的問題。
【發明內容】
[0005]發明目的:本發明為解決在網絡開放環境下進行硬件實驗的問題,提出一種基于局域網和FPGA的遠程電路設計硬件實驗系統及方法。
[0006]技術方案:本發明所述的一種基于局域網和FPGA的遠程電路設計硬件系統,包括服務器端、客戶端PC機以及硬件實驗平臺,三部分之間通過局域網相連進行通信,服務器和硬件實驗平臺之間還通過USB-JTAG下載線相連進行通信。
[0007]硬件實驗平臺采用集雙核ARM Cortex_A9和FPGA于一個主芯片中的ZedBoard板卡,所述主芯片采用Xilinx Zynq-7000 All Programmable SoC,其內部擁有雙核ARMCortexA9處理器構成的PS (Processing System,處理系統)部分及FPGA邏輯的PL(Programmable Logic,可編程邏輯)部分。
[0008]服務器端包括自動下載模塊和Bitstream (位元流)更新模塊;Bitstream更新模塊運行在服務器端,自動識別用戶提交的Bitstream文件,并進行保存和更新;自動下載模塊運行在服務器端,將Bitstream文件自動下載到硬件實驗平臺中。
[0009]客戶端PC機包括FTP上傳模塊和客戶端仿真模塊;客戶端仿真模塊運行在客戶端PC機上,進行本地虛擬硬件調試,完成用戶硬件設計實驗的直接仿真模擬并與遠程的硬件實驗平臺進行通信交互;FTP上傳模塊運行在客戶端PC上,通過局域網,訪問服務器端的FTP服務,并將用戶設計的Bitstream文件上傳至服務器。
[0010]硬件實驗平臺包括FPGA部分與ARM部分,FPGA部分包括FPGA電路監控IP核,ARM部分包括反饋交互模塊和網絡監控與數據采集模塊;FPGA電路監控IP核運行在ZedBoard板卡的PL部分中,提供給用戶統一的IP核接口,完成對FPGA芯片中運行的用戶設計的硬件電路的監控,并和運行在ARM部分中的硬件平臺監控程序進行數據交換;網絡監控與數據采集模塊運行在ZedBoard板卡的PS部分中,負責網絡數據傳輸的實時性和有效性;反饋交互模塊運行在ZedBoard板卡的PS部分中,接收用戶的數據控制包,并解析傳輸給FPGA,同時可以將FPGA電路監控采集的實時信號封裝,通過網絡反饋給用戶。
[0011]使用上述系統進行實驗的方法,包括如下步驟:
(1)將服務器端、硬件實驗平臺與客戶端PC機通過局域網相連,將服務器端與硬件實驗平臺還通過USB-JTAG下載線相連;
(2)服務器端設計自動下載模塊與Bitstream更新模塊,硬件實驗平臺內設計FPGA電路監控核、反饋交互模塊和網絡監控與數據采集模塊,客戶端PC機內設計FTP上傳模塊和客戶端仿真模塊,并安裝具有自定義功能的實驗軟件;
(3)用戶在客戶端PC機上利用FPGA設計軟件進行數字電路實驗,設計生成的電路以Bitstream文件形式通過FTP上傳模塊上傳至服務器端,服務器端Bitstream更新模塊偵聽到新的數據流到來后,接收數據并啟動自動下載模塊自動下載用戶設計的Bitstream文件到硬件實驗平臺的FPGA部分中;
(4)硬件實驗平臺中的FPGA電路監控IP核和網絡監控與數據采集模塊相配合,不斷收集用戶電路執行中的有關數據,并將這些數據通過反饋交互模塊和網絡監控與數據采集模塊發往客戶端PC機的客戶端仿真模塊進行可視化顯示,用戶通過客戶端PC機上的軟件實時獲取實驗結果的變化。
[0012]其中:所述的硬件實驗平臺采用集雙核ARM Cortex_A9和FPGA于一個主芯片中的ZedBoard板卡,所述主芯片采用Xilinx Zynq-7000 All Programmable SoC,其內部擁有雙核ARM CortexA9處理器構成的PS部分及FPGA邏輯的PL部分。
[0013]在步驟(3)中,所述的自動下載模塊運行在服務器端,將Bitstream文件自動下載到硬件實驗平臺中,在后臺運行著服務器端的監聽端口進程,該進程負責偵聽FTP服務對用戶上傳的Bitstream文件更新這一事件,并負責啟動Xilinx的微處理器調試XMD工具,XMD工具識別下載接口,并啟動下載服務完成對硬件實驗平臺的編程。
[0014]有益效果:本發明與現有技術相比,其顯著的效果為:(1)具備真實的硬件底層支持,真實反映硬件電路的運行情況,支持網絡下的遠程實驗,拓展了實驗的地域性和開放性;(2)充分利用硬件實驗平臺的優勢將FPGA電路監控IP核和用戶設計的硬件電路運行在同一個芯片的FPGA中,將硬件平臺監控程序以及網絡監控和數據采集程序運行在同一芯片的ARM核中,大大減輕了服務器的負擔;(3)用戶可在該系統上做各種數字電路的設計實驗,包括邏輯組合、時序邏輯以及更加復雜的CPU設計等。
【附圖說明】
[0015]圖1是本發明的整體系統結構示意圖;
圖2是本發明的功能模塊圖。
【具體實施方式】
[0016]如圖1所示,本發明所述的一種基于局域網和FPGA的遠程電路設計硬件系統,包括服務器端、客戶端PC機以及硬件實驗平臺,三部分之間通過局域網相連進行通信,服務器和硬件實驗平臺之間還通過USB-JTAG下載線之間相連進行通信;硬件實驗平臺采用集雙核ARM Cortex-A9和FPGA于一個主芯片中的ZedBoard板卡,所述主芯片采用XilinxZynq-7000 All Programmable SoC,其內部擁有雙核ARM CortexA9處理器構成的PS部分及FPGA邏輯的PL部分。
[0017]如圖2所示,服務器端包括自動下載模塊和Bitstream更新模塊;Bitstream更新模塊運行在服務器端,自動識別用戶提交的Bitstream文件,并進行保存和更新;自動下載模塊運行在服務器端,將Bitstream文件自動下載到硬件實驗平臺中,在后臺運行著服務器端的監聽端口進程,該進程負責偵聽FTP服務對用戶上傳的Bitstream文件更新這一事件,并負責啟動Xilinx的微處理器調試XMD工具,XMD工具識別下載接口,并啟動下載服務完成對硬件實驗平臺的編程。
[0018]客戶端PC機包括FTP上傳模塊和客戶端仿真模塊;客戶端仿真模塊運行在客戶端PC機上,進行本地虛擬硬件調試,完成用戶硬件設計實驗的直接仿真模擬并與遠程的硬件實驗平臺進行通信交互;FTP上傳模塊運行在客戶端PC上,通過局域網,訪問服務器端的FTP服務,并將用戶設計的Bitstream文件上傳至服務器。
[0019]硬件實驗平臺包括FPGA部分與ARM部分,FPGA部分包括FPGA電路監控IP核,ARM部分包括反饋交互模塊和網絡監控與數據采集模塊;FPGA電路監控IP核運行在ZedBoard板卡的PL部分中,提供給用戶統一的IP核接口,完成對FPGA芯片中運行的用戶設計的硬件電路的監控,并和運行在ARM部分中的硬件平臺監控程序進行數據交換;網絡監控與數據采集模塊運行在ZedBoard板卡的PS部分中,負責網絡數據傳輸的實時性和有效性;反