Logic 基本JK触发器的测试

Logic 基本JK触发器的测试,logic,vhdl,Logic,Vhdl,我有一个等式(很抱歉格式不好,找不到合适的符号): Qtx1∨ !x1((x2⊕ x3)∨ !x4)Qt∨ (x2∧ !x3∨ x4)!Qt) 假设这是JK触发器: C=!x1 J=(x2∧ !x3∨ x4) K=(x2⊕ x3)∨ !x4 Qt!C∨ !x1(!KQt)∨ J!Qt) 示意图如下所示: 然而,当我尝试用这个测试来模拟它时,它可以完美地转换: clock_proc : process begin -- synchro signal x1 <= '0'; wait for

我有一个等式(很抱歉格式不好,找不到合适的符号):

Qtx1∨ !x1((x2⊕ x3)∨ !x4)Qt∨ (x2∧ !x3∨ x4)!Qt)

假设这是JK触发器:

C=!x1

J=(x2∧ !x3∨ x4)

K=(x2⊕ x3)∨ !x4

Qt!C∨ !x1(!KQt)∨ J!Qt)

示意图如下所示:

然而,当我尝试用这个测试来模拟它时,它可以完美地转换:

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;
clock\u proc:过程开始——同步信号

在没有实际VHDL源的情况下,零时间模型JK触发器中会发生增量周期振荡,这可能是由于复位不足或反馈路径中存在匹配延迟所致。请注意,这发生在时钟的负边缘,J和K高,Q高,nQ低。这是一个零延迟反馈回路,只要时钟低,它就会继续

使用定时门模型,在一条反馈路径(中间信号)上添加增量周期延迟,在Q或nQ中的一条上使用后延迟,或者如果两者都不匹配延迟。(
Q