Very simple CPLD trainer

Very simple CPLD prototyping board, where .svf can be uploaded through USB! Total cost ($4) is comparable with Rasp Zero

Similar projects worth following
I have almost no knowledge about CPLD and VHDL. This time I made a "training board for me" consisting of Xilinx XC9536 and FT231XS, which works as a .svf uploader

At another project which is making 68008 single board computer, its circuit is simplified by Xilinx XC9536. XC9536 is out-of-production device but still can be got, for example here. (In my case, XC9536 is selected for 68008 board, but generally no need to stick it. Sometimes XC9572 VQG44 has more attractive price, which is pin compatible and doubled programmable elements)

For 68008 board completion purpose, I have obtained ten package of it.

Fortunately I did not have any loss of XC9536 for making 68008, and remaining 9! So I made,

XC9536 simple board capable of .xvf uploading really just for my learning. Indeed, I had a knowledge that some kind of special download hardware (ex. USB blaster?) but found very useful information at one website showing "download by simple FT232RL" !!!

The author also makes USB CPLD programmer and indeed my 68008 was completed by this FT232RL .svf file downloading process.

Here I would explain how to "download" to this board.

Firstly we can write VHDL or Verilog source byISE Design Suite 14.7. Indeed XC9536 is "ancient" device and up-to-date "Vivado Design Suite" does not support it. ISE Design Suite has some trouble on Windows 10 64bit environment and please find its solution by googling (some "libPortability.dll" problem). After compile success, select "Tools->iMPACT" and

Double click "Boundary Scan" and right click on the right window and select "Add Xilinx Device and select generated .jed file

On the Xilinx chip, right click and select "one step svf" will create .svf file.

After making .svf file, execute PROG_CPLD.exe which can be found at this website with option -c and -v

If writing is success, it will say
<<< All TDO outputs matched to the expected values! >>>
If not, repeat again or check soldering or wiring...

In my case, my CPLD becomes 7-seg driver.

Now full assembled CPLD trainer board is sold my store. You have a choice of XC9536 or XC9536XL or XC9572XL.

Actual operation (indeed no-worth-to-see) can be found at the following movie.. have fun!

  • 1 × FT231XS Microprocessors, Microcontrollers, DSPs / Microprocessors (MPUs)
  • 1 × XC9536 Logic ICs / Programmable Logic: PLDs

  • How to solder surface mount chip?

    kodera2t07/16/2016 at 10:50 0 comments

    Eventually I submit one product for (at this moment, I am not sure it will be admitted or not..) and it is a kit requires full assembly and I guess relatively good soldering skill and experience is required. (I think most of people have excellent soldering skill, though)

    So here I would show how to solder SMT in quick and clean manner.

    Step1: Put enough solder on electrode.

    Step 2: Remove solder by de-solder braid

    Not all of solder but most solder should be removed. Residue will work as glue!

    Step 3: Carefully align chip and gently push every electrode

    Alignment is quite important but your hand will be enough good tool. Just gently push by soldering iron is enough to connect. No additional solder is needed. If you have some concern, add small amount of solder for each electrode.

    Complete! Have fun!

  • 4bit CPU in CPLD

    kodera2t12/21/2015 at 08:58 1 comment

    Before I made a PCB of 4bit TTL based CPU in another project,

    and this time I implemented it in CPLD. Actually this is a bit surprise for me to know that

    This CPU is made by "pure schematic drawing without HDL writing" !! ISE has lots of pre-defined 74 series components and just select it and connect wire will provide the circuit what you want!

    I know, this schematic writing is NOT main stream of CPLD/FPGA implementation but if some student who is learning basic logic circuit, and hit on great idea, just writing schematic is very handy way to realise circuit!! I guess schematic implementation still has lots of potential for education purpose. I am not sure someone will try to make same 4-bit CPU, but already related sources are uploaded to github. And also XC95144XL board (with 3.3V regulator, FT231XS) schematic are also uploaded to github.

    As same as "real TTL implementation", CPU operation is confirmed with ROM, which is emulated by Arduino. You may think LED blinking is just blinking, but

    prog[0b0000]=0b10110001; //OUT(1011) "0001" to LED
    prog[0b0001]=0b10110010; //OUT(1011) "0010" to LED
    prog[0b0010]=0b10110100; // same till 0b1110
    prog[0b1111]=0b11110000; // JMP(1111) to "0000" first of program
    this code is running on CPU in CPLD! Have fun!

  • YES more modern CPLD board!

    kodera2t12/18/2015 at 12:55 0 comments

    I completely know and understood XC9536 (without XL) is obsolete long time ago (in dog year). I explained why I used XC9536 is just I ordered too much ones for 68008 completion. Some wise people pointed out why I use old CPLD (may be my explanation was not understandable English) and this time,

    I ordered at digikey for just one XC95144XL (not ten package for this time) and made much more modern CPLD learning board! YES, IT IS 3.3 V!!

    Not only availability problem and voltage problem, XC95144 naturally can handle 4-times couplex circuit than 9536. Indeed I already implement 4-bit CPU which I introduced in another project and binary downloading works perfectly, as same as previous XC9536 board procedure. !!

  • Dummy's questions regarding CPLD

    kodera2t12/14/2015 at 09:32 7 comments

    CPLD is a programmable logic and NOT analogue component but when I think about logic component in 74 series, they are working for some exceptional operation. Here I confirmed two "exceptional" cases. These fact should be well known by experts but please enjoy it.

    (Question 1) CPLD can organise RC oscillator?

    Widely square wave generation is realised by 7404 or 7414 but is it possible by CPLD?

    The answer is in the following movie..

    (Question 2) CPLD can work as analogue amplifier??

    It is well known that inverter in 7404 can work as analogue amplifier by putting proper feedback resistors. My question is, the inverter in CPLD can work as amplifier by proper resistor?

    The answer was, NO! The inverting signal is generated by some "artificial" (I know it is not good word, but synthesized?) way, not by N and P channel complementary circuit and voltage feedback by resistor network does not work.

    Have fun!

View all 4 project logs

Enjoy this project?



kodera2t wrote 12/14/2015 at 07:57 point

Thank you nice follow, K. C. Lee !

  Are you sure? yes | no

K.C. Lee wrote 12/13/2015 at 16:42 point

Those XC9500 parts are no longer made.  Stock them up while you can still find them.  5V tolerant XC9500XL (3.3V) parts are still around.

Thanks for the pointer to the USB programmer software.

That reminded me to order some from China. 

  Are you sure? yes | no

kodera2t wrote 12/14/2015 at 03:27 point

Yeah I know it. This time I just made by spare parts but hopefully I will make another one with XL..

  Are you sure? yes | no

Yann Guidon / YGDES wrote 12/14/2015 at 03:34 point

Will you post the schematics as well ? :-) I'm curious about this upload through USB.

  Are you sure? yes | no

K.C. Lee wrote 12/14/2015 at 03:39 point

The USB connection using FTDI chip is here:

along with the source code.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 12/13/2015 at 15:33 point

Really awesome in many aspects !

One advice though : you can use soldering flux to make smoother joints :-) particularly on this kind of bare copper boards where there might be some oxydation remaining.

HAL (Hot Air Levelling) is a process after PCB fabrication that tins the surface to ease soldering and reduce oxydation: you could use chemical tinning after you milled the board for this purpose.

  Are you sure? yes | no

kodera2t wrote 12/14/2015 at 03:29 point

Actually already using flux for soldering.. Also, you will see some difference on soldering part in the initial picture and 7-seg working picture. (latter is glittering), this is because, bad-contact happens at XC9536 electrode and re-soldered!!!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates