バッチモードリンティング用のスクリプト作成

はじめに

多くALINTユーザーは、グラフィカル·ユーザー·インターフェース(GUI)でインタラクティブにツールを実行し、マウスやホットキーを使用して必要なすべてのアクションを実行します。しかしながら、ツールはもう2つのモードで機能できます:

  1. インタラクティブ・コマンドライン

  2. バッチ

ALINTが作動できるどんなモードでも効率的にスクリプトとマクロコマンドに利用できますが、それらはインタラクティブ・コマンドラインおよびバッチ・モードの絶対的な必須アイテムです。このドキュメントでは、あなたが効率的にデザイン·リンティングのスクリプトを作成する必要不可欠なコマンドを紹介します。

ツールの動作モード

表1に記載したようにALINTは、3つの異なるモードで動作することが出来ます。

表1: 動作モード

モード

内容

起動方法

GUI

インタラクティブ・グラフィカルインタフェース: ウィンドウ、メニュー、プッシュボタンとコンソールウィンドウでのコマンドライン

デスクトップのアイコン、またはOSコマンドシェルから下記コマンドを実行します:

> runalint

インタラクティブ・コマンドライン

インタラクティブ・コマンドライン、GUI無し

デスクトップのアイコン、またはOSコマンドシェルから下記コマンドを実行します:

> runalintcon

バッチ

非インタラクティブバッチ実行。GUI、およびインタラクティブ・コマンドライン無し

OSコマンドシェルからコマンドを実行します:

> vlint

Typical Script Line-by-Line

このセクションは、TCLスクリプトでリンティングを実行する際に使用するコマンドの例を紹介します:

ワーキングディレクトリの設定

set DSN (c:/my_designs/alint_demo)

cd $DSN

変数'DSN'にワーキングディレクトリパスを保存

ワーキングディレクトリの設定

ワーキングライブラリの作成とクリア

Note: コンパイル結果は、ワーキングライブラリ内に保存される

alib work

set worklib work

adel -all

ライブラリ'work'を作成

'work'をでデフォルトライブラリに設定

デフォルトライブラリをクリア

リンティング·プロセスを実行

ヒント: マルチラインでコマンドを使用する場合、'\' を使用

alint -f "$DSN/src/files.lst" \

-alint_policy DEFAULT \

-alint_avdb results.avdb \

-alint_gclk top.CLK1 -alint_gclk top.CLK2 \

-alint_grst top.RST \

'files.lst'内のファイルリストをチェック

ビルドインされている'DEFAULT'ポリシーを使用

'results.avdb'に結果を保存

クロック信号として'CLK1'と'CLK2'を扱う

リセット信号として'RST'を扱う

Manipulate the results

avdb2html results.avdb -report critical.html \

-rulelevel rule -rulelevel r1 \

-order_asc source -order_asc rule

.html レポート生成 [1]、含める情報:

- 'Rule'と Recommendation-1'のみ

- ファイル名とルールによるグループ化

avdbcopy results.avdb results_uut_a.avdb \

-instance_regexp {UUT_A.*}

別データベースにコピーするサブセット:

- 'UUT_A' 階層構造内のバイオレーション

avdbcompare res1.avdb res2.avdb \

-source "./src/tx.v" \

-report tx_comparison.txt \

-o tx_comparison.avdb \

-summary console

データベース'res1'と'res2'をコンペあ:

- tx.vファイルだけにおける違反を考察

- コンペあ結果を'tx_comparison.txt'に保存

- 'comparison.avdb'にも保存

- 高レベルサマリをコンソールに表示

NOTE: 変数にリンティングオプションをすべて保存してからALINTにこの変数値を渡したい場合は、evalのコマンドを使用する必要があります。たとえば:

set ALINT_OPTS {-alint_policy DEFAULT \ 
-alint_avdb results.avdb \ 
-alint_gclk top.CLK1 -alint_gclk top.CLK2 \ 
-alint_grst top.RST} 

eval alint $ALINT_OPTS -f "$DSN/src/files.lst"

通常、スクリプトは.doか.tcl拡張子があるファイルとして保存します。スクリプトがいったん保存されると、GUIかインタラクティブ・コマンドラインモードの何れかからそれを実行することが可能です:

  • GUIからスクリプトを実行するにはrunalint コマンドを実行しツールを起動します。 File Browser ウィンドウでスクリプトを右クリックし、Execute を選択します。構文ハイライト、キーワードの自動保管を備えた専用のHDL Editor ウィンドウでスクリプトの編集、および選択されたスクリプト破片を実行することが可能です。

  • インタラクティブ・コマンドラインモードで実行するには、runalintcon,コマンドでツールを起動し、 do コマンドをタイプ、Enter キーを押します

  • バッチモードで実行するには、vlibをスタンドアローンで実行しワーキングライブラリを作成後、vlint スタンドアローンコマンドを使用します(alint コマンドと同じ引数を受け付けます). 詳細に関しては、バッチモードでの注意事項セクションを参照

バッチモードでの注意事項

バッチモードの場合、覚えやすいいくつかのスタンドアローンのコマンドがあります:

  • vlib – ソースファイルのコンパイルに関する情報を保存するライブラリの作成

  • vdel – ライブラリのクリア

  • vlint – デザインリンティングの実行、alint コマンドと同じ引数を使用

下記シーケンスは、デザインリンティングを使用するためのスタンドアロンコマンドの例になります:

# Create the working library (library work is used by vlint by default)
> vlib work
ALIB: Library `work' attached.
work = c:\my_designs\alint_demo\work\work.lib

# Clear the working library
> vdel -lib work -all
ADEL: All units removed from library `work'.

# Run linting for VHDL file (-c stands for Console)
> vlint -c -acom mux.vhd

# Run linting for Verilog file, use STARC_RTL policy
> vlint -c -alint_policy STARC_RTL -alog mux.v

リンティングスクリプトを持っている場合、-do 引数でvlintで実行することが可能です:

> vlint -c -do run.do 

ヒント: 自動的にvlint を終了しOSシェルに戻りたい場合、quit コマンドをスクリプトの最後で使用してください

リファレンス

  • [1] avdb2html は、いくつかの便利なオーダーによって結果をフィルタおよびグループ化することにより、求められた違反のサブセットにフォーカスする違反データベースをリストするコマンドクラスに属します。avdb2txtavdb2csv は、データベースをリストするさらに2つのコマンドです。それぞれに応じて、.txt と .csv フォーマットのリストを作成することが可能です。詳細に関しては、User's Guide | Working with Results | AVDB Files Listing を参照

Ask Us a Question
x
Ask Us a Question
x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.