• LOGIN

Wesley Peck

Home › Tutorials › FPGA Tutorials

Introduction to EDK

The Xilinxi Embedded Development Kit (EDK) is a suite of tools used to develop embedded system-on-chipi designs. These designs can incorporate a wide range of soft- and hard-IP cores such as microprocessors, interconnects, memories, and an assortment of peripherals. The EDK tool suite provides a single environment for design, simulation, synthesis, and compilation.

System Design Using EDK

Embedded system design using EDK consists of two separate but interacting steps. First, the system-on-chipi hardware is designed. FPGAsi have a malleable fabric which can be reconfigured with any circuit, thus, hardware design consists of two sub-tasks: developing custom circuitry and building integrated systems. The first sub-task is to develop custom circuitry for use in the system-on-chipi design, though this step is often unnecessary because of the plethora of existing soft-IP cores which can be used off-the-shelf. Custom circuitry is usually developed using a hardware development language such VHDL or Verilog in addition to a synthesis tool which can translate the high-level hardware description into the low-level gate logic. The Xilinxi Project Navigator tool, included in the Xilinxi ISE product, supports VHDL/Verilog development, VHDL/Verilog synthesis, and VHDL/Verilog simulation (through third party simulators such as ModelSim).

Once the required set of soft-IP cores has been developed, an entire system-on-chipi design can be created using the Xilinxi Platform Studio tool. This tool allows designers to combine all available IP cores into a single design. In typical designs this is accomplished by interconnecting all of the required IP cores using a bus architecture. A microprocessor is usually connected to the bus as well, allowing for the system-on-chipi to be controlled using software programs. The end result is a programmable system-on-chipi which includes a variety of soft-IP peripherals, all of which can be controlled by the software.

The second step in system-on-chipi design using EDK, then, is the development of software to control the microprocessor and all of the connected peripherals. This step is as complicated or as simple as required by the system being designed. The system-on-chipi hardware designed in the first step presents a low-level interface to the software. This low level interface can be programmed directly by the developer in what is often called "bare metal" programming. In this case the system programmer is responsible for correctly implementing the low level details of interacting with any given peripheral and often requires detailed knowledge of assembly programming and low-level C.

It is also possible to install an embedded operating system on the system-on-chipi design. This allows the system programmer to work at a high level of abstraction and can ease the development of embedded system-on-chipi designs. Embedded operating systems, however, would not support any custom circuitry developed for the system-on-chipi design, though they do often include support for interacting with commodity soft-IP cores. If the embedded operating system does not support a peripheral in the system-on-chipi design then it is the responsibility of the system programmer to provide support usually though developing a custom operating system driver. Thus, even when embedded operating systems are employed, knowledge of assembly and low-level C may be required.

System Implementation in EDK

Once the embedded system-on-chipi design has been completed it must be translated into an implementation suitable for the FPGAi's malleable fabric. Like the design phase, this phase consists of two phases. Unlike the design phase, however, the implementation process is automated using CAD tools. In the first phase of implementation, called the synthesis phase, a set of synthesis tools will translate the design from the high-level hardware description language into a gate-level description for a specific FPGAi. The Xilinxi development suite provides the Xilinxi Synthesis Technology (XST) for soft-IP core synthesis and the Xilinxi Place and Route (PAR) tool for placement and routing. When using the Xilinxi development suite, during the synthesis phase the following happens in the given order:

  1. System-on-chip elaboration
    In this step the graphical or textual high-level system-on-chipi design is converted to a single VHDL design for use by the synthesis tool. This step is necessary because the system-on-chipi design is done using graphical tools or human readable text files which are not directly usable by the CAD system. This step simply converts the human representation of the system-on-chipi design into a well-defined computer readable format.
     
  2. Soft-IP core synthesis
    In this step the XST synthesis tool will synthesis the VHDL design produced by the elaboration step. Synthesis proceeds by converting each soft-IP core in the design into a netlist, also commonly called an EDIF file. A netlist is a low-level circuit description which contains only primitive circuit instantiations and connectivity information. The netlist produced at this step is a logical description of the circuit, meaning that the netlist consists of core instantiations, FSM descriptions, adders, multipliers, shift-registers, connectivity information, etc.
     
  3. Netlist translation
    This step translates the netlist produced in the synthesis step into a lower-level netlist. The translated netlist from this steps is still a logical description of the netlist except that the circuit is described in terms of boolean gates, flip-flops, RAMs, decoders, etc.
     
  4. Physical Mapping
    The physical mapping step takes the low-level logical netlist description produced by the translation step and maps the logic circuit description into a physical circuit description. The netlist produced describes a physical circuit inside of a particular FPGAi target. Thus, the netlist after this step is a physical description consisting of logic cells, I/O cells, and other components which physically exist inside of the target FPGAi.
     
  5. Netlist placement
    At this point their is a physical netlist description for each of the original soft-IP cores. In the placement step all of the physical netlists are placed into the FPGAi. Placement takes into account any constraints which might be present for a netlist, connectivity between netlists, and many other things. At the end of this step all of the physical primitives described in every netlist is placed at a particular physical location within the FPGAi.
     
  6. Netlist routing
    Once all primitives have been placed at physical locations within the FPGAi, the connectivity between communicating primitives much be established. The routing step routes wires from the outputs of one primitive to the inputs of other primitives, thus establishing a primitive communication channel between the primitive components. At the end of this step all of the communication in the original soft-IP core description is established at the physical layer within the FPGAi.
     
  7. Bitstream generation
    At this point all of the soft-IP cores in the system-on-chipi design have been placed physically withing the FPGAi and the communication between the primitive components has been established. The last step in the process is bitstream generation. In this step the physical design is converted into a bit-level description. FPGAsi are based on look-up-tables (LUTs) and configurable signal routing logic which is SRAM based. Thus, by setting or clearing the correct bits inside of the FPGAsi logic and routing SRAMs a particular circuit can be described physically within the FPGAi. Bitstream generation determines the configuration (one or zero) or every logic or routing SRAM bit in the FPGAi. At the end of this step the original system-on-chipi design can be downloaded to the FPGAi for execution.

In the second phase, the compilation phase, the software program which controls the system-on-chipi design is compiled from the C source and assembly into the binary format used by the microprocessor. The Xilinxi development suite provides an industry standard GCC software compiler suite which can compile C, C++, or assembly for all of the microprocessors which are supported. After the software has been compiled into a binary executable by GCC, the hardware and software are combined into one overall bitstream. This bitstream is used to initialize the SRAM fabric of the FPGAi with the hardware design and the system-on-chipi memories with the software program. Thus, when the system-on-chipi is boot-strapped any microprocessors in the system will execute the software associated with them.

‹ FPGA Tutorials up Base System Builder ›
  • Printer-friendly version

Navigation

  • Home
  • EECS 388
  • EECS 665
  • Glossary
  • Search

Outline

  • EECS 388 Laboratory
  • EECS 665 Laboratory
  • Tutorials
    • FPGA Tutorials
      • Introduction to EDK
      • Base System Builder
      • XPS Interface
      • Memory-Mapped I/O
    • MicroBlaze Tutorials

(C) 2008 Wesley Peck
All Rights Reserved