난 회로 래치는 다음과 같은 회로 VHDL 코드에서 S와 R이 둘 다 '0'일 때 진동하는 것을 알게되었습니다. 여기간단한 SR 래치 시뮬레이션 VHDL (자일링스와 함께) 발진하지 않습니다
는 SRLATCH
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity SRLATCH_VHDL is
port(
S : in STD_LOGIC;
R : in STD_LOGIC;
Q : inout STD_LOGIC;
NOTQ: inout STD_LOGIC);
end SRLATCH_VHDL;
architecture Behavioral of SRLATCH_VHDL is
begin
process(S,R,Q,NOTQ)
begin
Q <= R NOR NOTQ;
NOTQ<= S NOR Q;
end process;
end Behavioral;
의 VHDL이며, 다음은 테스트 벤치 코드에서 처리하고 그 시뮬레이션
-- Stimulus process
stim_proc: process
begin
S <= '1'; R <= '0'; WAIT FOR 100NS;
S <= '0'; R <= '0'; WAIT FOR 100NS;
S <= '0'; R <= '1'; WAIT FOR 100NS;
S <= '0'; R <= '0'; WAIT FOR 100NS;
S <= '1'; R <= '1'; WAIT FOR 500NS;
end process;
결과와 완전히 내가 시뮬레이션을 반영하지 않는 이유 어떤 생각이 없습니다. ..
(클릭)
진동을 시연하는 [Minimal, Complete and Verifiable example] (https://stackoverflow.com/help/mcve)을 제공하지 않았으며 제공 한 자극도 그렇게하지 않았습니다. 치료법은 지연을 불균형시켜 하나가이기는 것입니다. 합의 기간을 제공하는 것과 같습니다. 클록 플립 플롭에서 이것은 마스터 슬레이브 플립 플롭을 사용하는 자극뿐만 아니라 설정 및 유지 시간이 나오는 곳입니다. 우리는 분실 된 디지털 디자인과 제로 게이트 지연을 이용한 추상화를 다루고 있습니다. – user1155120
Q와 NOTQ의 할당에 일정한 지연을 추가하려면 : 1ns 후에'Q <= R NOR NOTQ; 1 초 후에 NOTQ <= S NOR Q '와 동일한 델타 싸이클 (중간에 WAIT가 없음)에서 S와 R 모두'0 '에서'1 '로 전환하면 [진동] (https : // i .stack.imgur.com/d23rt.png "srlatch_vhdl_with_delay.png") 델타 사이클을 표시하거나 최대 델타 사이클 수를 초과 할 수있는 파형 표시가 필요하지 않습니다. – user1155120