System Concern Requirements
Functions Response Time
Data Rate
I/O drive (A, V)
Reliability – MTBF
Regulations FCC, Military Specifications
Environment Volume,
Weight
Vibration
Shock
Operation Bandwidth
Resolution
Speed
Accuracy
Power Consumption
Noise
▪ ASIC solve a signal-or-data processing problem optimally in terms of "high
throughput" and "Low power", but has quite large cost compared to simple PAL
device
▪ PAL chips are cost effective, and can be assembled to solve the signal-or-data
processing problem, but has high computational overhead (time), and power.
Assembling requires some times before the product can be fully developed?
▪ What do you recommend?
▪ Ask the right questions.
▪ Does the development time merit using the ASIC in your product?
▪ Will you be able to amortize its cost over the production run?
▪ Will a circuit using many chips of PAL really be cost effective than a single ASIC microcontroller,
which takes less time to implement program?
▪ PAL assembling can reduce reliability of overall system. Is it acceptable?
▪ What is driving factor?
▪ Cost?
▪ Development Ease?
▪ Time to Market?
▪ Right Choice in selection of technology will:
▪ Reduce part count
▪ Reduce Board Space
▪ Reduce Power Consumptions
▪ Reduce Cost
▪ Decrease time to market
▪ Increase Reliability
▪ Microcontroller vs Microprocessor ▪ Microcontroller vs Microprocessor
▪ Microcontroller includes integrated I/O functions (basic
▪ Microprocessor doesn't have integrated memory
I/O) into a single chip
▪ No basic I/O on chip structure
▪ Reduces the part count of the system and increases
reliability ▪ Memory size handling depends on addressing
▪ Most microcontroller have integrated memory on chip lines and for scalability complex interfacing
(e.g. 64K RAM, 2K ROM)
needed
▪ Integrated memory (but with fixed size)
▪ Are general purpose
▪ Microcontrollers are application specific, and can
handle less variety of events (less general) ▪ Has ability to handle variety of events (increased
capacity for dealing with complex problem)
For selecting one, Determine Key Driving Factor!
▪ There is a microprocessor and microcontroller. Which do you recommend?
▪ Know your system
▪ Determine Performance Requirement
▪ Find the number of peripheral functions needed
▪ Find memory space requirement
▪ What are available tool support for design, development and testing?
▪ Ask, "Do you already have expertise/experience, software and development tools
for particular processor/components you selected?
▪ Determine Performance Requirement
▪ Performance is related to architecture of processor and its processing capacity in bits (4,
8, 16, 32)
▪ Factors to determine performance are:
▪ Throughput
▪ Resolution and Dynamic range
▪ Address range/space and available memory
▪ Language choice: code size, speed of compilation and actual execution
▪ Predominant type of calculation : Integer or floating?
▪ Numbers of peripheral function
▪ How many do you need?
▪ What are the needed functions?
▪ Is there any such functions available on-board (on-chip) with processor
▪ e.g. Math Coprocessor, Graphic Accelerators, Interrupt Handler, Data Transfer and
Communication (DMA, Small Computer System Interface, Serial I/O), Timers, ADCs,
DACs, Power drivers, Watchdog Timers
▪ Memory Estimation
▪ Amount of memory needed for design can be estimated by
▪ Data Array size
▪ Stack size
▪ Temporary and permanent variables required and needed /captured memory space by them
▪ I/O buffer size
▪ Addition of above estimated values can give minimum required memory size for the
design
▪ A suitable memory margin must be selected for future scalability and improvements
▪ Power Consumption Consideration
▪ Increased consumption of power means
▪ Complex and large cooling system
▪ Increased battery size, or short battery life
▪ Power consumption by different processors vary,
▪ Appropriate processor selection can develop power efficient system design
▪ Tool Support
▪ Ask:
▪ What experience do you have, and what tools are available to support your development?
▪ Do hardware emulators exist that will help you to debug both circuit and code?
▪ What software tools are available to support development on the selected processor?
▪ Does vendor of these tools provide good support?
▪ Does vendors have good reputation?