Vivado シミュレータでは、次の表に示すように、よく使用されるテストテストベンチ機能の一部がサポートされています。
プライマリ コンストラクト | セカンダリ コンストラクト | LRM セクション | ステータス |
---|---|---|---|
文字列データ型 | 6.16 | サポートあり | |
文字列演算子 (IEEE 1800-2012 の表 6-9) | 6.16 | サポートあり | |
len() | 6.16.1 | サポートあり | |
putc() | 6.16.2 | サポートあり | |
getc() | 6.16.3 | サポートあり | |
toupper() | 6.16.4 | サポートあり | |
tolower() | 6.16.5 | サポートあり | |
compare | 6.16.6 | サポートあり | |
icompare() | 6.16.7 | サポートあり | |
substr() | 6.16.8 | サポートあり | |
atoi()、atohex()、atooct()、atobin() | 6.16.9 | サポートあり | |
atoreal() | 6.16.10 | サポートあり | |
itoa() | 6.16.11 | サポートあり | |
hextoa() | 6.16.12 | サポートあり | |
octtoa() | 6.16.13 | サポートあり | |
bintoa() | 6.16.14 | サポートあり | |
realtoa() | 6.16.15 | サポートあり | |
動的配列 | 7.5 | サポートあり | |
動的配列 (新規) | 7.5.1 | サポートあり | |
サイズ | 7.5.2 | サポートあり | |
削除 | 7.5.3 | サポートあり | |
連想配列 | 7.8 | サポートあり | |
ワイルドカード インデックス | 7.8.1 | サポートあり | |
文字列インデックス | 7.8.2 | サポートあり | |
クラス インデックス | 7.8.3 | サポートあり | |
積分インデックス | 7.8.4 | サポートあり | |
その他のユーザー定義型 | 7.8.5 | サポートあり | |
無効インデックスへのアクセス | 7.8.6 | サポートあり | |
連想配列メソッド | 7.9 | サポートあり | |
num() および size() | 7.9.1 | サポートあり | |
delete() | 7.9.2 | サポートあり | |
exists() | 7.9.3 | サポートあり | |
first() | 7.9.4 | サポートあり | |
last() | 7.9.5 | サポートあり | |
next() | 7.9.6 | サポートあり | |
prev() | 7.9.7 | サポートあり | |
トラバース メソッドへの引数 | 7.9.8 | サポートあり | |
連想配列代入 | 7.9.9 | サポートあり | |
連想配列引数 | 7.9.10 | サポートあり | |
連想配列リテラル | 7.9.11 | サポートあり | |
[Queue] | 7.10 | サポートあり | |
キュー演算子 | 7.10.1 | サポートあり | |
キュー メソッド | 7.10.2 | サポートあり | |
size() | 7.10.2.1 | サポートあり | |
insert() | 7.10.2.2 | サポートあり | |
delete() | 7.10.2.3 | サポートあり | |
pop_front() | 7.10.2.4 | サポートあり | |
pop_back() | 7.10.2.5 | サポートあり | |
push_front() | 7.10.2.6 | サポートあり | |
push_back() | 7.10.2.7 | サポートあり | |
キューのエレメントへの参照の持続性 | 7.10.3 | サポートあり | |
代入およびアンパック型配列連結を使用したキューのアップデート | 7.10.4 | サポートあり | |
境界付きキュー | 7.10.5 | サポートあり | |
クラス | 8 | サポートあり | |
クラス ジェネラル | 8.1 | サポートあり | |
概要 | 8.2 | サポートあり | |
構文 | 8.3 | サポートあり | |
オブジェクト (クラス インスタンス) | 8.4 | サポートあり | |
オブジェクト プロパティおよびオブジェクト パラメーター データ | 8.5 | サポートあり | |
オブジェクト メソッド | 8.6 | サポートあり | |
コンストラクター | 8.7 | サポートあり | |
スタティック クラス プロパティ | 8.8 | サポートあり | |
スタティック メソッド | 8.9 | サポートあり | |
this | 8.10 | サポートあり | |
割り当て、名前変更、およびコピー | 8.11 | サポートあり | |
継承およびサブクラス | 8.12 | サポートあり | |
オーバーライドされたメンバー | 8.13 | サポートあり | |
スーパー | 8.14 | サポートあり | |
キャスト演算子 | 8.15 | サポートあり | |
チェーン コンストラクター | 8.16 | サポートあり | |
データ非表示およびカプセル化 | 8.17 | サポートあり | |
定数クラス プロパティ | 8.18 | サポートあり | |
仮想メソッド | 8.19 | サポートあり | |
抽象クラスおよび純仮想メソッド | 8.20 | サポートあり | |
多様性: ダイナミック メソッド ルックアップ | 8.21 | サポートあり | |
クラス スコープ解決演算子 :: | 8.22 | サポートあり | |
アウト オブ ブロック宣言 | 8.23 | サポートあり | |
パラメーター化されたクラス | 8.24 | サポートあり | |
パラメーター化されたクラスのクラス解決演算子 | 8.24.1 | サポートあり | |
Typedef クラス | 8.25 | サポートあり | |
インターフェイス クラス | 8.26 | サポートあり | |
インターフェイス クラスの多重継承 | 8.26.6 | サポートあり | |
メモリ管理 | 8.27 | サポートあり | |
クラスおよびストラクチャ | 8.28 | サポートあり | |
プロセス | 9 | サポートあり | |
並列処理 - fork join_any および fork join_none | 9.3 | サポートあり | |
wait fork | 9.6.1 | サポートあり | |
disable fork | 9.6.3 | サポートあり | |
詳細なプロセス制御 | 9.7 | サポートあり | |
クロッキング ブロック | 14 | サポートあり | |
資料全体 | 14.1 | サポートあり | |
概要 | 14.2 | サポートあり | |
クロッキング ブロック宣言 | 14.3 | サポートあり | |
入力および出力スキュー | 14.4 | サポートあり | |
階層式 | 14.5 | サポートなし | |
複数クロッキング ブロックの信号 | 14.6 | サポートあり | |
クロッキング ブロックのスコープおよびライフタイム | 14.7 | サポートあり | |
複数クロッキング ブロックの例 | 14.8 | サポートあり | |
インターフェイスおよびクロッキング ブロック | 14.9 | サポートあり | |
クロッキング ブロック イベント | 14.10 | サポートあり | |
サイクル遅延 | 14.11 | サポートあり | |
デフォルト クロッキング | 14.12 | サポートあり | |
入力サンプリング | 14.13 | サポートあり | |
グローバル クロック | 14.14 | サポートなし | |
同期イベント | 14.15 | サポートあり | |
同期ドライブ | 14.16 | サポートあり | |
ドライブおよびノンブロッキング代入 | 14.16.1 | サポートあり | |
クロッキング出力信号の駆動 | 14.16.2 | サポートあり | |
セマフォ | 15.3 | サポートあり | |
セマフォ メソッド new() | 15.3.1 | サポートあり | |
セマフォ メソッド put() | 15.3.2 | サポートあり | |
セマフォ メソッド get() | 15.3.3 | サポートあり | |
セマフォ メソッド try_get() | 15.3.4 | サポートあり | |
メールボックス | 15.4 | サポートあり | |
メールボックス メソッド new() | 15.4.1 | サポートあり | |
メールボックス メソッド num() | 15.4.2 | サポートあり | |
メールボックス メソッド put() | 15.4.3 | サポートあり | |
メールボックス メソッド try_put() | 15.4.4 | サポートあり | |
メールボックス メソッド get() | 15.4.5 | サポートあり | |
メールボックス メソッド try_get() | 15.4.6 | サポートあり | |
メールボックス メソッド peek() | 15.4.7 | サポートあり | |
メールボックス メソッド try_peek() | 15.4.8 | サポートあり | |
パラメーター指定されたメールボックス | 15.4.9 | サポートあり | |
名前付きイベント | 15.5 | サポートあり | |
イベントのトリガー | 15.5.1 | サポートあり | |
イベントを待機 | 15.5.2 | サポートあり | |
持続トリガー | 15.5.3 | サポートなし | |
イベント シーケンス | 15.5.4 | サポートなし | |
名前付きイベント変数に対する演算 | 15.5.5 | サポートあり | |
結合イベント | 15.5.5.1 | サポートあり | |
イベントの再要求 | 15.5.5.2 | サポートあり | |
イベント比較 | 15.5.5.3 | サポートあり | |
アサーション | 16 | サポートあり | |
資料全体 | 16.1 | サポートあり | |
概要 | 16.2 | サポートあり | |
assert | 16.2 | サポートあり | |
assume | 16.2 | サポートあり | |
cover | 16.2 | サポートなし | |
restrict | 16.2 | サポートなし | |
即時アサーション | 16.3 | サポートあり | |
遅延 (deferred) アサーション | 16.4 | サポートなし | |
並列アサーションの概要 | 16.5 | サポートあり | |
サンプリング | 16.5.1 | サポートあり | |
アサーション クロック | 16.5.2 | サポートあり | |
ブール式 | 16.6 | サポートあり | |
シーケンス | 16.7 | サポートあり | |
シーケンスの宣言 | 16.8 | サポートあり | |
シーケンス宣言での型が指定された仮引数 | 16.8.1 | サポートあり | |
シーケンス宣言でのローカル変数仮引数 | 16.8.2 | サポートあり | |
シーケンス演算 | 16.9 | サポートあり | |
演算子の優先順位 | 16.9.1 | サポートあり | |
シーケンスでの繰り返し | 16.9.2 | サポートあり | |
サンプリングされた値の関数 | 16.9.3 | サポートあり | |
グローバル クロックで過去または将来にサンプリングされる値の関数 | 16.9.4 | サポートなし | |
AND 演算 | 16.9.5 | サポートあり | |
交差 (長さ制限付き AND) | 16.9.6 | サポートあり | |
OR 演算 | 16.9.7 | サポートあり | |
first_match 演算 | 16.9.8 | サポートあり | |
シーケンスの条件 | 16.9.9 | サポートあり | |
シーケンス内のシーケンス | 16.9.10 | サポートあり | |
単純なサブシーケンスからのシーケンスの作成 | 16.9.11 | サポートあり | |
ローカル変数 | 16.10 | サポートあり | |
シーケンスの一致に対するサブルーチンの呼び出し | 16.11 | サポートあり | |
プロパティの宣言 | 16.12 | サポートあり | |
シーケンス プロパティ | 16.12.1 | サポートあり | |
否定プロパティ | 16.12.2 | サポートあり | |
論理和プロパティ | 16.12.3 | サポートあり | |
論理積プロパティ | 16.12.4 | サポートあり | |
if-else プロパティ | 16.12.5 | サポートあり | |
含意 | 16.12.6 | サポートあり | |
含意および iff プロパティ | 16.12.7 | サポートあり | |
プロパティ インスタンシエーション | 16.12.8 | サポートあり | |
followed-by プロパティ | 16.12.9 | サポートなし | |
nexttime プロパティ | 16.12.10 | サポートなし | |
always プロパティ | 16.12.11 | サポートなし | |
until プロパティ | 16.12.12 | サポートなし | |
eventually プロパティ | 16.12.13 | サポートなし | |
中止プロパティ | 16.12.14 | サポートなし | |
強演算子および弱演算子 | 16.12.15 | サポートなし | |
ケース | 16.12.16 | サポートなし | |
再帰プロパティ | 16.12.17 | サポートなし | |
プロパティ宣言での型が指定された仮引数 | 16.12.18 | サポートあり | |
プロパティ宣言でのローカル変数仮引数 | 16.12.19 | サポートあり | |
プロパティの例 | 16.12.20 | サポートあり | |
有限長さと無限長さの動作 | 16.12.21 | サポートあり | |
非縮退 | 16.12.22 | サポートあり | |
複数クロックのサポート | 16.13 | サポートなし | |
並列アサーション | 16.14 | サポートあり | |
assert 文 | 16.14.1 | サポートあり | |
assume 文 | 16.14.2 | サポートあり | |
cover 文 | 16.14.3 | サポートなし | |
restrict 文 | 16.14.4 | サポートなし | |
手続きコード外での並列アサーション文の使用 | 16.14.5 | サポートあり | |
手続きコードへの並列アサーション文の埋め込み | 16.14.6 | サポートなし | |
推論された値の関数 | 16.14.7 | サポートなし | |
有意な評価 | 16.14.8 | サポートなし | |
disable iff の解決 | 16.15 | サポートあり | |
クロックの解決 | 16.16 | サポートあり | |
複数クロック シーケンスおよびプロパティのセマンティック先頭クロック | 16.16.1 | サポートあり | |
expect 文 | 16.17 | サポートなし | |
クロッキング ブロックおよび並列アサーション | 16.18 | サポートあり | |
ランダム制約 | 18 | サポートあり | |
コンセプトおよび使用法 | 18.3 | サポートあり | |
ランダム変数 | 18.4 | サポートあり | |
rand 修飾子 | 18.4.1 | サポートあり | |
randc 修飾子 | 18.4.2 | サポートあり | |
制約ブロック | 18.5 | サポートあり | |
外部制約ブロック | 18.5.1 | サポートあり | |
制約継承 | 18.5.2 | サポートあり | |
セット メンバーシップ | 18.5.3 | サポートあり | |
分配 | 18.5.4 | サポートあり | |
含意 | 18.5.6 | サポートあり | |
if-else 制約 | 18.5.7 | サポートあり | |
反復制約 | 18.5.8 | サポートあり | |
foreach 反復制約 | 18.5.8.1 | サポートあり | |
配列削減反復制約 | 18.5.8.2 | サポートあり | |
グローバル制約 | 18.5.9 | サポートあり | |
変数の順序付け | 18.5.10 | サポートあり | |
スタティック制約ブロック | 18.5.11 | サポートあり | |
制約内の関数 | 18.5.12 | サポートあり | |
制約ガード | 18.5.13 | サポートあり | |
ソフト制約 | 18.5.14 | サポートあり | |
randomize メソッド | 18.6.1 | サポートあり | |
pre_randomize および post_randomize | 18.6.2 | サポートあり | |
ランダム化メソッドの動作 | 18.6.3 | サポートあり | |
インライン制約 | 18.7 | サポートあり | |
ローカル スコープ解決 | 18.7.1 | サポートあり | |
rand_mode を使用したランダム変数の無効化 | 18.8 | サポートあり | |
constraint_mode を使用した制約の制御 | 18.9 | サポートあり | |
動的な制約変更 | 18.10 | サポートあり | |
インライン ランダム変数制御 | 18.11 | サポートあり | |
インライン制約チェッカー | 18.11.1 | サポートあり | |
スコープ変数 std::randomize のランダム化 | 18.12 | サポートあり | |
スコープ変数 std::randomize への制約の追加 | 18.12.1 | サポートあり | |
乱数システム関数およびメソッド | 18.13 | サポートあり | |
$urandom | 18.13.1 | サポートあり | |
$urandom_range | 18.13.2 | サポートあり | |
srandom | 18.13.3 | サポートあり | |
get_randstate | 18.13.4 | サポートあり | |
set_randstate | 18.13.5 | サポートあり | |
ランダム安定性 | 18.14 | サポートあり | |
ランダム化の手動シード設定 | 18.15 | サポートあり | |
randcase | 18.16 | サポートあり | |
randsequence | 18.17 | サポートなし | |
プログラム | 24 | サポートあり | |
プログラム コンストラクト | 24.3 | サポートあり | |
プログラム コンストラクトにおけるコードのセマンティックのスケジューリング | 24.3.1 | サポートあり | |
プログラム ポート接続 | 24.3.2 | サポートあり | |
テストベンチ レースの除去 | 24.4 | サポートあり | |
サイクル/イベント モードのブロッキング タスク | 24.5 | サポートあり | |
匿名プログラム | 24.6 | サポートなし | |
プログラム制御タスク | 24.7 | サポートあり | |
機能カバレッジ | 19 | サポートあり | |
資料全体 | 19.1 | サポートあり | |
概要 | 19.2 | サポートあり | |
カバレッジ モデルの定義: covergroup | 19.3 | サポートあり | |
クラスでの covergroup の使用 | 19.4 | サポートあり | |
カバレッジ ポイントの定義 | 19.5 | サポートあり | |
値のビンの指定 | 19.5.1 | サポートあり | |
カバーグループを使用したカバーポイント ビン | 19.5.1.1 | サポートあり | |
カバーポイント ビン設定カバーグループ式 | 19.5.1.2 | サポートなし | |
遷移のビンの指定 | 19.5.2 | サポートあり | |
カバレッジ ポイントの自動ビン作成 | 19.5.3 | サポートあり | |
カバレッジ ポイント ビンのワイルドカード指定 | 19.5.4 | サポートあり | |
カバレッジ ポイント値または遷移の除外 | 19.5.5 | サポートあり | |
無効なカバレッジ ポイント値または遷移の指定 | 19.5.6 | サポートあり | |
値の解決 | 19.5.7 | サポートあり | |
クロス カバレッジの定義 | 19.6 | サポートあり | |
クロス カバレッジ ビンの定義 | 19.6.1 | サポートあり | |
ユーザー定義のクロス カバレッジおよび選択式の例 | 19.6.1.1 | サポートあり | |
カバーグループ式を使用したクロス ビン | 19.6.1.2 | サポートあり | |
クロス ビン自動定義型 | 19.6.1.3 | サポートあり | |
クロス ビン設定式 | 19.6.1.4 | サポートあり | |
クロス積の除外 | 19.6.2 | サポートあり | |
無効なクロス積の指定 | 19.6.3 | サポートあり | |
カバレッジ オプションの指定 | 19.7 | サポートあり | |
カバーグループ型のオプション | 19.7.1 | サポートあり | |
定義済みのカバレッジ メソッド | 19.8 | サポートあり | |
ビルトイン サンプル メソッドのオーバーライド | 19.8.1 | サポートあり | |
定義済みのカバレッジ システム タスクおよびシステム関数 | 19.9 | サポートあり | |
option および type_option メンバーの構成 | 19.10 | サポートあり |
注記: キュー、動的配列、連想配列、クラスなどのダイナミック型のセンシティビティはサポートされていません。そのため、ダイナミック型のアップデートを待つブロックは正しく機能しない場合があります。次に例を示します。
module top();
int c[$];
event e1;
initial
begin
c[0] = 10;
for(int i = 0; i <= 10; i++)
begin
c = {i, c};
-> e1;
#5;
end
end
always@(*) $display($time, " trying to read sensitivity on dynamic type : %d", c[0]);
// this won't work as sensitivity on dynamic type is not supported
always @(e1) $display($time, " coming from event sensitivity : %d", c[0]); // this we
can do as WA
always_comb if(c.size() > 0) $display($time, " Coming from size sensitivity : %d",
c[0]); // sensitivity on size works