Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Hello world with CPLD and FPGA

CPLD and FPGA are different from microcontroller concept. Instead of writing programs here you need to configure hardware. With modern tools and programming languages like VHDL or Verilog things are much easier. Pyroelectro has started a series of tutorials where you will lean the very basics of building your own projects with CPLD and so with FPGA. This one is dedicated to turning LED on and off. There are a list of courses to come where you will learn more advanced topics that will allow to feel the benefit of using CPLD over microcontrollers. Continue reading

Fading LEDs with CPLD

Pyroelectro has published tutorial on fading LEDs using CPLD. Making LEDs fade with CPLD or FPGA is a different task than doing this with microcontroller. First of all in CPLD you need to create hardware modules to do tasks that in many cases can perform concurently. On a simple EMP7128 CPLD board setup there is a 10 LED bar which is programmed to fade special effects. Fading effect is created using PWM signals that are generated using a piece of VHDL code. The project is well explained and might serve as a great entry project for CPLD/FPGA starters. Continue reading

Blinking LEDs with XC9536 CPLD

CPLDs are meant for different tasks than running LEDs but why not. It may be a great starting point to know this type of IC. They are logical programmable devices that can replace a bunch of logical IC’s like 74hcXX. And depending on size of CPLD they can preform large number of operations on single chip this way reducing board space and power demand. So here is a nice project created with gEDA schematic capture. It is really basic layout where 60Hz clock is generated with 555 timer. There are 8 LEDs connected to XC9536 I/O pins through current limiting resistors. It has one push button for input. Programming is done via JTAG. To get intuition about programming CPLD you can follow this tutorial. Continue reading