Comments (5)
@jackkoenig This issue is actually blocking me right now. Aside from manually hacking this file in my clone of the repository, is there any way I can override this so as to continue to make progress with the unfixed chiseltest? I noticed that, unfortunately, VerilatorSimulator.generateHarness is private. :-/
from chiseltest.
It seems that now one is supposed to use timeInc
, which would help here, since the simulator state is not a singleton. Not sure how to do this, though.
from chiseltest.
verilator/verilator#2660 (comment)
from chiseltest.
Find the fix below. I'd push it into a PR, but I don't have commit rights.
From 2d0144262231b807acb3aab8463763d6af7f2d60 Mon Sep 17 00:00:00 2001
From: "Wesley W. Terpstra" <[email protected]>
Date: Thu, 7 Jul 2022 22:32:27 -0700
Subject: [PATCH] verilator: fix $time
We need to set the time on the simulator context.
Otherwise, $time returns 0 all the time.
---
.../simulator/jna/VerilatorCppJNAHarnessGenerator.scala | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/main/scala/chiseltest/simulator/jna/VerilatorCppJNAHarnessGenerator.scala b/src/main/scala/chiseltest/simulator/jna/VerilatorCppJNAHarnessGenerator.scala
index 3e32a65..c4016e9 100644
--- a/src/main/scala/chiseltest/simulator/jna/VerilatorCppJNAHarnessGenerator.scala
+++ b/src/main/scala/chiseltest/simulator/jna/VerilatorCppJNAHarnessGenerator.scala
@@ -258,12 +258,14 @@ static sim_state* create_sim_state() {
|
|static int64_t _step(VERILATED_C* tfp, TOP_CLASS* top, vluint64_t& main_time) {
| $clockLow
+ | Verilated::defaultContextp()->time(main_time);
| top->eval();
|#if VM_TRACE
| if (tfp) tfp->dump(main_time);
|#endif
| main_time++;
| $clockHigh
+ | Verilated::defaultContextp()->time(main_time);
| top->eval();
|#if VM_TRACE
| if (tfp) tfp->dump(main_time);
--
2.27.0
from chiseltest.
I tried upgrading the code to use a locally allocated context, but there were too many call sites into the test harness where you did not have a sim_state
pointer, so I gave up and took the easy fix.
from chiseltest.
Related Issues (20)
- JRE detects `EXCEPTION_ACCESS_VIOLATION` when trying to use Verilator as Chiseltest's backend HOT 2
- Report assert message with `FailedBoundedCheckException` HOT 1
- Generate waveform file in real-time HOT 1
- chiseltest gets the signal name wrong when trying to peek, poke, or expect an OpaqueType HOT 3
- Solver Chosen Constants for Formal Verification HOT 3
- scala.NotImplementedError: TODO: convert ThrowOnFirstErrorAnnotation HOT 3
- Bundle literal construction outside test() is not allowed in Chiseltest 5.0.0 (works in 0.5.4) HOT 2
- assertion failed: The Chisel compiler plugin is now required for compiling Chisel code HOT 1
- The waveform doesn't reflect changes in the input port until io.clock.peek HOT 1
- scala.NotImplementedError: TODO: convert DecodeTableAnnotatio HOT 7
- Will there be a chiseltest 6.0.0? HOT 16
- Frequent crash on macOS with the threaded Verilator backend HOT 6
- AXI4RAM test failed on chiseltest 5.0.2 HOT 2
- Cant ```import chiseltest._``` HOT 1
- Bitwuzla has changed it's command line argument format HOT 1
- [WARNING] Unsupported annotation: SRAMAnnotation
- [Help]A TLRAM test failed log HOT 8
- What are the future use cases of ChiselTest if it is replaced by ChiselSim? HOT 4
- Who is the copyright holder of chiseltest and what is the license? HOT 1
- one step takes extremely long time to complete HOT 2
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 chiseltest.