edk

信息技術

EDK=Embedded Development Kit,嵌入式開發套件。EDK是xilinx公司開發嵌入式系統的工具。比起xilinxISE,二者不同在於,如果僅僅是使用xilinx的fpga做邏輯設計,只需要ISE開發環境。但是如果要使用powerpc或者microblaze處理器,從硬體到軟體設計的整個嵌入式系統設計,就需要EDK。

EDK介紹


EDK工具中硬體平台部分的描述包含在MHS(Microprocessor Hardware Specification)文件中,這個文件是用高級語言格式描述處器器系統的硬體平台。它是可編輯的文本文件,是用於綜合生成HDL網表的輸入文件,為後續的布局布線(Netgen)做準備。
XPS的項目信息區【Project Information Area】中打開【Project Tab】選項卡,雙擊File∶system mhs文件,打開該文件,可以仔細研究其中的內容。
嵌入式系統經歷了從單片計算機、工業控制計算機、集中分散式控制系統,發展到嵌入式的平台的幾個階段:從獨立單機使用發展到聯網設備;從以模擬電路為主發展到以數字電路為主、數/模混合型,進而進入全數字時代。總的來說,嵌入式系統向著更高性能、更小體積、更低功耗、更廉價、無處不在的方向發展。嵌入式系統的設計和實現朝著基於晶元,特別是片上可編程系統(SOPC)的方向發展。
嵌入式開發套件(EDK)是用於設計嵌入式可編程系統的全面解決方案。該套件包括嵌入式軟體工具(PlatformStudio)以及嵌入式IBMPowerPC硬體處理器核和/或XilinxMicroBlaze軟處理器核進行Xilinx平台FPGA設計時所需的技術文檔和IP。注意,這裡的嵌入式軟體工具指用來產生、編輯、編譯、鏈接、載入和調試高級編程語言(通常是C或C++)代碼的工具,以便在處理器引擎上執行。
由於嵌入式系統涉及了軟體和硬體的開發以及兩者的綜合設計,因此其開發是較為複雜的。Xilinx為了簡化基於FPGA的嵌入式開發流程,提供了功能強大、操作簡單的工具集:集成軟體環境——ISE;嵌入式開發套件——EDK。(註釋:ISE是Xilinx公司FPGA邏輯設計的基礎。在這個環境中,設計者可以進行約束文件的編寫,時序分析,邏輯布局布線以及器件編程等。)
EDK自帶了許多工具和IP,可以用來設計完整的嵌入式處理器系統,主要包括Xilinx平台工作室XPS和軟體開發套件SDK。需要注意的是:只有安裝了ISE軟體,才能正常運行EDK,且二者的版本要一致。
EDK的組成模塊有:
1.Xilinx平台工作室(XilinxPlatformStudio,XPS)
XPS是用來設計嵌入式處理器系統硬體部分的開發環境或GUI,是系統設計者構建Xilinx嵌入式系統時必用的工具套件。在XPS中,可以完成嵌入式系統架構的創建、軟體代碼的編寫、設計的編譯以及FPGA晶元的硬體配置。
2.軟體開發套件(SoftwareDevelopmentKit,SDK
SDK是集成的開發環境,基於Eclipse。它支持C/C++,用於嵌入式軟體應用的開發和驗證。
3.其它EDK部分
EDK還包括其它的一些部分,如:用於Xilinx嵌入式處理器的硬IP;用於嵌入式軟體開發的驅動和庫;在MicroBlaze和PowerPC處理器上用於C/C++軟體開發的GNU編譯器和調試器;有關文檔以及一些工程樣例等。
Xilinx的嵌入式開發套件EDK帶有許多的工具和IP,可以用來設計完整的嵌入式處理器系統,並在XilinxFPGA晶元上運行。EDK中包含了開發硬體和軟體所必須的全部工具,可以很方便的添加系統自帶的IP核和用戶自定義的IP核,可以通過調用ISE等其他工具實現布局布線,時序優化等等。可以調用GDB對應用程序進行板上調試及虛擬平台調試。

實現流程


2.1、基於EDK的開發流程
簡化的嵌入式設計流程圖
簡化的嵌入式設計流程圖
一個完整的嵌入式設計流程包括硬體設計和調試、軟體設計與調試,各個步驟相對獨立但又相輔相成。由於嵌入式應用場合多樣,且軟、硬體都可裁剪,因此並不是每個設計都要完成所有的步驟。圖中為基於EDK的嵌入式設計的簡化流程圖。
通常,ISEFPGA開發軟體在後台運行,XPS工具調用ISE軟體提供的功能。XPS主要用來嵌入式處理器硬體系統的開發。微處理器、外圍設備以及這些組件之間的連接問題,另外還有它們各自的屬性設置都在XPS里進行。簡單的軟體開發可以在XPS里完成,而對於更複雜的應用開發和調試,Xilinx則推薦使用SDK工具。硬體平台的功能驗證可以通過硬體描述語言HDL模擬器完成。XPS提供了行為級、結構級以及定時精確級等三種類型的模擬。驗證過程結構由XPS自動產生,其中包括了模擬的HDL文件。設計者只需要輸入時鐘時序、重配置信息以及一些應用代碼即可。模擬細節將在下面的內容中進行相關講述。完成設計后,在XPS中將FPGA比特流和可執行可鏈接格式文件下載,就可以進行目標器件的配置。
完整的嵌入式設計流程圖
完整的嵌入式設計流程圖
完整的EDK開發流程如右圖所示,其主要步驟有:1.創建硬體平台:利用XPS的板級開發包嚮導(BSBWizard)快速構建設計的硬體平台,是EDK設計的第一步。
2.添加IPCore以及用戶定製外設:在XPS中添加所需的IPCore,對於XPS庫中缺少的模塊,需要用戶自行設計。同樣,XPS提供了建立用戶自定義外設的嚮導,可簡化該過程。
3.生成模擬文件並測試硬體系統:生成硬體系統的模擬文件,可選擇行為級、結構級以及時序級模擬,利用ModelSim等工具測試系統,特別是用戶自定義的外設;如果測試失敗,需要返回上一步修改。
4.生成硬體比特流:生成硬體網表和比特流文件,這個步驟類似於傳統FPGA設計的綜合、布局布線、生成編程文件這3個操作。
5.開發軟體系統:針對軟體需求編寫硬體代碼,確定軟體的操作系統、庫、外設驅動等屬性,針對每個應用軟體工程,設置編譯器、優化級別、使用的連接文件等信息。等設置完成後,編譯生成.elf格式的可執行代碼。
6.合併軟、硬體比特流:編譯軟體后,需要將軟、硬體可執行文件合併在一起,生成最終的二進位比特文件。
7.下載:使用JTAG編程電纜或編程器將更新后的最終比特流燒寫到FPGA、PROM、FLASH以及CF卡。
8.在線調試:可利用XMD工具或ChipScope工具調試,通過JTAG編程電纜在線調試,下載可執行軟體代碼、控制執行,並監控相關信息。
2.2、EDK設計比特文件的組成
EDK 配置比特文件的組成結構
EDK 配置比特文件的組成結構
如前所述,最終下載到FPGA的嵌入式比特流文件是軟、硬體比特流合併在一起的,詳細的組成部分如右圖所示。硬體部分比特流包括MHS文件、用戶自定義HDL代碼,二者經過綜合實現后,產生.ngc網表,生成硬體系統的比特流文件;軟體系統包括MSS文件、用戶.c/cpp/asm文件,通過GCC編譯器,生成目標文件.obj,再經過連接合成軟體系統的比特流文件;最後通過Data2MEM過程,將軟、硬體比特流合成完整系統比特流文件,通過JTAG鏈路下載到FPGA晶元中。

添加IP


安裝時候需要版本搭配,如ISE8.1搭配EDK8.1。首先,說說使用EDK加入用戶設計的IP。
1、啟動XPS(xilinx platform studio),生成一個processor system,其中可以選擇處理器,硬IP(powerpc)或軟IP(microblaze),以及可選的IP(BRAM、UART)等。如果這個階段拿不定不要什麼IP,以後添加刪除都可以。
2、啟動Create and Import Peripheral Wizard,創建IPIF,選擇需要的屬性,如是否包括FIFODMA等,系統會自動創建HDL文檔模板,用戶只需要添加用戶程序部分。同coreconnect匯流排連接部分不用用戶操心。
3、使用ISE的Project Navigator,打開第二步生成的.npl文件,添加入自己的代碼,在ISE里進行編譯。
4、如果需要,進行BFM(匯流排功能模型)模擬
5、若在第三步里,用戶對介面有修改,需要重新啟用Create and Import Peripheral Wizard,來生成EDK介面(.pao/.mpd文件)
6、使用XPS - Add/Edit Core Dialog,添加用戶IP到第一步的工程中
7、使用XPS生成IP driver。
8、編譯、下載bit文件到開發板。