シミュレーターツール起動、テストベクタ作成

Generate Functional Simulation Netlistを押す(よくわからんけど押す物と今は理解しておく)


次にopenを押して、テストベクターを作る画面に



フリップフロップのソースは次のようなやつ

library	IEEE;
use IEEE.std_logic_1164.all;

entity test is
  port (
    D   : in  std_logic;
    CLK : in  std_logic;
    Q   : out std_logic );
end test;

architecture test_Body of test is
signal DBUF: std_logic;
begin
  process(CLK)
  begin
    if CLK'event and CLK = '1' then
      DBUF <= D;
    end if;
  end process;
  Q <= DBUF;
end test_Body;

CLKが立ち上がったときにDBUFって変数にDという信号を入れる
平行して、Qという信号には、DBUFという変数の値が入っている。


フリップフロップなので、普段はバッファが憶えている値を出力するけど、クロック同期でDに値を入れてやると
フリップフロップの中身が書き換わり、出力も変わる


フリップフロップは1ビットのメモリですね。


テストベクター的には、
クロックが1に立ち上がってるときにDに1を入れれば、出力Qには1が出てくるし
クロックが1に立ち上がってるときにDに0を入れれば、出力Qには0が出てくるし
クロックが立ち上がってない時は、DBUF変数の値が出力Qに出力される
(この時は、入力信号Dに依存しない値が信号Qに出力されるため、状態を持っていることになる←入力信号だけでは出力信号を決定できない)


テストベクタを作成してデバッグできる当りは、既存のプログラム開発より良いですね。
より自動化されてる感じがします。