By Tim Schnettler, Lattice Semiconductor
pldesignline.com (August 20, 2008)
Inside any electronic device, from an old television remote to a global positioning system, there will be at least one microcontroller unit (MCU) and, in many cases, several. MCUs are used in specialized end products ("appliances") and are designed to perform a specific task very well (by comparison, microprocessors are designed to perform many general functions).
Microcontrollers can be designed to minimize cost, be ruggedized for industrial and automotive applications and, when embedded in an FPGA, be reprogrammed to change functions. This flexibility allows a single appliance to be deployed in multiple products, even if interface standards vary.
What factors should be considered in choosing a microcontroller? While this article's focus is on embedded applications using FPGAs, the selection criteria for any microcontroller are essentially the same. The designer will need to determine:
- How much will the end product cost?
- How much memory is required to implement the design and to store the control program?
- What are the Input/Output requirements?
- What are the register requirements?
- How will the microcontroller integrate with other devices?
Traditionally MCUs have been off the shelf, application specific standard parts (ASSPs), with each vendor varying the feature set to differentiate the part. However, the union of MCU intellectual property (IP) cores with field programmable gate arrays (FPGAs) provides a far more flexible hardware platform than traditional MCU ASSPs, with these benefits:
While FPGAs may be more expensive than a single MCU, their functionality, such as embedded DSP and memory blocks and a flexible I/O ring, may offset the cost of multiple devices.
FPGAs provide a more flexible memory architecture, so as data and instruction needs vary the user can adjust the hardware design accordingly.
Input/Output requirements can be demanding, given the variety of signal standards and interface protocols required in modern systems. FPGAs excel in this area with programmable on-chip buffers. For example, the Lattice MachXO device supports single-ended LVCMOS / LVTTL and differential LVDS / LVPECL in a variety of voltage levels.
When considering registers and scratch pad memory resources, MCU IP cores for FPGAs often provide the flexibility to change the configuration to meet application needs.
FPGAs are ideal solutions to device integration problems. The programmable look-up-table (LUT), register and memory resources allow for additional integration, while flexible programmable I/O and specialty interfaces such as double-data rate (DDR) make handshaking with multiple devices easier.
FPGAs are well-suited for many microcontroller applications because they are relatively inexpensive, include a wide range of embedded memory blocks, have adequate I/Os for nearly any controller function, are register rich, and support many I/O standards, ranging from LVCMOS and SSTL to differential LVDS signaling.
Click here to read more ...