3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

A Beginners Guide to Programmable Logic Devices

A Beginners Guide to Programmable Logic Devices

I put this instructable together after noticing that there really isn’t anything on the website about programmable logic except for one question and one instructable about a programmer (see links below).

 http://www.instructables.com/answers/Whats-an-FPGA-Whats-an-CPLD/

 http://www.instructables.com/id/Ghetto-Programmable-Logic-CPLD-Development-Syste/


So in an effort to try to help everyone understand what a programmable logic device is and as a
means of posting my first instructable here you are.
 
 

Programmable logic devices, what are they? Specifically they are an integrated circuit that you program using a hardware description language such as VHDL or Verilog. Other languages that you may have heard of are CUPL or ADA. With the correct tools you can even generate a schematic that is used to build the file that will be used to program the device.
 
 

 There are several types of programmable logic available. Older versions like the programmable array logic (PAL) such as the PAL20R8, the generic array logic (GAL) such as the GAL22v10, the programmable logic device (PLD) such as the 22V10, the simple programmable logic device (SPLD) such as the 20V8 have been around for quite some time.
 
 

The complex programmable logic device (CPLD) such as the XC2C32A from Xilinx, and the field programmable gate array (FPGA) such as the XC3S50 from Xilinx are some of the newer versions of programmable logic that are a result of improvements to the original types of devices.



These types of devices are available from several manufacturers such as Texas Instruments, Cypress Semiconductor, Atmel, Lattice Semi, Altera, Actel, and Xilinx. Some of these suppliers no longer manufacture these devices themselves but have sold the rights to Rochester Electronics who manufactures them with the same part numbers and logos while some like Lattice still offer GAL devices in addition to newer CPLDs and FPGAs.

 
Remove these adsRemove these ads by Signing Up
 

Step 1Types of Programmable Logic Devices.

Types of Programmable Logic Devices.

For those that noticed, I mentioned two types of parts, a PLD (and variants) and FPGA. What are the differences? The short answer is architecture. The FPGAs generally have lots of Flip Flops while PLDs have much fewer if any at all.

In addition todays FPGAs usually get other features such as built in multipliers, dedicated block ram, and can generally handle more interface standards (such as LVDS). Most FPGA devices need a separate device to program them (the exception to this is  Actel and the Spartan 3AN series from Xilinx). This is due to the fact that most FPGAs are SRAM based devices and when power goes out, the program is lost. The FPGA architecture is structured similar to the pictures below:


« Previous StepDownload PDFView All StepsNext Step »
8 comments
Feb 24, 2012. 5:50 PMcomponentsdirect says:
Components Direct offers a wide selection of programmable logic devices (PLD) from Xilinx, which include FPGA and PROM. These devices come in a variety of package types, such as BGA-256, BGA-225, PLCC-84, PQFP-240, PQFP-160 and TSOP-48. Their choice of operating temperature range cover from -40°C to 85°C. These quality programmable logic devices (PLD) are suitable for general-purpose use as well as specific applications.

http://www.componentsdirect.com
http://www.componentsdirect.com/programmable-logic-devices.html
Oct 11, 2011. 5:29 AMzombielord says:
you sir, are a scholar and a gentleman.
Jun 5, 2010. 8:37 PMSteamdnt says:
Favored, Thanks, I really needed a primer on this, Info is hard to get unless you know where to go.
Jun 5, 2010. 3:57 AMratgod says:
Nice instructable, You said you have used Altera, do you have any information (or links to some information) that would help me get started with an Cyclone II development kit? I've been trying to find tutorials and I'm not getting very far, the best I've done is build a 4-bit adder. I would love to set up a NIOS processor but I think that is getting a little far for the time being.
Jun 3, 2010. 2:38 PMAndyGadget says:
I used to do a lot of design with 22V10 and 20R8 devices back in the 80's, using PALASM as the development tool. The Xilinx devices with JTAG were just appearing, but before that I was putting extra shifters into circuit blocks to improve node visibility as I was also writing the functional test programs for these boards.
Fun times.
Jun 3, 2010. 11:34 AMkelseymh says:
Very nice introduction!  Rated and featured.  I am curious that you chose not to include microcontrollers as programmable devices in this analysis.  They seem to be the most common for DIY developers, probably because they provide I/O for process monitoring and control as part of the device.

Several years ago, my former high-energy physics experiment (BaBar) completed an upgrade of some of our front-end electronics to use Spartan 3 FPGAs.  We were able to move all the data processing (waveform feature extraction) that had been programmed in C++ on a rack of Motorola PPC boards, down to FPGAs mounted directly on the detector.  We reduced the data volume by a factor of 5 (32 bytes per channel down to 6), and the maximum trigger rate from ~2.2 kHz to well over 10 kHz (with zero deadtime).

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
6
Followers
1
Author:powerguy(NXT)
Open source hardware design engineer - in addition to designing power supplies and writing VHDL code for FPGAs and CPLDs, I am also an active part of the open source hardware movement.