In the long run, designing for reuse helps bring products to market faster and with higher quality.
The market success of a product is governed by multiple factors, including when the product is launched, product quality, cost, feature set, and how well the product implements the given features. In such a competitive scenario, each and every aspect of the design cycle is considered for optimization. Reusing IP for product development has long been considered a promising option to deliver on most of these factors. In this column, we extend the concept of reusable IP to system design.
Intellectual property (IP) is a commonly used term in the semiconductor industry, where it is defined as a logic block used as a building block for a silicon design. Before getting into the details of IP use in system design and its advantages, let's discuss the problems an OEM manufacturer faces during product development. OEM manufacturers always work within an extremely tight schedule, because launching a product ahead of a competitor means additional marketshare. Here are some factors that affect the product development cycle and time to market.
Development phase: This is when the actual product implementation is decided. Cutting down on the time required to implement a given set of features has always been emphasized. Due to time pressures, either some features get dropped, or half-cooked features are delivered. This only hampers the product's chances for success.
Testing/validation phase: Typically, the time spent in this phase is directly proportional to the product's quality. It ensures that the product has been tested and determines the degree to which the corner cases are covered. Many times, due to the pressure of releasing a product early, features get released to the market without going through rigorous testing.
Cost of development and validation: One option for reducing time in the development and testing phases is to increase the available resources. However, increasing resources comes with the disadvantage of increasing the final cost of the end product. Releasing a product in time but at an extra cost also works against its success.
Compliance testing: Many products have to go through multiple compliance tests before they can be released to the market. Compliance testing ensures the product's safe operation. Not only does such testing incur additional cost, but also any failure may require redesign of the architecture and further delay product release.
In the case of embedded system designs, reusable IP can be a library, a set of source files, or a complete subblock of a larger design. The form in which reusable IP is delivered can be tailored to market needs. For instance, if some functionality is covered with patents and offers a competitive advantage, it can be obfuscated and provided as a library or object code. Some of the advantages of using IP are as follows.
Reusing IP significantly cuts the time required for development and validation. Once the system is developed and tested, it can be used again. After that, only integration and system testing is required. Reuse thus helps by reducing time to market.
Reuse of IP helps with the implementation of incremental features and knowledge of bugs (if any) beforehand. This allows the developer to update IP and thus provide better-quality products over time.
Scarcity of expert resources is a common problem during product development. Reuse of IP developed by experts who know the low-level architecture in detail enables system developers to build applications upon a reliable foundation.
Some compliance testing, once completed on IP, need not be repeated unless the IP is modified. For software, modification can be easily verified using the checksum of the IP. In such cases, reuse of IP that has passed compliance testing becomes the first preference, as it saves cost, effort, and time.
IP reuse helps reduce development time and validation, which in turn reduces system cost through faster time to market. Fewer design hours are required to bring the product to market.
To me the big thing is the need for standards in all aspects of IP development and use. Look at what happens when the ARM standard gets adopted by Xilinx AND Altera. Now we have the ability for third party developers to target just about all the FPGA market with a single development. Now if other IP standards could be similarly extended to test benches and othe pieces of the cycle. Maybe some day...
Yes IPs are very much helpful in reducing the design cycle of electronic prototype development, but matching the IP coding and variable assignment with the existing modules it a bit completed task, Altium has done a very good work on using the IPs in electronic prototypes.
Today, you can easily get an off the shelf chip with fully integrated wireless, gyro, temperature, accelerometer, LEDs, and even audio and video capabilities. The software generally works readily out of the box and has canned demos and working examples to get you up and running in a matter of days if not hours. This has all but relegated the hardware to that of a commodity. It's about who has the best software and who can get that product to market the fastest with the right feature sets and the right price points. With new enhanced versions with increased features available every few months, the difficulty we see has been in porting the software and or re-using the software IP. Often the drivers get updated, the memory locations for various features change, control words, instructions change, etc., slowing time to market and introducing inefficiencies.