Harrisが書いた "Digital design and computers architecture"という本を読んで、例4.13(遅延付き論理ゲート)に関する質問があります。Harris HDL example 4.13
この例では、式Y =!A *!B *!C + A *!B *!C + A *!B * Cのモデルを作成します。また、インバータには1ns、3入力ANDゲートに2nsの遅延があり、3入力ORゲートには4nsの遅延があります。
は今、以下.svコード:だから
*timescale 1ns/1ps
module example(input a,b,c
output y);
logic ab,bb,cb,n1,n2,n3;
assign #1 {ab,bb,cb} = ~{a,b,c};
assign #2 n1 = ab & bb & cb;
assign #2 n2 = a & bb & cb;
assign #2 n3 = a & bb & c;
assign #4 y = n1 | n2 | n3;
endmodule
、質問です:!!!のプログラミング3つのオペランド(A * B * C、*このような形のロジックは何ですか! B *!C、A *!B * C)。私は4から8までの行で何が起こっているのか分かりません。
誰でも説明できますか? ab、bb、cbのようなオペランドがあるのはなぜですか?
したがって、 'ab'は' a'と 'b'のAND演算ではありませんか?このオペランドの 'b'は単なるシンボルで、逆を示していますか?この例の前にそのような説明はなかったので、それはとても奇妙です。この本に書かれている唯一の反転記号は '〜'だった。 –
@AbrahamLincoln上記のコードでは、変数abは、aとbのANDではなく、逆です。実際、 'b'接尾辞はちょっと変わっています。私はどこから来たのかわからないが、私は確かにそこの歴史を知っている。他の記号には〜A、/ A、nA、A#(https://en.wikipedia.org/wiki/Logic_level#Active_stateを参照)が含まれていますが、Verilogでは、 '〜'は '!' Cのように論理演算子になります。 – Unn
ご協力いただきありがとうございます。 –