ADVANCED TECHNIQUES FOR DESIGN ENGINEERS
■ BY FRED EADY
Discuss this article in the Nuts & Volts forums at http://forum.nutsvolts.com.
When the six-pin PIC10F series of PICs were announced, I jumped all over
those tiny microcontrollers, turning them into tiny programmable logic gates
and clock sources. It was really neat to be able to synthesize a specialized
logic function using only the six-pin PIC10F and a dabble of C code. However,
once the PIC10F’s program space was allocated for logical purposes, there
were no CPU cycles left for an application. In addition, the coded logic was
only effective when the CPU was fetching and executing mnemonics.
CPLDs and FPGAs are neat to work with, as well. If you have a number of complex logic functions to
implement, a CPLD or FPGA is usually the ticket to success.
To make programming your complex logic algorithms into a
CPLD or FPGA worth the effort, the logic algorithms must
be too complex or too large for a microcontroller to execute
inside of its application firmware.
Today’s PIC microcontrollers are robust enough to stand
alone in a majority of applications. However, there are times
that a TTL or CMOS logic IC has to be thrown into the
hardware design to do that one little bit of combinatorial
logic processing that you just couldn’t fit into your main
application. The additional logic IC doesn’t come free. You
have to provide additional board space and wiring resources
to power the IC, and route its input and output signals.
Wouldn’t it be great if you could mix a set of combinatorial
logic components in with your microcontroller and place
them all under the same silicon umbrella?
Imagine a mini CPLD embedded into a PIC that can
work independently of the CPU. The PIC-based mini CPLD
has multiple input paths that can be selected via firmware to
feed a number of differing combinatorial logic
arrangements, which are also firmware selectable. Microchip
has this technology and the mini CPLD I’ve described is in
reality called a Configurable Logic Cell or CLC. The CLC is
standard equipment on PIC16F1507 and PIC16LF1507
microcontrollers. As of this writing, the PIC16(L)F1503 and
PIC16(L)F1507 family members can be
had via Microchip DIRECT and
authorized Microchip distributors. The
enhanced PIC16(L)F1508/9 parts are
listed as future products. The CLC
culture can also be found as touchable
silicon in the PIC10(L)F320 and
PIC10(L)F322. You can still use the
PIC10F parts as combinatorial logic
devices and run an application to boot.
Standard CLC configurations
include: AND-OR, OR-XOR, AND, S-R,
D, OR-D, J-K, and D LATCH. All of the
logic block configurations are front-ended by a quad of four-input OR
■ SCREENSHOT 1. Clicking on various
gate inputs and outputs allows either a
connection or an inversion. Connections,
inversions, device types, and logic
configurations in the template are
collected and converted into CLC firmware.