| Boards and Systems |
Boards and Systems System Design A common complaint is that some vendors will only support major customers and smaller firms find it very difficult to get the level of technical information they require to do a design. In defense of the semiconductor manufacturers, they have limited resources and want to spend them where they achieve the greatest return on investment. Of course, that can be very frustrating if you are trying to use a product and they won't tell you how to program the one-thousand on-chip registers to your particular configuration requirements. Our best advice is to figure this out beforehand to save a lot of time and frustration - there are multiple vendors for most functions, try to choose one that will work with you. Talking to your local sales representatives is invaluable in obtaining this information. You may also find that there are functionality gaps in what is available as ASSPs. Or you may find that you require ASSPs from different vendors that don't have compatible interfaces. Or that you need multiple expensive ASSPs to solve your problem - but only utilize a tiny percentage of the capabilities of each of these devices. The cost, power and PCB size may become prohibitive - especially as your production volumes pick up. Every unique product has unique requirements that require unique solutions. Custom FPGAs, ASICs or Structured ASICs will help you fill in the gaps or create custom solutions for your unique needs. PCB Layout Firmware / Operating Systems The OS may provide high-level standard services (like TCP/IP), allow multiple threads to run, provide a framework for complex device drivers with interrupt support and manage memory resources. Some OS's provide real-time services for time-critical software applications, others do not. VxWorks is the most popular real-time OS (RTOS), still used in the majority of time-critical applications. Linux is probably the next most common embedded OS and has a lot of industry momentum. It is NOT, however, an RTOS, although many attempts have been made to make it more and more RTOS like. Linux is often preferred because of the tool support and pricing model (it's free), but other operating systems are often much more suited to an embedded environment with limited code space. Remember that the processor performance depends on the entire sub-system, not just the processor. Complex applications require large amounts of memory. Processor performance may be limited by memory bandwidth, so memory bandwidth and the availability of cache memory are critical. Multi-threaded applications usually require memory management so a hardware MMU may be a requirement -- some operating systems also require an MMU. The more complex embedded processors typically include an MMU, but not all processors do - for example the ARM926 includes one but the ARM966 does not. It is critical that software and hardware architects work closely to define hardware and software requirements up-front. Besides avoiding expensive incompatibilities, the most cost effective implementation methods can be determined. It is not uncommon to see more than 90% of an expensive processor's bandwidth being used to implement a function that could be cheaply implemented in hardware. Conversely, it is not uncommon to see large amounts of hardware engineering effort being expended implementing functions that are trivial to implement in software.
|