Array
(
    [content] => 
    [params] => Array
        (
            [0] => /forum/index.php?threads/platform-free-design.501/
        )

    [addOns] => Array
        (
            [DL6/MLTP] => 13
            [Hampel/TimeZoneDebug] => 1000070
            [SV/ChangePostDate] => 2010200
            [SemiWiki/Newsletter] => 1000010
            [SemiWiki/WPMenu] => 1000010
            [SemiWiki/XPressExtend] => 1000010
            [ThemeHouse/XLink] => 1000970
            [ThemeHouse/XPress] => 1010570
            [XF] => 2021370
            [XFI] => 1050270
        )

    [wordpress] => /var/www/html
)

Platform Free Design

simguru

Member
I've seen a lot of talk about "platform based design" in the last few years. As far as I can tell this mostly pushed by folks who have a platform to sell (e.g. ARM, TI, MIPS...). For me the "platform" is not a choice you would want to make at the start of the design process, but something to do after a lot of the app level software and system requirements are known. I.e. system design should be mostly a software development exercise, with no commitment to platform until you start making hardware decisions.

Is there really a future in "platform based design"?
 
I think the issue boils down to cost.. But just to help us with terminology, , I suggest a nomenclature of what I mean by the different terms.. (these are not terms I invented, but rather gleaned from among the first books on platform based design)

To start at the top (pun intended), System Design essentially is (and should be) hardware independent. If you study the famous "Y" chart, the three independent axes are Behavior, (also called as system specification or system design), Architecture (the hardware/software combination that executes any application) and Implementation that binds a specific behavior to a specific architecture. In this context, behavior is and decided independent of the implementation vehicle and then subsequently mapped onto various architecture choices to decide which architecture best suites the needs of that System Design.

This is in my mind, the ideal top-design design approach.

However, consider a scenario where a System Design company that goes through this process for their first design, and arrives at a decision on the "suitable architecture i.e. platform".. for that design.

If, for the second design, they are to do the same process and come up with a "different" platform, the cost structure to acquire, train, deliver and support products on a platform (outside of the core IP costs itself) are so high, that companies are loathe to re-invest that cost again for another design.

So, even if they don't throw away the whole architecture (i.e. processor(s), + OS(es) + IP + on-chip-communication structure), they tend to stay with one processor/OS combination and tweak from there.

Given that the processor costs (again, I talk about IP + training + delivery + support) are so high, the migration away from a specific processor is pretty hard to do, economically. Not that it can't be done, but it is usually not attempted.

In fact, if you study the system companies, they tend to have an in-house processor choice that is pretty consistent (ARM, MIPS, or Custom (tensilica, etc));
Even among the micro-controllers they tend to standarize on one (8051, Zilog, etc.)

Recognizing this, it makes sense for companies to "leverage a platform" of previous processor/OS/BUS/peripheral combos and that is what is a platform.

In fact, if you consider the nomenclature for Platform Based Design, they tend to be
"top-down" - generate the architecture that is best suited for the behavior you start from,
"bottom-up" - Find adjacent markets for the platform that you already have in some way, shape or form
"middle-out" - make some selections the same, but let others be decided based on context.
"Configurable" - where an on-board FPGA component will let you select the peripherals to go on the FPGA part and either the processors are hard (ARM as in the case of the Xilinx announced platforms) or soft processor.

Its just that the cost investment to a do a top down platform is so high, you have to leverage it across many design starts. Terminology wise you either have
"Platform" design or "Derivative" design, where the derivative uses a previously instantiated platform.
 
Some good reading about platform-based design

kvkumar has posted an excellent reply to simguru's posting about "Platform Free Design" including a good description of several approaches to platform-based design, and the motivation for System/SoC companies to develop a platform as a base for doing design derivatives in a domain.

As one of the early writers about the platform-based design concept as witnessed in SoCs (the book "Surviving the SOC Revolution - a guide to platform based design", by Henry Chang et al, Springer (Kluwer originally), , written 1998, published 1999 - which is 12 years ago) I can make the observation that platform-based design is an observation of how companies do the design of complex systems - it never was and is not something "pushed by folks who have a platform to sell". And a processor is not a platform, although processor companies may have platforms for subsystems as well as processors. Often Platform-based design (PBD) is an internal design strategy and what you see from the outside are the derivatives. At DAC 2010, Ken Wagner of PMC-Sierra gave an excellent talk about how they use PBD. I blogged about this last summer at Taken for Granted, specifically at Taken for Granted » Day 2 of DAC 2010: The return of the platform

Since 1999 there have been many things written about PBD, its relationship to high-level or system-level design, etc. (I have written a few more things in the intervening 12 years). So there is lots more to read if you want to really understand it. But hey - why not go back to the classics?
Grant Martin
Chief Scientist
Tensilica
 
Last edited:
a very nice explanation given by kvkumar and gmartin.. just to add more on that

The mission of any electronic design company is to address the problem of time-to-market (TTM) and maintaining low development cost. It is becoming more and more crucial to shorten the product life cycle to accommodate the rapid changing, technology hungry market demand. With the ever shortening TTM, the only way design companies can meet their goals is through IP reuse. which in turn necessitates building a solid, extensible architectural platform.

My main focus here is to point out the IP reuse through platform based design approach:

IP-Reuse simply means reusing some part of the design previously done by others for our design. In some sense every design benefits a lot from the previous work either in terms of technology or in terms of design techniques. IP Reuse refers to direct insertion of a part of design from an existing design. IP Reuse may refer to reuse of designs within a design group, within a company or from external IP providers.

A big boost in design productivity at the higher level where behavior can be described through functionality without having any details about the hardware (defined through HDL) is provided by making design technology independent, so platform based methodology is provided for an architecture independent system design as well as for IP-reuse at the architecture level.
 
Back
Top