All of the Common Pattern API can be used to target the V93K.
This page is used to document any additional V93K-specific APIs related to pattern generation, however the goal is to have as few of these as possible so that Origen pattern source code can re-target automatically to any supported platform.
The V93K has a very powerful waveform generator and it is common to use many more pin state codes than other platforms in order to select particular waveforms.
Say for example that we have various waveforms defined to drive a clock pin, where a ‘1’ on the pin will drive a single pulse and a code of ‘P’ will select a different waveform which will create 4 pulses per cycle.
The ‘P’ code (or any other letter) can be driven very easily as shown below:
# Example vectors pin(:clk).drive!(1) # 1 X XXXX 10100001 1.cycle # 1 X XXXX 10100001 pin(:clk).drive!('P') # P X XXXX 10100001 1.cycle # P X XXXX 10100001 pin(:clk).drive!(1) # 1 X XXXX 10100001
The above vectors would produce the following waveform per the earlier description of ‘P’:
_______ _______ _ _ _ _ _ _ _ _ _______ clk _______| |_______| |_| |_| |_| |_| |_| |_| |_| |_| |_______| |
The Origen V93K driver supports generating patterns into both SMT7 and SMT8 pattern formats.
To enable SMT8 format, set the
smt_version: attribute to 8 when instantiating the tester in your
application environment as shown here:
# environment/v93k_smt7.rb OrigenTesters::V93K.new # environment/v93k_smt8.rb OrigenTesters::V93K.new smt_version: 8
SMT8 patterns can either be in a zipped/binary format, or an ASCII file format. Zipped is the default, but the ASCII format can sometimes be useful when visually inspecting patterns or when comparing them via a difftool. To enable ASCII format patterns, configure your environment like this:
# environment/v93k_smt8.rb OrigenTesters::V93K.new smt_version: 8, zip_patterns: false