Comments (3)
For example, in the testbench above, my (limited, maybe wrong) understanding is that dut.clockDomain.forkStimulus(10) call somehow sets the clock and reset signal during each iteration of the eval loop
Not necessarly each eval loop.
SpinalSim emulate time on the top of verilator. So if you have other things happening at other times, that forkStimulus isn't involved.
dut.io.limit #= 7 is executed after some clock cycles have already been evaled by the model
dut.io.limit #= 7 isn't part of the model, it is software.
in SpinalSim, when you do a #= it will always be visible after the end of the current delta cycle and before the start of the next delta cycle
waitSampling() will wait until the clock sampling is detected. It doesn't trigger eval.
In other words, SpinalSim emulate time on the top of verilator by having a queue of callback to execute on given timestamp. that's mostly it ^^
from spinalhdl.
@hMihaiDavid You gave Dolu's answer a thumbs up, did his response answer your question? In that case we could close the Issue.
Two quick hints:
- In the simulation threads are not "real" threads, but run serially so you don't need any locking etc.
- It's not required, but if you have some question that's not a bug or something you can ask them in the gitter chat - more eyes there that can help
from spinalhdl.
It's much more clear now, thank you both.
from spinalhdl.
Related Issues (20)
- `privateNamespace` changes BlackBox component name HOT 2
- 『Help』Component Interface Name Changes Result in SpinalHDL Generating Excessive Redundant Module.v Files. HOT 5
- Register fields with AccessType ROV don't get names HOT 1
- When’ Requirement: Merging ‘setWhen’ and ‘clearWhen’ in Verilog Output HOT 3
- Assignment error with scala int `0x...` literal HOT 4
- fixTo is broken when range minimum is negative and using rounding with align option HOT 1
- ClockDomain.newSlowedClockDomain uses current clock domain rather than clockdomain on which it is called
- Nesting SlowAreas produces unexpected results HOT 1
- Formal: support for temporal sequences HOT 17
- Formal proofs started to fail with newer versions of sby HOT 11
- Could you please advise if there is any method to generate a port in the format of [lsb:msb]? HOT 6
- Porting to spinalHDL HOT 4
- Rethink on pastValid function.
- trait use help HOT 3
- Porting SpinalHDL to CIRCT? HOT 5
- PackedBundle EndiannessSwap HOT 2
- Support for AMBA ACE4 HOT 9
- About convenient anonymous bundle. HOT 6
- AhbLite3OnChipRam (and Rom) do not support aligned access less than word size
- switch generate redundant verilog code HOT 3
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 spinalhdl.