-
Notifications
You must be signed in to change notification settings - Fork 71
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
When is it time to switch to ChiselTest #297
Comments
I believe that
I would be fairly pessimistic about that. Personally I do not want to do the work that would be required in order to ensure a stable API unless I am specifically paid to do so. So I would say that we are probably only going to see a |
Thanks for motivating me to move to ChiselTest. Actually, I introduce ScalaTest to run PeekPokeTester in order to run all tests with sbt test. This is quite a stretch and will come more naturally with ChiselTest. I am aware of the performance degradation due to the multithreaded execution where coroutines would be enough (not yet available in JVM land). You are right that this does not matter for small examples. But, but... When testing larger designs, such a processor in co-simulation, this might kick in. Anyway, I guess I trust in the development of ChiselTest to catch up here.
OK, you see there is some company getting involved to advance ChiselTest? But without testing Chisel is dying, right? |
That is true. The reason I am warning you of
I think the main problem here is that SiFive does not currently use ChiselTest afaik. Rocket chip has its own |
OK, but if we compare PeekPokeTest and ChiselTest: there is no development in PeekPokeTest, right? If we see any future in Chisel testing this should be (for now) ChiselTest, right? How many users are out there using PeekPokeTest and would not migrate to ChiselTest because of performance issues? |
So for the performance it's mildly complicated:
|
But overall usage-wise, my guess would be that it's more people don't want to rewrite code if they don't absolutely have to. We have for years (and still do) maintain a compatibility layer in base Chisel to accommodate rocket-chip. |
How much PeekPokeTest or ChiselTest is used in rocket-chip? Again to my original question: is PeekPokeTest just a dead end and any future design should use ChiselTest, or not? That is what I would like to describe in my next version of the book. A document for new designs (with minimal legacy) ;-) |
Does rocket-chip use either? I think rocket-chip predates both testing frameworks? Another complication: there's also the super-bare-basic testing framework in the chisel3 unit tests. Those shouldn't be externally used (but they probably are somewhere, somehow). Those are (mostly) pure RTL semantics, as opposed to the imperative model in PeekPokeTester and ChiselTest. |
How should internal Chisel3 unit tests influence the testing strategies of (external) Chisel designs? Those should be just local unit tests, right? |
I am about to revise the Chisel book for a third edition (ETA before summer). In the second edition, I had PeekPokeTester only. Currently, both are described, which I find confusing for a beginner book. I am wondering if I should completely switch to ChiselTest. Opinions?
What are the plans for version 1.x? Maybe 1.6?
The text was updated successfully, but these errors were encountered: