Giter VIP home page Giter VIP logo

chiselverify's Issues

Compile error

When running sbt test we get following error:

[error] /Users/martin/source/chisel-uvm/chisel-verify/src/test/scala/coverage/CoverageDB.scala:60:48: value strip is not a member of String
[error]             coverIdPortMap update (dutPortName.strip(), dutPort)
[error]                                                ^
[error] one error found
[error] (Test / compileIncremental) Compilation failed

Remove ChiselTest dependency

ChiselVerify is currently dependent on ChiselTest, which is no longer supported in Chisel 6.

Many features from ChiselTest have been integrated into the CIRCT compiler directly, which now has its own simulator arcilator. Using arcilator we can easily reimplement the peek-poke-expect interface that we rely on from ChiselTest. This would allow ChiselVerify to survive past the deprecation of ChiselTest.

Then we would need to find a suitable replacement for ChiselTest's fork and join functionalities and we would have a complete replacement for our uses.

One test aborted

One of the tests is aborted. Furthermore, the tests run too long. 23 minutes on my laptop.

[Discussion] What is the future of ChiselVerify?

ChiselVerify currently lacks users, as many of its features are now part of the core Chisel language, and the parts that aren't perform very poorly (because of its implementation purely as a Scala library). Additionally, the library is very poorly tested, which limits the trust people can have in it. Certain aspects such as the approximate design error metrics are still quite useful, but we simply lack wide-scale adoption.

What should the future of ChiselVerify look like? Should it pivot towards more custom instrumentation passes in CIRCT to improve the performance? Should we pivot towards being a Chisel generation framework to avoid slow implementations for things supported in the core language?

I'm honestly not sure, which is why I want to open this up to discussion to see what is worth doing with this library?

Leros code generation

The following assumption is not true:

// leros uses the lower part of main memory as a register file

It would be a legal implementation to map the registers into memory. Which would save resources and also gives a fast context switch. However, it is probably inefficient. If so, I would not put it at address 0.

Is this assumption anywhere considered in the test generation?

PriorityQueue tests failing seemingly at random

The functionality tests for the priority queue have each been failing seemingly at random from one run to the next.
Sometimes MemoryTest fails, sometimes PriorityQueueTest fails, and sometimes they both pass...

This should be really made consistent, as it either shows that the functionality of the PriorityQueue is wrong, or that the test is wrong.

@tjarker Please look into this.

Coverage report

Could you please tell me how to get code coverage? I have read the paper you published and also studied the examples you gave in the source code.
code coverage
It looks like there is just a picture in the paper, but no specific method is pointed out in the documentation or an example given in the source code?

Maven Online Repository Update Request

Hello, I found that in the latest version of chisel verify, you have commented out require in lines 166 and 292 of chiselverify/coverage/CoverReport, but the version you uploaded to the maven online repository has not been updated subsequently.
Could you please update it, thank you~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.