Accelerating Embedded Software Development with Rapid Prototyping
Challenge of Embedded Software Developers
The success of today’s large-budget ASIC projects depends on the up-front choices made for their verification. Growing design complexity, demand for more features, increased speed and large amounts of embedded software in ASIC designs means the choice of hardware-assisted verification method is more important than ever before to design teams. Because traditional hardware-assisted verification methods have not kept pace with the changes in ASIC design, developers are being forced to find complementary verification methodologies to accelerate software development.
For example, an HDTV application requires over 2 million lines of software C code and usually requires coordination between distributed hardware and software development teams worldwide. These software development teams often need a common, easily, deployable system to develop, test and integrate software as quickly as possible. According to market surveys (see Figure 1 below), software development teams have outgrown hardware teams as SoC designs migrate to smaller semiconductor processing technologies. The research shows that SoCs designs targeting 45nm require that close to 70% of the engineers now write software.
Figure 1: Percentage of engineers writing software
Exploring High-Performance Verification Methodologies to Remain Competitive
Traditional verification methodologies, like software simulation and hardware emulation for embedded software development, may not be enough or may require a complimentary methodology to remain competitive. The market of opportunity is shortening and competition is as fierce as ever. IC design costs continue to rise as complexity continues to grow exponentially, and existing verification methodologies are not keeping up with the demand of productivity. If embedded software development is to have a chance of completing on time then software development must start as early as possible.
Hardware-assisted rapid prototyping is a methodology that should be considered in the overall design verification process. FPGA-based prototyping is fast becoming part of the entire verification process for software development. Research shows that over 70% of the designs today are being verified using FPGA-based prototyping. These hardware prototypes are very popular with software development teams as they provide direct access to a prototyping system operating near real system-speed with standard interfaces including USB, PCIe, Gigabit Ethernet, and SATA. Software simulators will continue to provide hardware designers a means to quickly verify designs. However, software simulators are extremely slow and time consuming and can only perform a fraction of the entire software development effort.
Traditional “big-box” emulators may be well suited for some very large designs, such as CPUs or GPUs, but are less applicable for the majority of designs, especially the ones containing increasing amounts of embedded software and/or high-speed external interfaces. Emulators provide an incremental performance boost for some software development but these systems are expensive, difficult to deploy to software teams worldwide and may require development of specialized sub-systems to interface with the real-world / real-time speed requirements thus adding another degree of complexity to the overall verification effort. Rapid prototyping address the challenges associated with these traditional verification methods by allowing early access to pre-silicon hardware prototypes, at or near-speed performance for real-time software development, and an easily- deployable system to share across design and software development teams worldwide.
The Value of Rapid Prototyping
Software developers no longer have the luxury to wait for silicon to come back or to settle for a software simulation environment that may not be able to run system software. Many processor-based designs require a debug environment to conduct trace information and bus analysis or to access the processor registers. Rapid prototyping provides direct interfaces such as JTAG to access the system in real-time enabling early hardware/software integration for system verification. Software developers rely on having a system that is fast in order to run operating systems and application software for an easy integration of external system components and interfaces. Early software development often leads to an accelerated software development schedule where little or no development is required after silicon is delivered. This added advantage helps maintain the competitive edge.
By using a rapid prototyping platform, software developers have access to a high-performance system running at or near system speed. This platform allows real-time exercising of the design for real-time software development. Compared to software simulation, rapid prototyping enables software developers to test all of the components and protocols of an embedded system. For example, USB devices can directly interface with the hardware system or real network hardware can send or receive data by using standard interfaces like PCIE or Gigabit Ethernet. “Big-box” emulation systems can connect to real-world interfaces with speed bridges, but at best they are a compromise; not only do speed bridges add a new level of complexity to the environment and open up additional failure modes, but they are not able to work in real-time. Hardware prototypes use standard high-performance expansion cards to directly connect to real-world interfaces, which enables much more realistic validation while reducing complexity.
With more software developers required on a single project and dispersed throughout the world, rapid prototyping systems enable easy deployment and affordability. Compared to "big-box" emulation systems, rapid prototyping systems are compact and fit on a typical desk and can easily be shipped or deployed to multiple software development teams. In addition, the easy deployment of rapid prototyping systems allows developers to work with partners for integration testing and provide the capability to demonstrate the system to potential customers and investors worldwide.
Expanded Rapid Prototyping Platform
For example, a rapid prototyping platform such Synopsys' Confirma helps to solve the challenges associated with traditional approaches. It brings all the critical components together into a comprehensive and affordable solution that can enable design teams to take advantage of the benefits of hardware-assisted verification. The platform offers embedded software developers a way to accelerate software development by having a hardware prototyping system that operates near system-speed to develop real software applications. There is no doubt that embedded software content will continue to grow in complexity, and rapid prototyping is the best verification choice to accelerate development, maintain cost effectiveness and retain a competitive advantage.
Editor’s note: This article first appeared in a Synopsys company newsletter. We are using it with their kind permission. You can find a weblink to the original text on the Synopsys website: