FPGA Soft Processor Design Considerations
EE Times: Latest News FPGA Soft Processor Design Considerations FPGA technology and soft processor cores have the potential to integrate system design into a single FPGA device. From definitions to implementation, what do you need to know to get there? | |
RC Cofer and Ben Harding (10/12/2005 11:10 PM EDT) URL: http://www.eetimes.com/showArticle.jhtml?articleID=172300690 | |
With so many available processor design options design teams must make the difficult decision to choose the solution that best fits their specific project requirements, while supporting extended project life expectancies. All design teams struggle under the pressure to shorten product development cycles while taxed with incorporating features superior to existing competitive products. This ever-shrinking development cycle also drives higher levels of efficiency and design flexibility. The combination of FPGA technology and soft processor cores has the potential to allow the integration of system design into a single FPGA device. This combination can provide previously unavailable design options. The technology evolution enables design teams to deal with their complex design challenges and rapid system development schedules. Embedded FPGA Processor Definitions The three primary IP core categories include hard, firm, and soft cores. Hard IP cores involve the implementation of a silicon-level circuit within the FPGA fabric. Soft IP cores are design elements that can be implemented within the FPGA fabric. Soft cores are commonly implemented within an HDL language such as VHDL or Verilog. Firm IP cores are also design elements, which can be implemented within the FPGA fabric. Firm IP cores have a higher level of optimization and are often targeted for a specific device architecture or device. Firm cores are traditionally less portable than soft cores. Firm IP cores traditionally have a mix of higher performance and more efficient resource utilization than do soft core implementations of the same functionality, given that they take advantage of specific device and architecture features. This article will not focus on the differences between firm and soft cores and will refer to firm and soft cores simply as soft cores. Some of the advantages of designing with soft IP cores include:
All of the benefits and characteristics of soft IP cores are realized by soft processor cores implemented within FPGA components. A popular soft processor core example is Xilinx’s MicroBlaze processor core. This soft processor core is a 32-bit Reduced Instruction Set Computer (RISC) with the following characteristics:
The MicroBlaze can operate at up to 200 MHz within a Virtex-4 (4VLX40-12) component. The range of resources required to implement a MicroBlaze soft processor is between 900 and 2,600 Xilinx Look-Up Tables (LUTs), depending on how the processor is configured. Design Selection Factors
The following sections address these design factors in more detail. Cost The first effort necessary to justify implementing a design with a soft FPGA processor core is completing a cost analysis that takes into account the potential benefits of FPGA technology. This evaluation is a gate to further consideration of an embedded FPGA soft processor implementation. Performance and Power In order to compare the relative performance of soft processor cores a common processor benchmark approach must be used. Currently the most common benchmark is the DMIPS (Dhrystone Million Instructions Per Second) benchmark. The DMIPS benchmark is based on running an algorithm on a targeted processor core to measure its integer processing capabilities within a defined time period. Additional performance considerations include the architecture of the soft processor core and its suitability for the targeted application. Factors to evaluate include:
Several factors influence power consumption including speed of operation, the number and type of resources required to implement the soft processor core and the characteristics of the FPGA component including static and dynamic power consumption vs. operational speed and temperature. One of the challenges associated with FPGA design is the difficulty of estimating power consumption. In an ideal development flow, schedule and resources will be allocated to design evaluation on a targeted development platform with an identical target FPGA component and soft processor implementation. Design and Development Tools
FPGA design tools include the traditional development environments for capturing and synthesizing HDL code, simulation, place and route, debug and download of the design to the target FPGA platform (See Figure 1). Operating System Considerations Some important OS considerations include interrupt latency, kernel size, implementation of a robust set of services, and a collection of full-featured middleware. Some example middleware components include:
Processor cores typically have a list of certified operating systems that have been pre-verified. If the design team does not have experience with the selected OS, it is advantageous for the team to be trained on the specifics of the OS to reduce development time and eliminate issues that could be encountered during development. Typical OS components include:
The debug phase of a design will be iterative by nature and can consume a significant percentage of a design schedule without the correct tools and design access. The ability to efficiently debug a design can save weeks design effort and schedule. Robust debug features and capability are very important design efficiency factors. Some of the most effective tools for debugging a soft processor core design include:
Another area to evaluate involves a manufacturer’s level of support for soft processor design. Important support elements include:
The following design factors are often overlooked by design teams new to implementing embedded FPGA soft processors. These factors should be given special consideration during each design cycle. Making a mistake in any of these areas may result in a significant impact to a project's cost or schedule.
As an example soft processor implementation, consider a MicroBlaze processor optimized for performance targeted to a lower-cost device family. The design example will implement a relatively minimized functional peripheral set in order to provide simplified resource utilization to processor performance ratio. We will also consider the tools required to implement this processor core and potential tool flow options. Finally we will evaluate available operating system alternatives. The tools required to implement a MicroBlaze processor design include a Xilinx Embedded Development Kit (EDK), Xilinx FPGA design tool (ISE) and Mentor Graphics Simulation Tool ModelSim. The primary tools within EDK include Xilinx Platform Studio (XPS) and Software Development Kit (SDK). XPS is used to build and configure the processor base system. This tool supports the implementation of the soft processor core and associated peripherals, memory map, bus interconnections, hardware and software configuration and creation of low-level drivers. The tool flow utilizes the ISE toolset to synthesize and implement (place and route) the soft processor and associated peripherals. When building a soft processor system XPS supports a simplified design flow leveraging existing evaluation board configurations. This design flow is called base system builder. The SDK environment is an Eclipse-based implementation that supports efficient standardized software development and debug. Within the SDK environment it is possible to simulate the code targeted to the soft processor target using either a cycle-accurate simulator or a virtual hardware platform capable of providing visual feedback within a console-based window supporting emulating system I/O functionality. Design debug can be performed on the target hardware system via a JTAG bus interface. Xilinx’s ChipScope Pro software provides another level of embedded logic and bus analysis capability to support FPGA system-level design evaluation and debug. The design example is a Xilinx MicroBlaze soft-core processor implementation optimized for performance. The target FPGA device is a Spartan-3 XCV3S1500 speed grade-5 component. The Spartan-3 family has been cost-optimized for cost-sensitive applications. The benchmarked design example includes UART and timer functions to support the required benchmark functionality. The soft processor implementation also includes a single FSL port, a single hard multiplier, pattern-compare instructions and a barrel shifter block. Processor execution is out of on-chip memory to ensure maximum processor performance. This benchmark implementation utilizes 1,318 LUTs and achieves an operational speed of 100 MHz. The benchmark performance achieved is 92 DMIPs (Dhrystone 2.1) for a relative performance level of 0.92 DMIPS/MHz. Another potential system consideration is the implementation of an operating system for the MicroBlaze soft processor core. The Operating System options for the MicroBlaze soft processor are restricted by the absence of an MMU block. Operating systems which currently support MicroBlaze include: Summary This article presents the implementation of soft-core processors in FPGAs, and some of the decisions and design tradeoffs which must be made during the design process. Making informed decisions during the design process reduces the time required to design, implement, debug and test an FPGA soft processor-based project. Important design factors are reviewed, common design oversights are discussed and a benchmarked design example is presented. The design example reviews required tools, tool flow and interaction and potential operating system options. Soft processor design teams will benefit from a system-oriented design approach, which considers the long-term effects of design decisions at each design phase. With a solid understanding of the overall design cycle, development tools options, and benefits of key design trade-studies, the design team can avoid many common design mistakes and oversights resulting in a more efficient and flexible design cycle. About the Authors Ben Harding has 15+ years of hardware design experience including high-speed design with DSPs, network processors, and programmable logic. He also has embedded software development experience in areas including voice and signal processing, algorithm development and board support package development for numerous Real-Time Operating Systems. Ben has a BSEE from University of Alabama-Huntsville with post-graduate studies in Digital Signal Processing, parallel processing and digital hardware design. Ben has presented on FPGA and processor design at several conferences and is the co-author of the book Rapid System Prototyping with FPGAs published by Elsevier.
| |
All material on this site Copyright © 2005 CMP Media LLC. All rights reserved. Privacy Statement | Your California Privacy Rights | Terms of Service | |
Related Articles
- CPU Soft IP for FPGAs Delivers HDL Optimization and Supply Chain Integrity
- Control an FPGA bus without using the processor
- Efficiency and memory footprint of Xilkernel for the Microblaze soft processor
- Single event effects (SEEs) in FPGAs, ASICs, and processors, part I: impact and analysis
- Power Supply Design Considerations for Modern FPGAs
New Articles
- Quantum Readiness Considerations for Suppliers and Manufacturers
- A Rad Hard ASIC Design Approach: Triple Modular Redundancy (TMR)
- Early Interactive Short Isolation for Faster SoC Verification
- The Ideal Crypto Coprocessor with Root of Trust to Support Customer Complete Full Chip Evaluation: PUFcc gained SESIP and PSA Certified™ Level 3 RoT Component Certification
- Advanced Packaging and Chiplets Can Be for Everyone
Most Popular
- System Verilog Assertions Simplified
- System Verilog Macro: A Powerful Feature for Design Verification Projects
- UPF Constraint coding for SoC - A Case Study
- Dynamic Memory Allocation and Fragmentation in C and C++
- Enhancing VLSI Design Efficiency: Tackling Congestion and Shorts with Practical Approaches and PnR Tool (ICC2)
E-mail This Article | Printer-Friendly Page |