Who says boundary-scan is only 1’s and 0’s???
Traditional vector-based tests are ideal for testing boundary-scan interconnects, memory devices and other logic that returns a predictable digital response. However, what do you do when you cannot predetermine an expected response in order to do a logical comparison?
Take for instance an Analog to Digital Converter (ADC) circuit. You can provide a known (analog) stimulus giving you an idea of what results to expect in terms of a digitized value of the analog stimuli between a high and low limit. However, doing a simple logical comparison is not possible for the Least Significant Bits of the ADC due to slight variations, even when the digitized value is within specification.
Using a language based approach, such as JTAG Functional Test (JFT) built on the popular Python programming language, one can test the aforementioned ADC circuit by calculating the digitized representation of the Analog stimulus and verifying it is between high and low limits.
JFT also enables other measurements not possible with vector based tests such as measurement of pulse widths. This can be extremely useful for testing of reset circuitry for example, and is easily done by using the “time” module available in Python. In figure 1 is the code to issue a board reset, then measure the resultant reset pulse generated by a Texas Instrument TPS3823-33 Processor Supervisory Circuit, and test that the pulse is within the specified time defined in the datasheet.
Using a powerful programming language such as Python enables testing of circuits otherwise untestable with standard vector-based techniques and opens the door to limitless possibilities.
