我已經瞭解到,當S和R在它們在下面的電路VHDL代碼中僅爲'1'時均爲'0'時,SR鎖存器會發生振盪。VHDL中的簡單SR鎖存器仿真(帶Xilinx)不會振盪
這裏是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;
,完全我沒有任何想法,爲什麼模擬不反映。 ..
您尚未提供展示振盪的[最小,完整和可驗證示例](https://stackoverflow.com/help/mcve),您提供的刺激也不會這樣做。治癒的辦法是平衡延誤,以贏得勝利。這相當於提供了共識。在鍾控觸發器中,這是設置和保持時間的源泉,也是使用主從觸發器的動力。我們正在處理丟失的數字設計藝術以及零門延遲的抽象。 – user1155120
如果您要爲Q和NOTQ的賦值添加統一的延遲:1ns後的Q <= R NOR NOTQ;在1 ns後NOTQ <= S NOR Q;'並且在同一個增量週期內(不插入WAIT)在S和R上提供'0'到'1'的轉換,您可以證明[振盪](https:// i .stack.imgur.com/d23rt.png「srlatch_vhdl_with_delay.png」),而不需要可以顯示增量循環或導致超過增量循環的最大數量的波形顯示。 – user1155120