Comments (15)
I think we can add support for this with an annotation pretty easily now that Stage/Phase is in. An API would then be an annotation or CLI option string that you add that uses that string when calling Verilator.
from chisel-testers.
There is another option that we use as well (at least for VCS) for deleting existing commands on the command line, for example, if you want to allow X as initial values in your simulation:
vcsCommandEdits = """s/\+vcs\+initreg\+random //"""
from chisel-testers.
This seems good to me. No big rush on getting it done. We have workarounds now.
from chisel-testers.
Any progress on this one.
from chisel-testers.
@stevenmburns this has been languishing, but I will get to it in the next couple of days. Can you provide an example of the the two use cases described?
from chisel-testers.
Partially resolved by PR #161, remaining issue about how to remove flags that are hard coded right now:
In the long run, maybe we need a way to modify this Seq of flags. Not all of these are clearly always desired.
In particular “-debug_pp” (record all internal signals in the vpd file) and “+v2k” (if we are using “-sverilog” instead) come to mind.
Can we just expose it to the TesterOptions and then allow a user to manipulate it in scala?
val vcsFlags = Seq("-full64",
"-quiet",
"-timescale=1ns/1ps",
"-debug_pp",
s"-Mdir=$topModule.csrc",
"+v2k", "+vpi",
"+vcs+lic+wait",
"+vcs+initreg+random",
"+define+CLOCK_PERIOD=1",
"-P", "vpi.tab",
"-cpp", "g++", "-O2", "-LDFLAGS", "-lstdc++",
"-CFLAGS", "\"%s\"".format(ccFlags mkString " ")) ++
moreVcsFlags ++
blackBoxVerilogList
from chisel-testers.
My idea to override +vcs+initreg+random
with +vcs+initreg+x
didn't work. (The "+x" suffix is not valid in newer versions of VCS.)
So I'll need something more near term. I'll just remove the +vcs+initreg+random
from our build and add it when we need it. You should probably implement either exposing the vcsFlags sequence or your RegEx-based removal idea.
from chisel-testers.
@stevenmburns: I have a new PR #163 that gives ad hoc editing capabilities to the vcs command. Please check it out when you have a chance. It's a bit hacky but I felt I was getting bogged down trying to figure out a more general way of exposing the vcs command construction to the options manager system
from chisel-testers.
I need to use custom command line options for the verilator backend. Is there any way to do this other than forking iotesters?!
from chisel-testers.
Alright, I just found out that moreVcsFlags
works for Verilator too!
But I think there's room for improvement on the documentation side as well as for the naming of the option.
from chisel-testers.
Is there a way to use annotations (instead of ExecutionOptionsManager
) with the Driver
API?
from chisel-testers.
It's in Chisel and FIRRTL, but not yet in all other projects (we're working on it). Summarily, execution options are deprecated in 3.2/1.2 in favor of annotations and you should be able to control everything that way.
from chisel-testers.
At least in the master versions, Stage/Phases/Annotations is also in both treadle and testers2 and both provide additional feedback as to how to implement and pass annotations around. The TreadleRepl
is probably a good thing to look at.
from chisel-testers.
I am wonder what the status of this issue is though. It looks to me like it has been addressed with the various PR's noted within. If there is something left to do here it might be a good idea to make a new more focused issue. Can this be closed?
from chisel-testers.
Yes, we can close it.
from chisel-testers.
Related Issues (20)
- Deprecated Driver since Firrtl 1.2 HOT 3
- PeekPokeTester Type inference HOT 1
- Support CXXFLAGS, LDFLAGS environment variables
- Supporting ZIO fibers HOT 8
- [BUG] verilator: 0-width signals in Decoupled Bundle lead to incorrect peek HOT 4
- firrtl backend with ChiselFlatSpec assert fails weirdly HOT 1
- verilator poke incorrect signal for 0-width RRArbiter HOT 7
- have plan to port UVM into chisel test
- should work with verilator *** FAILED ***
- Can't poke MixedVec HOT 6
- poke io as different format using bundle in PeekPokeTester HOT 1
- Peek/Poke/Step/Expect messages not displayed HOT 7
- firrtl vs. verilator behave different HOT 6
- Make Treadle the Default Backend HOT 2
- Clock is initialized at 1 instead of 0 HOT 1
- g++ compile error while adding --trace-fst to verilator options
- [Question] How to use of tester2 (installation) HOT 1
- Inconsistence between VCD and log
- Removed `io` in Module cause compilation error HOT 2
- java.lang.VerifyError
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 chisel-testers.