これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド Alliance-genpat です。
プログラム:
NAME
ゲンパット, プロシージャルパターンファイルジェネレーター
SYNOPSIS
ゲンパット [-v] [-k] [ファイル]
DESCRIPTION
ゲンパット 入力パターンファイルの手続き型記述を可能にする C 関数のセットです
ロジックシミュレータ用 アシムット。 ユニックス ゲンパット コマンドは C ファイルを入力として受け入れ、
パターン記述ファイルを出力として生成します。 拡張子「.c」は付けません。 の
によって生成されたファイル ゲンパット pat 形式なので、参照することを強くお勧めします。 パット(5)
このマニュアルの前に。
OPTIONS
-v 詳細モード
-k 完了後にコンパイル Makefile とともに実行可能ファイルを保持します
ゲンパット FILE FORMAT
ユーザーの観点から見ると、 ゲンパット すべて標準の C を使用するパターン記述言語です。
機能 (インクルード、定義、変数、ループなど)。 提供される機能 ゲンパット にあります
指定された順序で使用されます。 異なる順序で使用してもシステムはクラッシュしませんが、
実行エラーが発生します。 次に入力ファイルについて説明します。
A パット フォーマットファイルは宣言部分と記述部分の XNUMX つの部分に分けることができます。
宣言部分は、入力、出力、内部信号、レジスタのリストです。
入力は特定の値に強制され、他のすべての値はその間監視されます。
シミュレーション。
説明部分はパターンのセットであり、各パターンが入力の値を定義します。
そして出力。 パターン番号は実際にはシミュレータの絶対時間を表します。
同様に、a ゲンパット ファイルは宣言部分と記述部分の XNUMX つの部分に分けることができます。
宣言に関連する関数は、宣言に関連する関数よりも前に呼び出す必要があります。
説明部分。
宣言 部
この部分で最初に行うべきことは、出力ファイルの名前を指定することです。
(参照してください DEF_GENPAT(3))。 次に、この部分では入力を宣言できます。
出力、および内部観測ポイント (を参照) 宣言する(3))。 以下のことも可能です
仮想アレイを作成します (「 アレイ(3))。
説明 部
すべての信号が宣言された後、入力値の定義を開始できます。
回路の入力または出力値に適用される
シミュレーション中に生成された値と比較します。 (見る 影響(3))。 ゲンパット
イベントによる刺激を説明します。信号遷移のみが説明されています。 これ
この部分では、シミュレーション ツールに指示を与えて、
シミュレーション終了時の回路の状態。 (見る セーブ(3))。 最後にあなたは
この部分で行うべきことは、出力ファイルを生成することです (「 SAV_GENPAT(3))。
関数
DEF_GENPAT() 出力ファイルの名前を定義します。
SAV_GENPAT() 出力ファイルを生成させる
宣言() 入力、出力、および内部観測点を宣言します。
配列() 同じタイプの信号を「仮想配列」にグループ化できます。
彼らの操作を容易にするために
初期化() レジスタの値を XNUMX つのパターン間で変更します。
影響する() 指定されたパターン番号で信号に値を割り当てます。 この値は保持されます
新しい値が信号に割り当てられるまで、信号をオンにします。
保存() 終了時に回路の状態を保存するようにシミュレーション ツールに通知します。
ラベル() 現在のパターンにラベルを付けます
GETCPAT() 現在のパターンの番号を返します
例
#include
#include "genpat.h"
char *inttostr(エンター)
int 全体;
{
文字 * 文字列;
str = (char *) mbkalloc (32 * sizeof (char));
sprintf (str, "%d",entier);
戻り値(文字列);
}
/*------------------------------*/
/* 説明の終わり */
/*------------------------------*/
メイン()
{
int i;
int j;
int cur_vect = 0;
DEF_GENPAT("例");
/* インターフェース */
DECLAR ("a", ":2", "X", IN, "3 downto 0", "" );
DECLAR ("b", ":2", "X", IN, "3 downto 0", "" );
DECLAR ("s", ":2", "X", OUT, "3 downto 0", "" );
DECLAR ("vdd", ":2", "B", IN, "", "" );
DECLAR ("vss", ":2", "B", IN, "", "" );
LABEL (「加算器」);
AFFECT ("0", "vdd", "0b1");
AFFECT ("0", "vss", "0b0");
for (i=0; i<16; i++)
{
for (j=0; j<16; j++)
{
AFFECT (inttostr(cur_vect), "a", inttostr(i) );
AFFECT (inttostr(cur_vect), "b", inttostr(j) );
cur_vect++;
}
}
SAV_GENPAT ();
}
ENVIRONMENT 変数
ゲンパット 環境変数 VH_PATSFX を読み取り、結果ファイルに拡張子を付けます。
onworks.net サービスを使用してオンラインで Alliance-genpat を使用する