monitor、predictor

/mɑ́(ː)nəṭɚ | mɔ́nɪtə/
/prɪdɪ́ktɚ | -tə/

pp.539-540

改善その3: couplingを解消したテストベンチ (非公式訳)

(略)。DUVの入出力を観測してそれをもっと上位のトランザクションへと移し替えるコンポーネントのことをテストベンチの世界では「モニター」と呼びます。stimulus generatorとその他上位プロセスとを相手に都度やり取りするのではなく、モニターを利用してすべての入力をresponse checkerに与えるというのは良い方法です。この方法なら、テストベンチに含まれる解析部分をさまざまな信号源に対して再利用できるからです。(略)。

しかしsitimulus generatorとresponse checkerとのcouplingを解消すると別の問題が発生します。それは、response checkerがDUVの生の入出力しか見られないのならDUVの出力が正しいかどうかをどうやって知ればいいのか、という問題です。前のテストベンチでは(略)。

その答は、「プレディクター」を利用して期待値をDUVの入力から得るという方法です。「プレディクター」を実装する方法はいくつかあります。1つは、ゴールデンモデル、すなわちDUVで実行されるのと同じアルゴリズムを基準モデルとして実装するという方法です。ほかには、高めの抽象度で比較的シンプルなモデルを実装するという方法もあります。今回は真理値表しかありませんので、与えられた入力値に応じた期待値をルックアップするシンプルな下の函数をプレディクターとします。

function predictor(bcd: std_logic_vector(3 downto 0))
    return std_logic_vector is
begin
    for i in TEST_DATA'range loop
        if TEST_DATA(i).bcd = bcd then
            return TEST_DATA(i).seven_segment;
        end if;
    end loop;
    -- report "***************";
end function;

(略)。