我有一个方程式(抱歉格式不正确,找不到合适的符号):
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 参数或模拟首选项中的匹配条目来增加迭代限制。
错误:模拟过程中发生致命错误。
我对触发器相当缺乏经验,并且并不真正了解可能导致问题的原因,所以如果有人解释它,我会非常感激。