Quantcast
Channel: Jason Andrews Blog
Viewing all articles
Browse latest Browse all 33813

Measurement of delay between change in value of two buses created using Analog to Digital function

$
0
0
Please refer to the waveform shown in the attached screenshot. bf_idx0_d1_o is a bus where all the bits transition from high to low or low to high at roughly the same instant of time. However there is a slight spread in the exact time when each of the individual nets transition. This results in the 'digital' value of the bus obtained after Analog to Digital Conversion to toggle for some time before settling to a final value. In my calculations I need to measure the time from the instant the bus reaches a stable value to the instant when a single bit output signal (op_ko) toggles in the same high-to-low or low-to-high direction. If I use the delay function in the Visualization and Analysis XL calculator, it gives me the time from when any of the bits of the bus first cross the threshold value. The formula I am using is awvCreateBus("bfidx0" list(awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") awvAnalog2Digital(v("/bf_idx0_d1_o " ?result "tran") nil nil 0.5 nil "centre") ) "Binary") and the value I get is 238 ps at 4.235 ns. You will however see in the figure that the bus actually stabilises at 4.3 ns. How do I modify the formula to get this functionality. If the screenshot is not visible in the post, I have also uploaded it to my public Dropbox here https://www.dropbox.com/s/3njgofoda3cfajt/delay_measurement_virtuoso.JPG?dl=0 Regards, Prashant

Viewing all articles
Browse latest Browse all 33813

Trending Articles