Introducere în mediul EDK Lucrare de laborator 2
Implementarea unui proiect cu microprocesor PowerPC DSOCM BRAM Instruction RocketIO Dedicated Hard IP PowerPC 405 Core Data ISOCM BRAM DCR Bus Flexible Soft IP IBM CoreConnect on-chip bus standard PLB, OPB, and DCR Arbiter PLB Processor Local Bus Bus Bridge OPB On-Chip Peripheral Bus Arbiter Hi-Speed Peripheral e.g. Memory Controller GB E-Net UART GPIO On-Chip Peripheral Off-Chip Memory ZBT SRAM DDR SDRAM SDRAM
Implementarea unui proiect cu microprocesor MicroBlaze BRAM Local Memory Bus Fast Simplex Link 01 0,1.7 Custom Functions Custom Functions CacheLink MicroBlaze 32-Bit RISC Core Ar rbiter I-Cache BRAM D-Cache BRAM OPB On-Chip Peripheral Bus UART Configurable Sizes Possible in Virtex-II Pro Flexible Soft IP Bus Bridge Hi-Speed Peripheral 10/100 Memory E-Net Controller Dedicated Hard IP PowerPC 405 Core Instruction PLB Data Processor Local Bus e.g. Memory Controller GB E-Net Arbiter SRAM Off-Chip Memory FLASH/SRAM
Embedded Development Kit Ce este Embedded Development Kit (EDK)? Embedded Development Kit este un pachet de programe de proiectare pentru circuite FPGA Xilinx Kit-ul include toate instrumentele, documentație, IP-uri de care este nevoie pentru proiectarea sistemelor cu microprocesoare PowerPC sau Xilinx MicroBlaze Acesta permite integrarea atât a componentelor hardware cât şi software ale unui sistem dedicat EDK Intro 4
C Code Embedded Development Kit VHDL or Verilog Standard d Embedded d SW Development Flow Embedded d Standard d FPGA Development Kit HW Development Flow Code Entry C/C++ Include Cross the Compiler BSP and Compile the Software Linker Image Board Support System Netlist Package Data2MEM HDL Entry Instantiate the Simulation/Synthesis System Netlist and Implement Implementation the FPGA? 2 Compiled ELF 3 Compiled BIT Compiled ELF Compiled BIT? 1 Load Software Into FLASH Debugger Download Combined Image to FPGA Download Bitstream Into FPGA Chipscope RTOS, Board Support Package
Unelte disponibile în mediul EDK Unelte de dezvoltare software GNU Compilator C/C++ pentru microprocesoarele MicroBlaze și PowerPC (gcc) Debugger pentru procesoarele MicroBlaze și PowerPC (gdb) Unelte de dezvoltare hardware și software Base System Builder Wizard PlatGen generator netlist hardware LibGen generator librarii software SimGen generator modele de simulare Create/Import Peripherals Wizard Xilinx Microprocessor Debuger (XMD) Debuger hardware utilizabil cu modulul ChipScope Pro Analyzer Software Development Kit (SDK) bazat pe Eclipse IDE VPGen generator de platforme virtuale Flash Writer utilitar pentru scrierea memoriilor
Unelte disponibile în mediul EDK Board Support Packages (BSPs) Generator e pentru sisteme ste e de dezvoltare e preconfigurate Xilinx Platform Studio Xilinx Platform Studio (XPS) este un mediu grafic de Xilinx Platform Studio (XPS) este un mediu grafic de proiectare care include toate instrumentele pentru crearea de componente hardware, software și opţional o componentă de verificare
Xilinx Platform Studio (XPS)
Funcțiile ț mediului XPS Managementul proiectului Fișierul MHS sau MSS Fișierul XMP Managementul platformei Setarea succesiunii utilizării uneltelor Setarea platformei software Apelarea uneltelor Managementul aplicației software Debug și simulare Hardware Design HW/SW Simulation XPS Software Design HW/SW Debug
Managementul proiectului Crearea unui nou proiect File New Project sau butonul Selectare opțiuni Base System Builder Base System Builder (BSB) este o aplicație care permite construirea unui sistem hardware pe un sistem de dezvoltare preconfigurat Selectare optiune Blank XPS Project Deschiderea unui proiect existent File Open Project sau butonul Selectare directorul proiectului și selectie fișier.xmp File New Project sau butonul Selectare opțiune Open a Recent Project apoi selecție proiect Informațiile referitoare la proiect sunt salvate în fișiereul Xilinx Microprocessor Project (XMP)
Crearea unui proiect cu ajutorul u opțiunii Base System Builder (BSB) Selectarea sistemului de dezvoltare Selectarea unui tip de procesor Configurarea procesorului Selectarea și configurarea interfețelor I/O Adăugarea perifericelor interne Generarea sistemului software și a linker scriptului Generarea proiectului Fișiere generate: system.mhs system.mss System.xmp data/system.ucf etc/fast_runtime.opt etc/download.cmd pcore directory (gol) system.bsb (optional, dacă este selectat) Directorul TestApp_Memory/src conține (optional, dacă este selectat) TestApp_Memory.c TestApp_Memory_LinkScr.ld DirectorulTestApp_Peripheral/src conține (optional, dacă este selectat) TestApp_Peripheral TestApp_Peripheral/src/TestApp_Periperal_LinkScr.ld
Crearea unui proiect cu ajutorul opțiunii Blank XPS Project Identificarea unei locații pentru proiectul XPS Selectare circuit FPGA, opțional importul unui fișier de tip MHS Din catalogul de IP-uri se selectează procesorul și perifericele Se configurează procesorul și perifericele Se specifică configurația software pentru componentele hardware Se dezvoltă aplicația software Se generează fișierul Bitstream Se încarcă fișierul Bitstream și se lansează în execuție
EDK Tool Flow Library Generation MSS MHS Hardware Platform Generation CompEDKLib IP Models CompXLib ISE Models Testbench Stimulus IP Library or User Repository EDK SW Libraries LibGen Drivers, MDD MPD, PAO PlatGen SimGen.a PCore HDL System and Wrapper VHD system.bmm Behavioral VHD Model Embedded Software Development Synthesis (XST) NGC ISE Tools Application Source.c,.h,.s UCF NGDBuild SimGen Compiler (GCC).o Linker (GCC) NGD MAP NCD, PCF PAR Structural VHD Model NCD system.bit BitGen SimGen ELF BitInit system_bd.bmm download.bit Timing VHD Model Simulation Simulation Generator download.cmd impact
Implementarea Hardware/Software a proiectului Hardware Flow Software Flow data2mem download.bit MicroBlaze / PPC GPIO Arbiter UART EDK Intro 14
Setările platformei software Setează toate opțiunile referitoare la platforma de dezvoltare software Permite o serie de setări referitoare la: Platforma Software Driverul eu pentru tucpu OS și versiunea OS Selectarea librăriilor Frecvența de tact pentru procesor OS și librării Identificarea dispozitivelor periferice stdin și stdout Configurarea OS-ului și a librăriilor selectate Driverere Selectarea driverelor și a versiunilor Frecvența de tact pentru procesor Gestionarea întreruperilor Introducerea funcțiilor pentru gestionarea întreruperilor
Structura directorului proiectului project_directory data - created by default upon project creation etc - created by default upon project creation pcores - created by default upon project creation xps - created by default upon project creation ppc405_0/microblaze_0 - created by default upon project creation implementation - created during PlatGen synthesis - created during PlatGen hdl - created during PlatGen EDK Intro 16
Structura și fișierele ppc405_0 / microblaze_0 include *.h header files libsrc BSP, drivers, etc. lib libc.a file libm.a file libxil.a file boot.o file proiectului Code (default repository if user application is not defined) EDK Intro 17 executable.elf file
Structura și fișierele proiectului pcores Peripheral IP files data system.ucf file Code or user-defined software application etc *.c / *.cpp, *.h files download.cmd d d file fast_runtime.opt file BSDL files EDK Intro 18
Structura și fișierele proiectului xps makefile synthesis system.scr file HDL system.[vhd v], system_stub.[vhd v]* file Peripheral_wrapper.[vhd v] files implementation peripheral_wrapper.ngc files system.ngc, system_stub.ngc stub ngc* file system.bmm file EDK Intro 19
Structura Proiectului Project Directory MAKE PBD MHS MSS mblaze/ppc405_i etc xps code data pcores implementation hdl synthesis CMD OPT OPT.C.H UCF NGC BMM VHD SCR BSDL <ip_name> code include lib libsrc data hdl devl ELF.H.A.O OS/BSP/DRIVER MPD PAO BBD verilog vhdl ipwiz.l og