Hi,
I'm trying to configure a Xilinx Spartan 3 s400 through JTAG in a new prototype but I'm getting some weird results back while programming it. I hope somebody with more experience can help me out.
The fpga is the 2nd device in a chain of 3 devices, of which the third a XC95144XL is which can be programmed succesfully. I assume therefore that there are acceptable noise levels on the bus and bus speed (currently at about ~1.2MHz - depends a bit on how fast the programmer can handle incoming data but not faster than that) is Ok.
When fetching the status register before any programming, I get; mask; 0x01FFFFFFFE
34 bits; 0x0260000000 The fpga being the second device, it actually clocks out 0x30000000 (and the first device seems to add a 1?)After programming I get;
34 bits; 0x0262000000 So it actually clocks out 0x31000000So apparently (if I follow xapp452) the DCM are locked and DCI is matched (even though I haven't flashed in anything yet - the PROM onboard doesn't contain valid data - and don't have any DCI pins configured as actual DCI) and after a programming attempt GHIGH_B is deasserted, and there are _no_ CRC errors reported here.
It doesn't, however, start up. DONE pin stays low (isn't connected to anything) as well as GTS_CFG and GWE etc, basically, the startup is stalled for some reason.
So I decided to pick up the multimeter and start measuring; DONE stays low PROG_B stays high INIT_B goes high, than goes low again after programming
This seems to indicate a CRC error after all? I've tried setting the BitGen option for unused IOB pins to pull-up (I'm not using the DONE pin as IO) but that still made DONE go low.
So right now I have no idea how to continue in figuring out what the problem is or how to get the fpga working. I haven't tried disabling the CRC check completely yet. Any tips, hints, suggestions are very welcome.
Cheers,
Mike