Currently, timesets support the very basic name/period, but also some more intricate hierarchies of wavetables, wave groups, waves, and events for more complex modelling. See specs for what's currently supported.
O1 doesn't really have anything extra. Some features I'm going to go back and add as time allows:
Wavetable, wave group, etc. inheritance (feature from STIL).
Context managers for adding waves in a more user-friendly and block-like structure.
Add some helpers to easily add common waveforms, such as dut.timeset['t'].wavetable['w1'].clock_pin('clk_pin', 10) to basically create the events to clock a pin at 10 units with 50% duty cycle.
Add more checks to test for robustness (not exactly sure what yet, but I'm sure I'll find holes if I start looking).
That's all I've really got planned at the moment for timesets. Please pile on anything else you'd like to see here.
I guess O1 does have min/max period allowances/checking. Is that something we'd like to add here to? Wouldn't be too hard to do but not sure if its really used. Its not used by my group at all.
Currently, timesets support the very basic
name/period
, but also some more intricate hierarchies of wavetables, wave groups, waves, and events for more complex modelling. See specs for what's currently supported.O1 doesn't really have anything extra. Some features I'm going to go back and add as time allows:
dut.timeset['t'].wavetable['w1'].clock_pin('clk_pin', 10)
to basically create the events to clock a pin at 10 units with 50% duty cycle.That's all I've really got planned at the moment for timesets. Please pile on anything else you'd like to see here.