0

非常に高速なクロックで非同期デジタル システムを作成しようとしています。入力は、入力を許可する 2 つのスイッチとボタンで決定されます。各入力は、別の状態への移行を許可するかどうかを決定します。digilent basys2 ボードの内部クロック B8 を使用しました。2 番目の状態には正しく到達しているようですが、他の状態には到達できません。ビヘイビア シミュレーションでは、期待どおりの結果が得られました。ここに私の実装があります、

entity states is
Port ( X : in  STD_LOGIC;
       Y : in  STD_LOGIC;
       clock : in  STD_LOGIC;
       input : in  STD_LOGIC);
end states;

architecture Behavioral of state is
    signal FF : STD_LOGIC_VECTOR (2 downto 0):="000";
begin
process(clock)
begin
    if(rising_edge(clock)) then
        if(input='1') then
            FF(0)<= (((FF(1)) and (FF(2)) and (not X) and Y) or (FF(0)));
            FF(1)<= (((not FF(0)) and (not FF(1)) and (FF(2)) and X and (not      Y));
            FF(2)<= (((not FF(0)) and (not FF(1)) and (not FF(2)) and X and Y)
                or ((not FF(0)) and (FF(1)) and (not FF(2)) and (not X) and (not Y)));
            Z <= (((not FF(0)) and (FF(1)) and (FF(2)) and (not X) and Y) or (FF(0)));
        end if;
      end if;
end process;
end Behavioral;

そして、これが理事会の割り当てです。

NET "clock"  LOC = "B8"  ;
NET "input"  LOC = "C11"  ;
NET "X"  LOC = "L3"  ;
NET "Y"  LOC = "P11"  ;

シミュレーションでは期待どおりの結果が得られたのに、ボードでのテストではそうではなかったのはなぜですか。よろしくお願いします。

4

1 に答える 1