Design teams can greatly increase the efficiency of the embedded design process if the process flows smoothly from design to deployment along a smooth curve. In mathematics, a curve is defined as : I ' X, in which I is an interval of real numbers, a curve () is a continuous mapping, and X is a topological space. In terms of deployment, a curve is a connection of points that represent development milestones. The deployment curve is a long-term view of the design process that, if well planned, can yield significant savings.
The deployment curve provides insight into the entire development process from initial concept proposal to prototypes and first-generation deployments, and for successful products with large-quantity manufacturing. Using this as a tool for development strategy encourages design teams to optimize code reuse, ensuring development efficiency through all development steps.
The concept is simple—legacy tools make implementation nearly impossible. Before designing a product, design teams must map out the ideal platform for each design step and optimize the paths in between. For example, algorithm design, exploration, and simulation require high-performance PC-based platforms to provide computational power. As intellectual property (IP) is explored, algorithm engineering validates the design with real-world data to identify design flaws early in the process. Next, prototyping requires feature-rich platforms complete with representative I/O so design teams can efficiently implement and prove their designs. Rapid prototyping is frequently the key to product success—the product first to market often leads the market. In the end, the final transition to deployment should be cost- and code-optimized.
The challenge is using the right tools to provide the most reuse and “smoothness” between each design step, making software portability and standard hardware architectures critical. If an algorithm has been designed and refined on a PC, the same functionality and performance must exist on a smaller, more realistic prototype. Similarly, if FPGA-based control is critical to the device, the design, prototype, and final hardware must contain FPGA technology.
Industry-wide challenges, such as fragmented tools, lack of standard architectures, and lack of hardware and software integration, are preventing smooth deployment along the curve. To address these issues, design teams must implement a more modern development approach such as graphical system design. With a graphical system design approach, teams realize enormous efficiency gains by selecting a platform they can use throughout the development process—an approach that provides an integrated software and hardware platform to tackle the challenges of traditional, embedded design. Graphical system design software can deliver consistency throughout the process by integrating existing design tools from many different vendors. In addition, the design software platform must scale to be powerful enough for algorithm engineering, integrated with I/O for effective prototypes, and be deployable to various targets, including FPGAs and MPUs.
By using the same tool throughout the design process, teams greatly reduce bugs with more effective communication through code instead of specification documents. Graphical system design also promotes the use of standard hardware architectures. Choosing an appropriate architecture such as a processor, FPGA, and I/O combination from the beginning makes code portability a reality.
In short, graphical system design empowers design teams to achieve true reuse through scalable software platforms and standard hardware architectures, resulting in a smooth deployment curve and dramatically reduced costs.