Comments (1)
Hi @silvigon - great to hear about that, and I'm keen on seeing what your project comes up with.
Regarding branch prediction; the comments and discussion in #289 is of course highly relevant here, and i'd encourage you to either revive that PR or take from it what you need to build an improved version.
Your concern about multiple processor models is indeed valid. I'd say that, based on the current design of Ripes and VSRTL, new processor models typically employed if the "physical" datapath changes. That is, if you're adding new VSRTL components and/or wiring things differently between processors model This restriction mainly comes from the need to have a layout file specific to the components that are present in a given processor model.
If instead your changes can be described as a software-only change (e.g. enabling/disabling ISA extensions) then the path is obviously much simpler.
Now, you don't actually have to add a new processor model to make physical changes to a datapath - processor model wiring is done at runtime and it's also perfectly valid to instantiate processor model components at runtime (a macro is usually used for convenience, but you can just as well "manually" construct subcomponents based on how you configure a processor at runtime- i.e. calling SimComponent::create_component
before wiring up the processor.
If you do the above, you'll still have the issue in having to manually define compatible processor layouts for the different combinations of datapath options.
... if only we had a way to automatically, heuristically, create a nice looking circuit layout so that we could ditch these pre-defined processor layouts 🤔... Started work on this maany years ago over in VSRTL, but never got around to finishing it; it'll probably have to be someone else than me who does that (see https://github.com/mortbopet/VSRTL/projects/3#card-18251185).
from ripes.
Related Issues (20)
- Ripes crashes when hovering over the cache statistics chart HOT 1
- Ripes crashes when using 'Open' Syscall HOT 2
- Error reporting when running on centos7 HOT 2
- Missing virtual destructors in abstract classes
- Discussion on Github Actions HOT 1
- Add Cache Replacement Policy HOT 1
- Setting a register as the first instruction sometimes causes a runtime error in the single-cycle processors
- Using CLI without UI
- Use `magic_enum` to replace various enum<-> name maps and better-enums HOT 1
- M-extension issue (multiplication exceeds 64-bits)
- Division by zero crash in assembler constant expressions
- "Clock the circuit with the selected frequency" (F6) never stops HOT 5
- How to handle System Input in CLI? HOT 3
- Assembly source code execution highlight only works with default .text start address HOT 2
- Input Type always set to `Assembly` on startup
- Adding an option to change the direction of memory address growth
- .gitignore does not match files generated at configuration/compile time (?)
- unreachable code for REMU in rv_alu.h
- Unable to open Ripes v2.2.6 on mac
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ripes.