Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
898 Views

Best 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.
0 Kudos
2 Replies
Altera_Forum
Honored Contributor I
25 Views

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 I
25 Views

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;
Reply