% render "layouts/guides.html" do
All of the
[Common Pattern API](<%= path "guides/pattern/common" %>) 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.
#### Driving Custom Waveforms
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:
~~~ruby
# 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':
~~~text
_______ _______ _ _ _ _ _ _ _ _ _______
clk _______| |_______| |_| |_| |_| |_| |_| |_| |_| |_| |_______| |
~~~
#### SmarTest 8
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](<%= path "guides/runtime/environment" %>) as shown here:
~~~ruby
# 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:
~~~ruby
# environment/v93k_smt8.rb
OrigenTesters::V93K.new smt_version: 8,
zip_patterns: false
~~~
% end