Designing an XC9500XL compatible board - Page 1
Forum section: electronics / general

author: coaxialgamer
author_rank: Contributor
timestamp: May 14, 2019, 07:34:31 pm
content: I'm currently working on an embedded project, and I found that a CPLD could serve me well. I was recommended the Xilinx XC9500XL series due to their low cost (specifically the XC9536XL).I want to solder the bare chip directly to a board, so I was also advised to build a JTAG connector into my design for ease of use. And quite frankly, I'm somewhat new to JTAG. The chip I'm looking at has the standard TMS, TCK, TDI and TDO. I'm assuming I should be routing these to a connector on the board, but which connector to use? I already have a Xilinx USB platform cable on hand, so should I route the signals to a connector of similar configuration to that?Also, assuming this actually works, will this be "plug and play"? Ie, if i plug the platform cable in, will the chip appear in Vivado/ISE as another store-bought dev board would?

author: PCB.Wiz
author_rank: Super Contributor
timestamp: May 14, 2019, 08:29:27 pm
content: Quote from: coaxialgamer on May 14, 2019, 07:34:31 pmYou could also look at the ATF15xx Atmel CPLDs for small CPLDs in 3V and 5V or Lattice.Quote from: coaxialgamer on May 14, 2019, 07:34:31 pmDepends on how much PCB space you have to spareEasiest is to match the cable (common is IDC10 ), but that has a large PCB area.

author: boB
author_rank: Frequent Contributor
timestamp: May 14, 2019, 08:45:17 pm
content: I think the XC9536XL is a part I used in one of our products. The programmer isn't very cheap though unless there is something newer out from someone ?If you don't need too large of CPLD or FPGA, a new-ish part I like and am using is the Silego (owned now by Dialog) Greenpak devices.https://www.dialog-semiconductor.com/configurable-mixed-signalThey also have larger SOIC type packages (32 pins ?)Easy to use and program with one of their fairly inexpensive pods. Some can be re-programmed in circuit as well.

author: james_s
author_rank: Super Contributor
timestamp: May 14, 2019, 09:49:04 pm
content: The Xilinx USB platform cable was about 40 bucks when I bought mine, Chinese clone I think but it works fine. There are cheaper options if one is on a tight budget, initially I used a cable I made that connected to a parallel port.

author: nctnico
author_rank: Super Contributor
timestamp: May 14, 2019, 09:51:46 pm
content: I design a 5 or 6 pin single row header into the circuit as a programming connector for these CPLDs. The Xilinx platform (USB) programmers can be bought for peanuts from Ebay.

author: Fred27
author_rank: Unknown
timestamp: May 14, 2019, 10:13:02 pm
content: I found that the eBay platform cable I bought would work with the Coolrunner but not the XC9500XL. (I claimed to be a fake Platform Cable USB but was actually a fake Digilent HS2.) Be careful.There are some very cheap XC9572XL boards on eBay - not much more that the chip, JTAG header and bare essential passives. They work just fine. It might be worth getting one to try out your design and as an example of how to connect the JTAG up.

author: boB
author_rank: Frequent Contributor
timestamp: May 14, 2019, 11:59:06 pm
content: I will have to look again for the programming cable.Last time we bought them, there was only the student version but we could not buy those.The ones that were "sanctioned" were like $300.00 US or so.$40 would be just fine !Beware that some of these CPLDs are not around anymore. I thought this particular one was going away but they raised the price instead.They were around $1.00 per part for the 36 gate part and then it was something like $1.50 or $1.25 each ?

author: james_s
author_rank: Super Contributor
timestamp: May 15, 2019, 04:01:30 pm
content: Looks like they're even cheaper now than when I bought mine about 6 years ago.https://www.ebay.com/itm/Xilinx-Platform-USB-Download-Cable-Jtag-Programmer-FPGA-CPLD-C-Mod-XC2C64A/321690735958?

author: dietert1
author_rank: Super Contributor
timestamp: May 15, 2019, 04:40:56 pm
content: For a beginner it is very difficult to select a device and determine the best device size.It's a valid idea to try and follow history, but i would recommend to start with a modern FPGA board like a Lattice MachXO2 or MachXO3. Digikey has the LCMXO2-7000HE-B-EVN for $27. The USB interface is on board and those FPGAs are not overwhelming but large enough for a single engineer to work quite some time before reaching size limits. Later you will be happy reusing the same thing for various projects. Similar FPGAs are available with very small pinouts, like the LCMXO2-256HC-4SG32C .Regards, DieterPS: The FPGAs mentioned have internal setup memory, very similar to CPLD.

author: james_s
author_rank: Super Contributor
timestamp: May 16, 2019, 02:16:19 am
content: It depends on what you're trying to do. If this is a hobby project, Xilinx and Altera (Intel) are the lion's share of the hobby market, Lattice is a very distant third. If a $1.50 CPLD will do the job it would be silly to use a $27 FPGA.Regardless of what part you use, the VHDL or Verilog is fairly easy to translate from one part to another.

author: dietert1
author_rank: Super Contributor
timestamp: May 16, 2019, 06:35:32 am
content: I don't know where those rankings are from and whether they are meaningful in this context. The price of a the 32 pin MachXO2 i mentioned is $ 2.56. The $ 27 i mentioned was for a starter board including the host interface.It's nothing but unfair to talk a beginner into using 25 year old technology. We got some stocks of those XC95 chips for the lab for experiments and prototypes, but nobody wants to implement anymore with CPLDs. Those small Lattice FPGAs are simply much better.Contemporary Xilinx is not recommendable. A beginner will probably need years before getting anywhere with those SOC chips. As an example I think those small chinese DSOs are implemented with just one Xilinx SOC plus the specialized RF analog and high speed memory.Regards, Dieter

author: james_s
author_rank: Super Contributor
timestamp: May 16, 2019, 04:07:47 pm
content: Well like I said it depends, but as of yet I've never come across a hobby project using Lattice parts. They have intrigued me somewhat since I have some that I could salvage but I have not found much information. Lots of tutorials on the other hand for using Xilinx and Altera parts and software.The reason I like the old Xilinx CPlDs is that they have 5V tolerant IO and my interests are pretty much exclusively retro stuff where this is really handy.

author: apblog
author_rank: Regular Contributor
timestamp: May 17, 2019, 11:13:28 pm
content: deleted

author: james_s
author_rank: Super Contributor
timestamp: May 18, 2019, 12:31:33 am
content: But if something like 5V tolerant IO is useful to you then that's a good reason to use older chips. I've used a bunch of these and never had one burn up.This seems to be a common theme though, professional FPGA engineers doing high end stuff seem to be utterly incapable of understanding that not everyone is building the same sort of things they are, not everyone needs the same sort of features, not everyone has any intention of ever doing this for a living, and sometimes something less than top of the line is a more sensible choice. Again, it depends on the project, it depends on the goals, it depends on the budget, there is no one size fits all.Now I don't know what the OP is building, but the post makes me think they're likely a novice working on a one-off hobby project of some simple nature, so if that's the case my recommendation stands to go with one of the parts widely used in the hobbyist community, older Xilinx and Altera generations that have a lot of hobbyist support and are still widely available.

author: nctnico
author_rank: Super Contributor
timestamp: May 18, 2019, 01:00:47 am
content: I have used the XC9500XL series myself. I think the simplicity makes it a great learning platform and it has plenty of gates to make reasonably complicated designs. All my TFT conversion projects (including ones with an external SRAM) are made with an XC9500XL series CPLD using VHDL.