sylefeb / Silice

Silice is an easy-to-learn, powerful hardware description language, that simplifies designing hardware algorithms with parallelism and pipelines.
Other
1.3k stars 78 forks source link

Add support for colorlight i9 board #266

Closed davidar closed 6 months ago

davidar commented 7 months ago

It's largely copied from the ULX3S board, with pins renamed following LiteX-Boards and all the non-applicable peripherals removed. I've successfully run a number of the projects on this device, with some changes. In particular I noticed that many of the ULX3S-specific changes appeared to be compatible with ECP5-based targets in general, and indeed worked quite well on my board (e.g. the SDRAM controller was much more stable using the ULX3S code than the generic code), so I generalised those preprocessor conditions where it seemed appropriate (#246). Colorlight i5 support would also be quite easy to add, as it's essentially the same except for a smaller ECP5 chip and the LED on a different pin, but I haven't done that here as I don't have one to test it.

Edit: I realised I'm only able to reuse the ULX3S PLLs because it has the same input clock frequency as the colorlight (25MHz), so the preprocessor conditions should probably be updated to include that detail too, not sure what the best way to do that is though?

sylefeb commented 7 months ago

Thanks, this is looking great. I'll run a few tests and merge asap.