0

NOR ゲートを使用して EXOR をシミュレートしようとしています。EXORゲート用に以下のロジックを書きました。現在、私のnor2は4 nsの遅延で定義されています。

ENTITY ex IS
    PORT (a, b : IN BIT; c : OUT BIT);
END ex;

ARCHITECTURE structure OF ex IS

    SIGNAL tmp1, tmp2, tmp3, tmp4: BIT;
    COMPONENT nor2 PORT (x, y : IN BIT; z : OUT BIT); END COMPONENT;
BEGIN

    u0: nor2 PORT MAP (a, a, tmp1);

    u1: nor2 PORT MAP (b, b ,tmp2);

    u2: nor2 PORT MAP (tmp1,tmp2,tmp3);

    u3: nor2 PORT MAP (b, a, tmp4);

    u4: nor2 PORT MAP (tmp3, tmp4, c);

END structure;

私はそれを知っており、tmp1または変更後 4 ns 後に信号を変更します。また、4 ns 後に変化することにも気付きました ( 4 ns の遅延があるため [ ] )。しかし、適切なロジックに従って 8 ns 後と 12 ns 後に変更を反映したいと考えています。これにより、 の適切な出力が得られます。私の質問は、構造アーキテクチャに遅延を導入するにはどうすればよいですか? それを行う方法はありますか?検索しようとしましたが、何も見つかりませんでした。待機しても機能しません。構文エラーが発生し続けます (8ns 待機)。助けてくれてありがとう! tmp2tmp4abtmp3cnor2c <= a nor b after 4nstmp3cEXOR

4

2 に答える 2

1

シミュレーション結果に問題はありません。nor短絡演算子 であるため、間違っているようです。

仮定

a = '0'
b = '1'

それから

tmp1 = '1' (a nor a)
tmp2 = '0' (b nor b)
tmp4 = '0' (b nor a)
tmp3 = '0' (tmp1 nor tmp2)
c    = '1' (tmp3 nor tmp4)

bは「0」に変わり、

tmp1 = '1' remains unchanged
tmp2 = '1' after 4 ns
tmp4 = '1' after 4 ns
tmp3 = '0' remains unchanged (regardless of b because of short-circuit evaluation)
c    = '0' after 8 ns (not 12 ns because it only waits for tmp4 in this case)
于 2013-09-22T02:36:34.817 に答える