Forum Discussion
Altera_Forum
Honored Contributor
8 years agoBest practices for verifying PWM (measuring time)...
Folks:
I am writing a testbench for a pulse-width modulator and wanted to check for several hundred different values. I figured I'd use a loop for each value, but I'm not sure of the best way to confirm (using assert) that the pulse is the correct length for each value. I was planning on just using a "wait until" and then "now - output'last_event" but I want to use the loop index in a comparison with a time value, which isn't going to work. I suppose I could use some sort of inner loop that counted the clock cycles, but that seems very clunky. I'd appreciate any recommendations or links to good resources.2 Replies
- Altera_Forum
Honored Contributor
Perhaps this post might help...
https://alteraforum.com/forum/showthread.php?t=6493 Combine that with a 'wait until {rising/falling edge(signal)}' and you should be able to automatically measure the mark or space width. Cheers, Alex - Altera_Forum
Honored Contributor
You can use the 'stable' VHDL attribute with a value consistent with the pwd command.
Example: assert pwm_out'stable(TIME) report "signal is not stable during the expected time" severity error;