Powered by SmartDoc

記述例

Perlで記述するので, Perlがサポートする任意の文を使ってテストベクタを書くことができます.各サブルーチンの説明は, 章[サブルーチン別マニュアル]を見てください.また,チュートリアルを章[チュートリアル]に用意しています.

記述例
#!/usr/bin/perl
use ST; # STパッケージ利用
level 0,5.0; # 入力レベルの指定
target "verilog"; # ターゲットの指定
module "calc"; # モジュール名の指定
channelfile "mot23-chip-dut.csv"; # テスタチャネル指定
verilog_logfile "alu_st.log"; # 期待値比較の結果の出力ファイル
shm "calc","AC"; # shm波形出力の指定
pin "CE","input","defval=0","loc=5"; # ピンの指定
pin "CLK","clock","loc=7"; # CLKはクロック信号
pin "RST","input","defval=1","loc=6";
pin "decimal[9:0]","input","defval=0","loc=35:30 22 21 18 17";
pin "equal","input","defval=0","loc=8";
pin "minus","input","defval=0","loc=9";
pin "plus","input","defval=0","loc=16";
pin "out[6:0]","output","defval=0","loc=48:42";
pin "overflow","output","defval=0","loc=49";
pin "sign","output","defval=0","loc=50";
timing 1e-09,1e-08,10; # タイミングの指定. 1nsの刻み幅で, 10nsの周期. 1周期を10に分割
waveform "input","dnrz",".%........","CE","decimal","minus","plus","equal"; \
    # 波形の指定
waveform "input","r1",".%%%%%%%%.","RST"; 
waveform "output",".........%","out","overflow","sign";
clock "CLK","1111100000"; #クロック波形の指定
pinorder \
    "CE","RST","decimal","equal","minus","plus","out","overflow","sign";
#波形記述順の指定
beginvector;
vector  0,1,0,0,0,0,"X","X","X"; # pinorderで指定した順番に指定
svector "RST=0"; # 指定したピン以外はすべてdefvalで与えた値. 
svector "decimal=3";
svector "out=3";
svector "decimal=2";
stimulus "plus=1"; #指定した値以外は前のサイクルの値を保存
stimulus "plus=0"; 
endvector;