2022-08-10から1日間の記事一覧

乱数テスト入力値とファンクショナルカバレッジとを用いたテストベンチ / 3で割る回路

pp.561 今度は ↓ この回路のためのテストベンチ。シフトと加算と乗算だけで整数を3で割る回路である。アルゴリズムはまったく理解できない。 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity div_by_3 is port ( dividend: in…

20.6.5 Coverage Bins

p.560 非公式訳 20.6.5 カバレッジビン 乱数テスト入力値を使ったテストでは、シミュレーション中にどの値が観測されるのかを前もって知ることはできません。注目すべき値によってテストベンチ全体のどこがテストされたのかを知る手段として、テストベンチは…

20.6.4 Intelligent Coverage

pp.559-559 非公式訳 20.6.1 インテリジェントカバレッジ 乱数テスト入力値は一般に、検証プランに示したテストケースが生成できるよう、制約を課すことのできる乱数ジェネレーターで生成します。カバレッジモニターと乱数ジェネレーターとが互いに勝手に作…

20.6.3 Random-Based Verification

p.559 非公式訳 20.6.3 乱数を用いた検証 「ディレクテッドテスト」とは別のもう1つの方法は、まずDUVが正しく機能しているどうかを教えてくれるチェックメカニズムを記述しておいてから、注目すべき状態がすべて現れるまで乱数テスト入力値をDUV に与えると…

20.6.2 Directed Testing

p.559 非公式訳 20.6.2 ディレクテッドテスト ファンクショナルカバレッジを100%にするための方法は主に2つあります。1つは、検証プランに並んでいる個々の項目を確認するためのテストを大量に記述することです。この種のテストでは、必要なテスト入力信号を…

20.6.1 Functional Coverage

p.559 非公式訳 20.3.1 ファンクショナルカバレッジ 検証プランが出来てしまえば、あとはそのプランどおりにDUVを動かしてその挙動を確かめるためのコードを書くだけです。 検証プラン全体のどこまで完了したのかを示す指標のことを「ファンクショナルカバレ…

シフトと加算と乗算だけで整数を3で割る

p.561 Hacker's Delight (邦訳: ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか)に載っているとの由。理窟はまったく分からない。 ↓ テキストのVHDLをPythonに書き換えた。 def div_by_3(dividend): d = dividend q = 0 r = 0 q = (d >> 2) +…

ファイルI/Oを利用したテストベンチ / ハッシュ生成器 / モジュラーテストベンチ

pp.557-558 今度はstimulus generatorとresponse checkerとを分ける。さらに、ファイル操作の処理をプロシージャ化してstimulus generatorから分ける。 library ieee; use ieee.std_logic_1164.all; use std.textio.all; entity hash_calculator_tb is end; …

ファイルI/Oを利用したテストベンチ / ハッシュ生成器 / リニアテストベンチ

stimulus、stimuliはテストベンチからDUVへ与える信号、値のこと。 pp.556-557 ↓ 左がDUVに与えるメッセージ。右がDUVから出力されるであろう期待値。 hartj09sq7shh60gxrupgwy2jus9mizc 11100001001001011001100011100101 e6aifwgcyf42f8yucde5j4xdh1a3byu6…