f4pga / ideas

Random ideas and interesting ideas for things we hope to eventually do.
86 stars 9 forks source link

Apply prjxray ideas to document the bitstream for Spartan 6 parts #10

Open mithro opened 6 years ago

mithro commented 6 years ago

[prjxray] Apply prjxray ideas to document the bitstream for Spartan 6 parts

Brief explanation

Spartan 6 is a hugely popular part which would be awesome to have support for in SymbiFlow

Expected results

Detailed Explanation

SymbiFlow currently only supports Xilinx Series 7 parts and the Lattice iCE40 parts. While the Spartan 6 has mostly be superseded by the Artix 7 and Spartan 7 there are still a huge number of boards out there with Spartan 6 parts. Due to its huge popularity it will be a long time until the part is no longer in use (people still start new designs with Spartan 3!).

To make it even more important Spartan 6 designs you still have to use ISE which is significantly worse then Vivado in many ways. Having an non-ISE toolchain for that would be awesome.

Spartan 6 is used heavily by a number of open source projects;

Further reading

Knowledge Prerequisites

mithro commented 6 years ago
mx-shift commented 6 years ago

From what I've seen (Spartan-6 FPGA Configuration User Guide UG380), low-level bitstream format (BIT header, but-width detection, synchronization word) is the same between Spartan6 and 7-series. Packet structure and overall configuration sequence are similar in concept and design but Spartan 6 uses a 16-bit word and have 65 word frames. 16-bit word length leads to a slightly different packet wire format. Config registers are very similar for actual config loading (writes to FAR and FDRI) while other device-control-focused config registers are very different. I expect writing a parser that yields frame data will be fairly straightforward to anyone who reads through xc7series::BitstreamReader, xc7series::ConfigPacket, xc7series::Configuration, UG470 (7-series configuration user guide), and UG380 (Spartan-6 configuration user guide)/

ghost commented 4 years ago

I heard about project concisting in analysing Spartan bitstream:

According to blogs... and UG380 we already have some materials to start with.

Does someone is working on Spartan6 timing, bit files analysis... in order to extend SymbiFlow project to Spartan ? I would like to develop something like XRay for ISE that allow analysis of old FPGAs. Let me know if you want to join me and/or if you are interested.

mpictor commented 4 years ago

I would like to develop something like XRay for ISE that allow analysis of old FPGAs

It would be nice to see this happen! Gotta find time to help... :hourglass:

Is there a write-up of the methodology used with 7 series chips? And/or a corpus of inputs that produces interesting outputs?

DaAwesomeP commented 3 years ago

@mithro would you mind updating the Knowledge Prerequisites section? I would like to help out if I may, but I am really unsure what I would be able to contribute without knowing the tasks required (or what I need to learn).