-
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
Some guidance on better timing #89
Comments
Hi, Ahhhh so, i was facing the same issue when going above 2 cores. So, overall probably would need to do some manual floor planning. But note, i never tried it, also i keept myself in the 2 core space. For NaxRiscv option which could help timing, maybe reducing the LSU LQ SQ entries, but that would be realy sad. Note, i'm now working on https://github.com/SpinalHDL/VexiiRiscv/tree/dev/src/main/scala/vexiiriscv
Ahhh when the slave violation is as much than 22%, likely it is timing related. |
So I played a little with floor planning, but I don't think it can be done. In fact, I have seen your VexiiRiscv effort, but concluded to wait until it is done. Basically, I need a CPU for a project, and thought it would be best to use rv64gc, as that is supported by apt package by default. I think I will rather settle on rv32gc and just use compile the compiler myself. The main problem is that there is assembly involved, and the optional architecture of RISCV makes it very hard to port that code, in contrast to the hierarchical extension nature of other ISAs. I'm definitely looking forward to the first stable release of VexiiRiscv :) Also, if I may ask, I have once seen a recommendation by yours on some books on out of order CPU, but can't find them, could you state them here again? While by now I feel rather confident with in order pipelined CPUs (I've written a 3 smaller ones, but nothing worth publishing, rather good examples of what you call "wire mess"), I still struggle with understanding OOC cores and would very much like to devote some time on them. That would be great! |
Yeah, not enough space to play around.
So far, in simulation, linux run well with RV32/64 IMACSU. I'm now working on getting the FPU in, then it could be GC and run debian aswell.
I'm not a book person, i realy have hard time reading text.
Maybe a NaxiiRiscv at the horizon ^^ |
Hi there,
I'm using your CPU in a quad core constellation on a nexys video. The SoC was generated with:
I used the most recent version Litex, except for LiteEth, which is currently broken, so I used the most recent release tag.
Utilization is quite high, although there is definitely room for a larger L2 cache:
However, regarding timing it is quite unsatisfactory:
While the debian system seems to be stable, sometimes I'm losing a core or get weird IO errors.
So my question is: What measures (i.e. NaxRiscv configuration) could be taken, to improve the timing of the SoC? Of course, by trial and error I could figure this out myself, I just found it to be appropriate to ask, since you as developer probably know best :) Also I would rather sacrifice some performance for frequency if that is possible by any means.
The text was updated successfully, but these errors were encountered: