-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add VexRISCV configuration suitable for iCE40 sized devices #2
Comments
The only issue is that it will require to port uncached iBus dBus to wishbone. currently only the cached versions have their bridge. Nothing difficult, but it require testing. |
Yes, LiteX uses wishbone internally if I understand correctly. A small 1k or 4k instruction cache might still make sense, even on an ice40? |
Btw would you like me to send you some iCE40 hardware like the TinyFPGA BX? |
hmm, having a 4KB 2-way instruction cache could be realy usefull if the ROM is on a external SPI chip, then keeping the remaining of the ram-blocks as a data scratchpad. About the TinyFPGA BX, i'm realy interrested by the board, also, the bootloader system is realy cool, i didn't know that it was possible to have a USB support directly on the pin of the FPGA :D Anyway thanks :) |
Running all code on the SPI chip is the intent; I think a 2kB cache one-way is more reasonable, plus 2kB of block RAM for peripherals/other gateware. I really want 12kB (out of 16kB) free for block RAM usage so micropython can run on it.
Ack. I wish I saw this earlier :P. |
I can add the wishbone dBus bridge, i just need to unqueue all my tasks XD |
I'm also interested in uncached ibus/dbus. What would it take to port those to Wishbone? |
@xobs I would not take much, also, the testbench is already there. |
About wishbone, is there some support of its pipelined version in the opensource space ? Or it's something that most peripheral/memories don't support ? (for instance in migen/LiteX) ? |
The implementations I'm familiar with are very limited. LiteX doesn't do anything with the Most Wishbone uses I've seen implement |
I updated VexRiscv to have wishbone bridges for uncached versions (0255f51cc53be867a513a0ef3b088a6fced5d97e) I will add some configuration in this repo soon |
It's commited on this repo, there is an example to get a tiny core :
Note that the CSR in this configuration aren't the smallest possible. |
The module has an invalid name -- it's called "VexRiscv-Min", which at least yosys is complaining about. Should the name |
@Dolu1990 EDIT: Ignore the above for now- I missed something important. |
@Dolu1990 Since you already committed, let's keep d7bbc2c and not revert it. Looking at MiSoC/LiteX, all other CPU cores in MiSoC/LiteX expect the name of the module to stay consistent, regardless of what features are enabled/disabled! :) When I said "ignore" my last comment, it was because I figured out a workaround. But since you did the work already, it makes life easier :). |
Bump VexRiscv
Just stumbled across this. From my point of view as packaging this repo for FuseSoC I would prefer different module names and perhaps just add a wrapper in migen litex that exposes a consistent name upwards |
Require a memory and writeback stage for the CFU plugin.
The current VexRISCV configuration works well on big FPGAs like the Artix-7 and Spartan 6 but is too big for the tiny iCE40 based devices.
It would be good to add a variant which works well on the iCE40, two options seem to exist;
It probably good to steal the VexRISCV configuration from the MuraxSoC configuration;
The text was updated successfully, but these errors were encountered: