EDK=Embedded Development Kit,嵌入式開發套件。EDK是xilinx公司開發嵌入式系統的工具。比起xilinx的xilinx ise,二者不同在于,如果僅僅是使用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。(注釋:xilinx 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等其他工具實現布局布線,時序優化等等。可以調用GNU偵錯器對應用程序進行板上調試及虛擬平臺調試。
實現流程
2.1、基于EDK的開發流程
一個完整的嵌入式設計流程包括硬件設計和調試、軟件設計與調試,各個步驟相對獨立但又相輔相成。由于嵌入式應用場合多樣,且軟、硬件都可裁剪,因此并不是每個設計都要完成所有的步驟。圖中為基于EDK的嵌入式設計的簡化流程圖。
通常,xilinx 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設計比特文件的組成
如前所述,最終下載到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,選擇需要的屬性,如是否包括FIFO、DMA等,系統會自動創建HDL文檔模板,用戶只需要添加用戶程序部分。同coreconnect總線連接部分不用用戶操心。
3、使用xilinx 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文件到開發板。
參考資料 >
EDK工具中硬件平臺.技術信息.2021-11-17