シミュレーターツール起動、テストベクタ作成
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に出力されるため、状態を持っていることになる←入力信号だけでは出力信号を決定できない)
テストベクタを作成してデバッグできる当りは、既存のプログラム開発より良いですね。
より自動化されてる感じがします。