私は方程式を持っています(フォーマットが悪くて申し訳ありません、適切な記号が見つかりませんでした):
Q t x 1 ∨ !x 1 ((x 2 ⊕ x 3 ) ∨ !x 4 )Q t ∨ (x 2 ∧ !x 3 ∨ x 4 )!Q t )
これが JK トリガーであると仮定すると、次のようになります。
C = !x 1
J = (x 2 ∧ !x 3 ∨ x 4 )
K = (x 2 ⊕ x 3 ) ∨ !x 4
Q t !C ∨ !x 1 (!KQ t ∨ J!Q t )
回路図は次のようになります。
ただし、このテストでこれをシミュレートしようとすると、完全に変換されます。
clock_proc : process begin -- synchro signal
x1 <= '0';
wait for 4 ns;
x1 <= '1';
wait for 4 ns;
end process ;
reset_proc : process begin -- reset
reset <= '0';
wait for 4 ns;
reset <= '1';
wait ;
end process ;
test_proc : process begin -- triggers
x2 <= '0'; x3 <= '0'; x4 <= '0'; --write 0
wait for 10 ns;
x2 <= '0'; x3 <= '1'; x4 <= '1'; --save
wait for 10 ns;
x2 <= '1'; x3 <= '1'; x4 <= '1'; --write 1
wait for 10 ns;
x2 <= '1'; x3 <= '0'; x4 <= '1'; --save
wait for 10 ns;
x2 <= '0'; x3 <= '0'; x4 <= '1'; --inverse
wait for 10 ns;
x2 <= '0'; x3 <= '1'; x4 <= '1'; --save
wait for 10 ns;
end process ;
end TB_ARCHITECTURE;
私が得るのはこのエラーだけです:
KERNEL: エラー: KERNEL_0160 デルタ カウントのオーバーフロー。asim の -i 引数またはシミュレーション設定の一致するエントリを使用して、反復制限を増やします。
エラー: シミュレーション中に致命的なエラーが発生しました。
私はトリガーにかなりの経験がなく、何が問題を引き起こしたのかを本当に理解していないので、誰かがそれを説明してくれれば幸いです.