Edk Basesystembuilder
Edk Basesystembuilder
By Jason Agron
What is Xilinx EDK?
• EDK = Embedded Development Kit.
• It is a set of tools used to build embedded
processing systems.
• i.e. Systems-On-Chip (SoCs).
• Processors (MicroBlaze, PowerPC).
• Interconnect (PLB, OPB, FSL, Custom, etc.).
• Memories (BRAM, DDR).
• Peripherals (UART, GPIO, Ethernet, Custom, etc.).
• Provides a single environment for…
• Simulation
• Synthesis.
• Compilation.
How Do I Use Xilinx EDK?
• Xilinx Platform Studio (XPS) - the actual tool.
• Design flow…
• First, create the hardware platform.
Select all of the peripherals.
Connect all of the peripherals.
• Second, create the software for the platform.
Write SW to “make things work”.
• Iterate if needed.
• The FPGA has a malleable fabric…
• So both SW and HW are flexible and can be changed…
• At “compile-time”.
• At “run-time” (dynamic reconfiguration).
Important EDK Files
• MHS File:
• Describes all components and connections in a system.
• MSS File:
• Describes all SW drivers associated with components
of a system.
• UCF File:
• Describes the connections of all top-level ports.
• All top-level ports have connections to specific
physical pins on the FPGA.
How To Get Started
• Open up XPS.
• Create a new project.
• Select “File”, “New Project”
• Select “Base System Builder…”
• Provides a wizard to help get basic system
established.
• Click OK.
XPS - Getting Started
XPS - New Project Creation
XPS - Creating The Base System
• Click “Generate”…
XPS - BSB Complete
• Congratulations!!!!
• You have just created a custom
SoC!
• Now click on “Finish”, and you
can begin…
• Using the system.
• Developing custom HW and
SW for the system.
• BSB has just generated a .mhs
file for your system.
• A file that lists all components
and how they are configured
and connected.
• This file can be translated
directly to VHDL or Verilog,
and synthesized to the FPGA.
XPS - Project Tab
XPS - IP Catalog Tab
XPS - Applications Tab
XPS Interface
• System Assembly View:
• Graphical view of system.
• Can edit configurations, port connections, bus
connections, and memory spaces for all components.
• Tabs:
• Project Tab.
• Project info (.mhs, logs, etc.).
• IP Catalog Tab.
• Available peripherals that can be added to the system.
• Application Tab.
• Available SW projects that can be run on the system.
How To Run An Application
• If multiple applications are available, then one
must be selected.
• This is done on the “Applications” Tab by…
• Right-clicking on the application of choice and
selecting “Mark to initialize BRAMs”.
• IMPORTANT:
• Select the program you would like to run (now it will
have a green BRAM symbol next to it.
• Now you must always DE-SELECT the other
applications by clicking “Mark to initialize BRAMs”
(now it will have a red X on it’s BRAM symbol).
How To Run An Application
• Select the application of choice.
• Compile the sources for the application.
• Right-click and select “Build Application”.
• Execute the test on the base system platform.
• This requires the following to be combined…
• Hardware bitstream (.bit)
• Software executable (.elf)
• This is done by selecting “Device Configuration”.
• “Update Bitstream” - combines HW/SW (.bit + .elf).
• “Download Bitstream” - downloads the configuration to the
board.
Over the USB-based JTAG connection.
Build Process (Start To Finish)
• Build your HW system.
• Done for us using the base system builder.
• Use a default SW project.
• Click on “download” bitstream.
• This will go through the entire HW/SW build process.
• Build HW
• Synthesize, ngdbuild, map, par, and bitgen.
• Build SW
• Compile and link.
• Then it will combine the SW executable and the HW
bitstream and download it to the FPGA.
Monitoring Software Execution
On The FPGA
• How do you see what is happening on the FPGA?
• Normally in software you use print() statements.
• The output goes to the screen.
• In this system, STDIN/STDOUT are routed to the
serial port.
• We must monitor the serial port from an external host
to see what is happening.
• In order to “see” what is executing…
• Open up a terminal window.
• Minicom (Linux) or Hyperterminal (Windows).
• Setup the correct communication parameters
• Baud rate = 9600.
Creating New SW Applications
• Select “Software”…
• Click on “Add Software Application Project”.
• Enter the new project name.
• Also choose which CPU to run the application on.
• Now a new application tab entry will appear.
• You can now add/edit sources for this application.
• In order to run this new application…
• Right-click on it, Select “Mark to initialize BRAMs”.
• Instructs the tool that this application is to be “combined” with
the bitstream.
• Make sure to de-select all other applications!!!
• Now, when updating the bitstream, this application will
be used.
Integration of IP Cores