Comments (2)
Good stuff! :) Looping in @threonorm , who wrote the code; I wonder if the same pattern existed in the Bluespec version of the code.
This results in tests taking roughly 25% less time with Cuttlesim and 5% less time for Verilator.
I like this change ^^
from koika.
Yes, we currently stall conservatively for source register (but do not add dependencies for destination registers which are not real destinations). Mainly because the design we started from was doing that (it is coming from a class).
I don't have a strong opinion, we can merge that change as it is not important to keep the comparison with the baseline anymore.
Here are the things I think we should look at:
1 - variations on the number of cycles (instead of simulation time, that can vary quite a bit and is not really architecturally meaningful)
2 - variation on the critical path both on FPGA and the open pdk synthesis
3 - variation on the type checking + compilation time
(4 - incompatibilities/porting work/variations on the symbolic evaluation time/use in already written proofs)
Maybe we can do a little experimentation for 1) and 2), I think the critical path is currently in decode on the equivalent pattern for the destination register and the scoreboard. Or at least that's what I remember, so it may move to go to the source instead, not sure.
For 3), hopefully it should not influence too much, but we have seen weirdness before, so it could be good to confirm it.
I think for 4), this could impact the proof we did for the enclave system, but we probably don't want to keep the code in sync anyway (and it is probably out of sync already), so I don't mind ignoring that dimension.
I can look at 1, 2, 3 but sadly not before august.
from koika.
Related Issues (20)
- Building error (Ocaml 4.11.1) HOT 10
- About the upcoming module system and Kôika's semantics HOT 1
- `unit_t` in ext_fn_t input generates invalid verliog HOT 8
- External function incorrectly pruned if rule is otherwise uneffectful HOT 3
- Context unknown during type checking HOT 2
- Different behavior in simulation and FPGA HOT 3
- Potential optimization in the RISC-V example HOT 5
- Multiplier correctness example HOT 1
- Build issues on macOS HOT 26
- Some circuits that include extcalls behave unexpectedly when simulated through Verilator HOT 3
- Infinite loop HOT 4
- Translating Koika's bits_t (Vect) to MIT's bbv HOT 1
- Compilation error with the cosimulation example when verilator >= 5.004
- Vectors and name collisions HOT 2
- "make verilator-tests" results in a failure (cannot find file containing module: 'ext_host_id') HOT 2
- Outdated information in examples/rv/README.rst HOT 8
- Errors in examples/rv/MultiplierCorrectness.v HOT 2
- Proof failures with (unsupported) Coq 8.12 HOT 3
- Warning message about Boost version triggers spuriously HOT 1
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 koika.