You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,6 +31,8 @@ pip install cocotb
31
31
32
32
You will also need your favorite SystemVerilog simulator to do cosimulation between ROHD and SystemVerilog modules. ROHD Cosim does *not* do any SystemVerilog parsing or SystemVerilog simulation itself.
33
33
34
+
See the section on [support and limitations](#support--limitations) for more details on simulators, versions, limitations, etc.
35
+
34
36
## Using ROHD Cosim
35
37
36
38
There are two steps to using ROHD Cosim:
@@ -153,6 +155,16 @@ The diagram below shows how the port configuration connects to your simulation.
ROHD Cosim depends on cross-compatibility with SystemVerilog simulators and the libraries from cocotb that enable VPI-based communication between them. Because of this, there are some limitations which may be version and simulator specific, as well as some fundamental limitations that have to do with the communication mechanisms.
161
+
162
+
- The simulation must occur over time. That is, it is not possible to have a "purely combinational" block of logic, change an input, and view an instantaneous output change, as you normally can with ROHD modules. This is because coordination between the ROHD simulation and the SystemVerilog simulator is coordinated by `Simulator` phasing. Therefore, changes on the output of a SystemVerilog cosimulated module will not update until some time has passed.
163
+
- ROHD Cosim can support simulators supported by cocotb, but has only been tested with those officially listed in the [`SystemVerilogSimulator` enum](https://intel.github.io/rohd-cosim/rohd_cosim/SystemVerilogSimulator.html).
164
+
- Cross-version compatibility between ROHD Cosim, cocotb, and SystemVerilog simulators can, unfortunatley, be delicate. Check the [simulator support documentation from cocotb](https://docs.cocotb.org/en/stable/simulator_support.html) for more details about which versions of which simulators will work well with which versions of cocotb (and thus ROHD Cosim).
165
+
- Different SystemVerilog simulators have different limitations and capabilities, and thus those features would be limited in cosimulation as well. For example, Verilator does not support X/Z values.
166
+
- In/Out ports and bidirectional wires are supported in ROHD Cosim, as they are in ROHD, however contention may not be calculated at these port boundaries in a realistic way. This has to do with how ROHD Cosim sends and receives updates with the SystemVerilog simulator. If the SystemVerilog simulator resolves a value or contention on an inout port, it may not be possible for ROHD to determine whether the contention can/should break, for example.
0 commit comments