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: text/0074-structured-vcd.md
+10-3Lines changed: 10 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -94,7 +94,7 @@ We propose the following conventions:
94
94
- The `vhdl_array` scope defines a group of signals belonging to an array (such as a signal with `ArrayLayout`)
95
95
- The `vhdl_record` scope defines a structured group of signals (such as a signal with `StructLayout`)
96
96
97
-
> **NOTE**: (Implementation goes here)
97
+
> **NOTE**: (Implementation details pending)
98
98
> ...
99
99
100
100
@@ -189,7 +189,10 @@ $upscope $end
189
189
- The choice of `scope vhdl_array` and `scope vhdl_record` are suggested due to known compatibility with Surfer and GTKWave.
190
190
However, note that these are not part of the VCD specification (which is somewhat old and under-defined).
191
191
192
-
- One alternative would be to include support for a different waveform format that has better-defined support for variables with composite datatypes.
192
+
### Alternatives
193
+
194
+
- Expose an environment variable (or a parameter in `write_vcd()`) allowing users to opt-in/opt-out of structured VCD output
195
+
- Include support for a different waveform format that has better-defined support for variables with composite datatypes.
193
196
194
197
## Prior art
195
198
[prior-art]: #prior-art
@@ -204,9 +207,13 @@ $upscope $end
204
207
- Should we continue to include the "flattened" [pure bit-vector] representation of aggregate signals in the VCD?
205
208
- Does this feature need to be gated/opt-in by default?
206
209
210
+
- The simulator currently depends on [westerndigitalcorporation/pyvcd](https://github.com/westerndigitalcorporation/pyvcd) when writing VCD files.
211
+
However, `pyvcd` only emits scope types defined by the VCD specification (and does not include the `vhdl_record`/`vhdl_array` scopes).
212
+
When implementing this RFC, should we continue relying on `pyvcd`, or does this warrant the addition of our own code in the simulator for writing VCD files?
213
+
207
214
## Future possibilities
208
215
[future-possibilities]: #future-possibilities
209
216
210
217
Since this adds more overhead to VCD output, it's worth mentioning that VCD may be unsuitable for testing very large designs.
211
-
This RFC may be a stepping stone to considering support for alternative waveform formats in the future.
218
+
This RFC can also serve as a stepping stone for supporting alternative waveform formats in the future.
0 commit comments