Feature

Platform-Based Design: The Pragmatic Solution for SoCs

by Pete Hardee

The time and cost involved in designing multi-million gate SoCs (systems-on-chip) from scratch has become so great that few companies can afford totally new, original designs. Thus, some form of IP re-use is accepted as essential, but re-use has proven to be difficult to realize in practice. The industry's response has been to move to platform-based design as a way to speed new SoCs to market and control costs. Platform-based design is the pragmatic solution, both for semiconductor companies trying to deploy their IP portfolio effectively to help fill their fabs, and system houses trying to get new products to market quickly.

The platform-based design strategy is not just for hardware. As a matter of fact, it really pays off by leveraging existing software investments. The systems house can leverage existing application software tasks and middleware in several derivatives instead of reinventing the wheel each time. Software re-use is enabled by provision of a layer of firmware that hides inessential details of the platform hardware from the software, a layer known as the 'Hardware Abstraction Layer' (HAL). Plus, by creating a platform early in the design process, software designers can use that platform to develop their firmware well in advance of chip fabrication.

Unless IP re-use is considered from the start, traditional ASIC design makes it extremely difficult to change major IP blocks because all of the interfaces to the IP blocks are hard coded into the design. If major blocks are added, new hardware and software interfaces must be added to existing blocks.

Inter-twining an IP block's behavior with its interface in this manner means that, in order to offer a strong yet flexible IP portfolio, semiconductor vendors are forced to maintain a large IP repository including multiple variants of the same function for different busses. Add to this the fact that the models of many IP blocks are too low-level and it's clear to see why the much vaunted era of wide-scale IP re-use has not yet materialized.


Platform-Based Design: The Pragmatic Solution for SoCs Continued…


Platform-based design defined

What exactly is a SoC platform? It's the creation of a stable core-based architecture that can be rapidly extended and customized for a range of applications. The big benefit of starting with a SoC platform is that the base design, including memory and some common peripherals, is already optimized and verified.


 Click to enlarge…

 Figure 1
Platform-based design is the creation of a stable core-based architecture that can be customized for derivative platforms

Derivatives can be easily created by adding different software or hardware to the base platform. The design group using the platform, therefore, only needs to focus on creating their value-added part of the design. This significantly shrinks the design time and goes a long way towards ensuring first-time design success.

Platforms are ideal for a wide variety of consumer, computing and communications products. STMicroelectronics, for example, has a DTV platform based on the company's ST20 32-bit CPU that covers a wide range of digital televisions, from low-end to high-end. System companies can use this platform and add or delete functions, such as MPEG decoding and hard disk storage, very quickly.


Why it makes sense for semiconductor companies

It's now imperative that semiconductor manufacturers provide their customers with the most innovative SoC solutions. Semiconductor companies have found that they can compete not just on price and turnaround time, but also on the basis of their IP library and the base platforms they can provide to get customers designs out quickly. Starting with a good platform also ensures more first-time design successes and, therefore, higher fab volume as companies develop new products to meet shrinking market windows.

Platform-based design (PBD) is a strong response from the semiconductor industry to provide internal product groups and system-house customers with silicon architectures and a range of IP, with enough flexibility to offer families of products for a given range of applications. With PBD, semiconductor companies can achieve enough flexibility to satisfy their customers but stay within the limits of their IP portfolio and manufacturing process availability.


 Click to enlarge…

 Figure 2
The platform developer creates a base system from which derivatives can be quickly generated with customized hardware and/or software

Semiconductor companies now can compete on their basis of their platforms, which can provide higher margins than standard IP components because they can speed new product design significantly. The winners will be those semiconductor houses that enable greater customer flexibility and provide a wealth of IP alternatives for customization.







Platform-Based Design: The Pragmatic Solution for SoCs Continued…


The tool requirements for platform-based design

To provide flexibility for its customers while making it much faster to get new products to market, there are some specific challenges that must be met to implement at PBD strategy:


 Click to enlarge…

 Figure 3
The platform user adds software and/or custom hardware for the particular application

Only recently have platform-based design tools come to the market, and it's very important that the semiconductor company pick a tool that is proven in multiple design and that provides both the ability to create new base platforms and the ability for the customer to easily customize the platform. It's also essential that the tool provide analysis capabilities so customers can try out different alternatives, judging which is the best way to extend the base architecture.

A key requirement for platform-based creation is design using the C language. More and more, the software component of PBD exceeds the hardware component. C is the language of choice for software design. Therefore, it just makes sense to start the hardware design in C for co-simulation with the software.


One of the reasons that many semiconductor companies have embraced SystemC was that they realized that a higher-level language was required for platform creation and distribution. Once the designer works in Verilog or VHDL, it's too time-consuming to create and evaluate different design alternatives. A higher level of abstraction is required. Also, SystemC provides a standard language for IP model distribution. It's essential that any platform-based design tool work with the SystemC language.

Interface Synthesis: The Key to Platform-Based Design

Interface Synthesis is the key enabling technology for platform-based design. By using Interface Synthesis, designers can rapidly turnaround platforms for many different derivatives for a particularly product line. Interface Synthesis allows major hardware components, such as processors, DSPs, memories and peripherals, to be updated or changes. For the software, Interface Synthesis automatically generates the memory map for registers and the software drivers to communicate between the hardware and the software.

At the beginning of this article, the issue of separating the behavior from the interfaces was discussed. This is a key requirement for Interface Synthesis. This makes swapping our one piece of IP for another much easier - only the interfaces need to be changed. The behavior stays the same.

Here's how CoWare's Interface Synthesis works. After performing analysis, the platform designer assigns functional blocks to either hardware or software and selects abstract communications protocols for each block interface. Interface Synthesis synthesizes the interfaces between the hardware and other hardware and software elements, elaborating the abstract protocols into the full detailed bus protocol for the design.

Platform-Based Design: The Pragmatic Solution for SoCs Continued…


Need to try a different architecture or variation? Designers can easily examine new SoC variants by choosing a different hardware-software partitioning or different blocks and using Interface Synthesis to create another platform. By simulating the platform, the designers can decide which is the best for a particular application.

With Interface Synthesis, the interface between the IP block and the target processor or system bus can be designed without any detailed knowledge of the processor or bus specifications, protocols, timing diagrams, memory map or interrupt vectors. All of this knowledge is captured as part of the base platform.

Many of today's designs require multiple processors. Interface Synthesis adds even greater value for these complex SoC designs. These multi-processor designs have so many possible architectures that it's essential to explore and simulate to find the right architecture - often the performance and power differences between one architecture and another can be quite significant. By using Interface Synthesis, it's much faster to design these complex SoC platforms.


 Click to enlarge…

 Figure 4
Interface synthesis automates the creation of the interfaces between the bus and everything on the bus

Synthesizing the software interfaces

Interface Synthesis is not just for the hardware connections. As part of platform creation, a detailed Application Programming Interface (API) can be automatically generated, making it very easy to map embedded software to the target processor(s). This API consists of low-level software drivers and header files giving a comprehensive and clear link to the platform's memory map plus make files to help the software developer compile the program to the target processor correctly. Hence, much of the HAL is created automatically, both promoting easier software re-use and ensuring the software is less affected by memory map changes in derivative platforms.


Providing a platform for software development

By adopting a platform-based design methodology, the semiconductor company can provide a fast virtual prototype that can be used early in the design process to debug both hardware and software prior to having access to the physical prototype. The customer can use the modified platform as a virtual prototype for the particular application. With a virtual prototype, designers can identify and fix any issues related to communications between the hardware and software, timing of this communication, and servicing of interrupts.

The designer can co-verify the software working on the hardware with this high-level platform. Designers do not have to wait for the physical prototype to identify and resolve key issues. The cost associated with finding and correcting problems in the actual hardware prototype is astronomical, and if these problems are not found early enough in the design cycle, the product may not even meet the market window.

The re-spins, when using a virtual platform, are at the front-end of the design process, not at the end after the physical prototype is returned. The hardware teams have the ability to add hardware to the core platform, verify the hardware using the "real" application, update the hardware based on the results of running the real application, and continue this cycle with a high level of confidence of the product's completeness.

The same is true for the software teams. Re-spins are easily accomplished through Interface Synthesis for multiple cores and linking the modules through the API. The virtual platform allows the software and hardware teams to work in tandem throughout the design cycle rather than requiring that the software team wait until an actual hardware implementation is finished.

Platform-Based Design: The Pragmatic Solution for SoCs Continued…


The customer's platform

A platform is a base upon which customers can expand or modify. Interface Synthesis makes modification much easier because the interfaces are automatically generated. Customers can simulate with different hardware and software alternatives to determine what modifications give them the mix of performance and power that they need for their application.

Platform-based design: essential for fast-moving markets

Using an ASIC approach to design a SoC takes too long, makes a design that's difficult to change, and often makes companies miss important deadlines. A platform-based design strategy will speed current and future designs. It particularly makes sense as a value-added service for semiconductor manufacturers with strong IP portfolios.


 Click to enlarge…

 Figure 5
Caption: Platform-based design significantly cuts design time. STMicroelectronics found that initial design time was cut from 24 months to six months and derivative design time was cut from 10 weeks to 2-3 weeks.

To effectively implement platform-based design, look for a tool that does much of the tedious interface creation work for you. Make sure this tool speeds both hardware and software design and provides a fast co-design and co-verification environment.







Pete Hardee is director of marketing at CoWare, Inc.