Saturday, August 15, 2020

Making a DIY CPLD experimental board with XC9572 and XC95108

 A CPLD (Complex Programmable Logic Device) gives a custom digital circuit design on a single chip. The design could easy modify, update and reprogram by the advantage of flash technology comes with any CPLD.


XC9500 is a series of CPLD from Xilinx. It's available in many options such as number of macro-cells, device package and number pins. For a medium digital circuit design and prototyping, I decided to use XC9572 and XC95108 with 84-pin PLCC package.

Making a DIY CPLD experimental board with XC9572 and XC95108
A sample of XC9572 and XC95108 I have.


In 2014 I made my own CPLD experimental board for my personal laboratory experiments. I have made all experimental test codes for all module built on this board. The overall components cost around 30 US Dollars excluding the labor cost.
Making a DIY CPLD experimental board with XC9572 and XC95108
A completed XC9572/XC95108 board I have assembled and fully tested. The assembling was
completed at the end of July 2014.


This board fits both XC9572 and XC95108 device I posses. These are the on-board features:

  1. A Regulated +5 V DC supply
  2. A RS-232 to TTL logic level converter
  3. A character 16x2 LCD work at both 8-bit and 4-bit mode
  4. A passive or active buzzer
  5. A 25.165 MHz oscillator clock source 
  6. A VGA connector
  7. A two-digit individual common cathode SSD
  8. An 8-input slide switch for digital input
  9. A 4-input tactile switch for digital input
  10. A 16-output LED
  11. A 84-pin PLCC socket that could fit XC9572 or XC95108 CPLD device.


This board requires a external JTAG cable to program the device. The JTAG cable could be a legacy computer parallel port or a modern USB JTAG programmer. A parallel port JTAG cable could be done with a few components but it requires a computer with old parallel port connector and operates with Windows 7. A Chinese clone USB JTAG cable cost around 30 US Dollars from E bay. Unfortunately, I accidentally burned a USB JTAG because of wrong power supply connection a few years ago.

Listings below are the schematic and PCB design.

Making a DIY CPLD experimental board with XC9572 and XC95108
Main Sheet


 
Making a DIY CPLD experimental board with XC9572 and XC95108
Sheet 2
 


Making a DIY CPLD experimental board with XC9572 and XC95108
Sheet 3
 
 
Making a DIY CPLD experimental board with XC9572 and XC95108
Sheet 4
 
 
 


Making a DIY CPLD experimental board with XC9572 and XC95108
Completed PCB Design
 
Making a DIY CPLD experimental board with XC9572 and XC95108
A Sample 3D
 
 
Design file could be downloaded here. To make a JTAG cable that flash this CPLD chip click here.

For convenience, this PCB must be fabricated using an online PCB fab. They provide a good quality at low cost. I share this project on the PCB fab website. The PCB is modified to double sided version. It also include an on-board parallel port JTAG. So we only need a simple parallel port cable.



PCB from=From pcbway

Click here to download a newer double sided PCB version.

These are a preview of a newer modified version that I got from a Gerber file viewer.

Making a DIY CPLD experimental board with XC9572 and XC95108
Components Side




Making a DIY CPLD experimental board with XC9572 and XC95108
Soldering Side

The estimate component counts on this PCB is about 124 devices.



Making a DIY CPLD experimental board with XC9572 and XC95108
Bill of Materials #1

Making a DIY CPLD experimental board with XC9572 and XC95108
Bill of Materials #2

Click here to download this BOM in pdf.

The following links are VHDL example codes for this prototype board using the XC95108 CPLD chip.

  1. XC95108 VHDL LED Blinking
  2. XC95108 Two-Digit BCD to 7-Segment Display VHDL
  3. XC95108 Rotates LED Example using VHDL
  4. XC95108 8-Bit Binary to Hexadecimal Converter VHDL
  5. XC95108 HD44780 8-BIT LCD Interfacing Example
  6. XC95108 16-bit Serial In Parallel Out Shift Registers VHDL Example
  7. XC95108 Two-Digit 7-Segment Shift Registers VHDL Example


6 comments:

  1. Hello, do you have a parts list or BOM so I can assemble the board after I order the PCBs from PCBWay?

    ReplyDelete
    Replies
    1. Hello, do you have any Verilog or VHDL code to test your CPLD board when using the XC95108?

      Delete
    2. Oh, I have some test codes for this board. But I forget to upload. I will upload them at spare time.

      Delete

Labels

ADC (10) Analog (14) Arduino (12) Atmega16 (19) Audio (2) AVR (20) Charger (1) Cortex-M0 (1) Counter (10) CPLD (25) Digital I/O (22) Display (34) EEPROM (2) Environment Sensor (1) esp8266 (2) Experiment Board (10) I2C (4) Interrupt (7) LCD (1) LDmicro (29) measurement and instrumentation (7) Microchip Studio (3) MikroC (1) One-Shot (3) OpAmp (1) PCB (31) PIC16 Microcontrollers (16) PIC16F877A (2) PIC16F887 MikroC (22) PLC (35) PWM (11) Regulator (1) RTC (2) Sensor (8) Shift Registers (5) SPI (5) Timer (34) UART (2) ultra-sonic sensor (1) USB (1) VHDL (21) xc8 (1) XC95108 (9) XC9536 (15) XC9572 (1) Xilinx (23) Xilinx ISE (22)