A Call For New Paradigms/Tools For Mixed-Signal
Application Design
by George Saul
President, Cypress Microsystems
The promise of objects, encapsulation, single and multiple inheritance,
polymorphism, class libraries, data hiding, code reusability, etc have produced
a broad range of sophisticated "Visual" tools for the software
application developer. These tools have provided huge benefits by exploiting
the concept of "abstraction" which seeks to mask underlying details
that a developer need not be concerned about. The ability to extend such
tools by the addition of new "objects," that more closely reflect
the context of a particular application, has proven to be significant.
DSPs, microprocessors, microcontrollers and mixed-signal devices of various types all rely on a common set of tools for development of applications, including C compilers, linkers, assemblers and a variety of debugging tools, none of which have changed significantly in the last twenty years. The lack of modern application development tools for these devices can prevent chip sales from reaching full potential.
While software application designers have for years used C++ compilers to achieve stronger type checking and code portability when compiling C source code, hardware designers have been left with the traditional, plain-vanilla C compilers.
Although some designers insist on using assembly language and/or C, existing code-generation technology can produce all of the code required for a large number of applications. And a point-and-click graphical approach to hardware application design is an effective way to design systems. It encourages code reuse, produces more stable/robust applications, and allows rapid prototyping and minimal debugging time to become a reality.
Manufacturers of sensors, fans, a wide variety of semiconductor devices and other hardware components should be supported by drivers similar to the software drivers provided by computer peripheral manufacturers. Plug-and-play can work wonders for much of the hardware design community and the resulting design benefits can significantly shorten time to market for new products.
Designers must be freed from the underlying architectural and implementation details of the various components involved whether analog, digital or some synthesis of both, if they are to produce highly optimized, robust designs, in a timely manner. A higher level of abstraction allows designers to focus on designing in the context of the application and avoids the danger of the designer becoming bogged down in a swamp of the fine grain details of the underlying architecture.
For the majority of designs it is not necessary to squeeze the code into the absolute minimum number of bytes, or to optimize execution speed to the last picosecond. Modern code generation and compiler technology is quite capable of producing very efficient code while requiring minimal programming skills.
The term paradigm is defined as "a set of assumptions, concepts,
values, and practices that constitutes a way of viewing reality for the
community that shares them, especially in an intellectual discipline."
Therefore new paradigms suggest new visions. We have the technology. It's
time to make the new visions a reality for mixed-signal embedded systems.