-
Notifications
You must be signed in to change notification settings - Fork 16
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
Renode support #778
base: master
Are you sure you want to change the base?
Renode support #778
Conversation
Alright, it is now integrated correctly, and can even dump traces! The VCD traces and debug log suggest that we supply |
This is intentional for Wishbone bus to be word addressed, done ex. here
I can't find it anywhere in the spec now :(, but this is what LiteX expects on bus and also VexRISC-V and ZipCPU does on Wishbone bus. As a side note we should correct that for AXI bus which is defined to be byte-adressed. |
At the same time this is in spec The address input array [ADR_I()] is used to pass a binary address. The higher array boundary is specific to the address width of the core, and the lower array boundary is determined by the data port size. For example the array size on a 32-bit data port with BYTE granularity is [ADR_O(n..2)]. In some cases (such as FIFO interfaces) the array may not be present on the interface. |
Oh, that makes sense now, they are referring to address bit array (address signal) size and not memory size. It could've been written clearer. |
With renode/renode#727 it does work now! Even with the same unmodified Ibex LiteX BIOS (verified on The below should work: cd
git clone -b wishbone-adr https://github.com/Arusekk/renode
cd renode
./build.sh
export PATH=$PATH:$HOME/renode
cd ~/coreblocks/renode
../scripts/gen_verilog.py -c full
./build_plugin.sh --trace core.v
./verilated_coreblocks.resc Then type |
Thats great! 👍 at the same time I see that addressing shift is already adjusted in Renode in wishbone.cpp here https://github.com/renode/renode/blob/bf7eaf6578b2ab3734f7ce55a6c647ae3115c539/src/Plugins/CoSimulationPlugin/IntegrationLibrary/src/buses/wishbone.cpp#L57 |
If I understand correctly, wishbone.cpp is only used for wishbone peripherals (slaves), and wishbone-initiator.h only for initiators (masters). The funny part is that my build script does not even compile wishbone.cpp code. 😄 |
Note: separate repo |
This aims to aid serious software development when FPGAs are unavailable.
Does not work yet, because of lack of debugging interface (required to set initial PC).
But does it otherwise work? No idea. 😄
Feedback welcome.