Recently, a group at a local university agreed to lend me an old FPGA board for a couple of months – the Xilinx Spartan-3E starter board. It’s rather old (like 10 years at least) but still relevant, I think, since it has lots of connectors, LEDs, buttons and stuff, enabling to quickly getting started with FPGA experiments.
A first Verilog blinking LED example was quickly written and synthesized, so I powered and attached the board to a Windows PC. The first thing to notice, is that the board identifies as what is otherwise known as „Xilinx Platform Cable USB“.
That adapter, which can be bought also as a standalone product, seems to be onboard on the Spartan-3E starter kit. It consists of a Cypress FX2LP microcontroller, an I²C EEPROM with the former’s firmware and a Xilinx CoolRunner-II CPLD.
The next finding is, that the onboard JTAG chain has three TAPs: Not only the Spartan-3E (XC3S500E), but also a Xilinx Platform Flash (XCF04S) and a Xilinx CoolRunner-II CPLD (XC2C64A). This can be seen, when scanning the chain using ChipScope Pro Analyzer:
I wanted to see, what’s happening, when use this program to flash my blinky bitstream to the FPGA, so I hooked up an oscilloscope to the JTAG signals:
From the scope capture (yellow=TCLK, blue=TDI, pink=TMS) several things can be seen:
- The clock frequency is 3MHz.
- Transmission is segmented in blocks of four bits.
- The clock is active high.
- TMS as well as TDI are sampled at the rising edge of the clock.