-1

XOR、NOR、および IV (インバーターまたは NOT) のみで構成されるシノプシス デザイン ビジョン用のカスタム ライブラリを作成します。私の計画は、結果のネットリストに最小数の NOR ゲートが含まれるように組み合わせロジックを合成することです。ライブラリをフローとして記述します。

library(and_or_xor) {
cell(NOR) {
  area : 1000;
  pin(A) {
    direction : input;
  }
  pin(B) {
    direction : input;
  }
  pin(Z) {
    direction : output;
    function : "(A+B)'";
  }
}

cell(IV) {
  area : 1;
  pin(A) {
    direction : input;
  }
  pin(Z) {
    direction : output;
    function : "A'";
  }
}

cell(XOR) {
  area : 1;
  pin(A) {
    direction : input;
  }
  pin(B) {
    direction : input;
  }
  pin(Z) {
    direction : output;
    function : "A^B";
  }
}
}

ここでは、スペースを節約するためにタイミング コンデンサと入力コンデンサを取り外しています。NOR のエリアを 1000 に設定し、XOR と IV を 1 に設定したので、エリア最適化を使用して不要な NOR を XOR と IV に置き換えることができます。set_max_area 0そしてを使用して組み合わせロジックをコンパイルしますcompile_ultra -exact_map -no_design_rule -area_high_effort_script

問題は、NOR エリアを 1 または 1000 に設定しても、同じ結果 (NOR の数) が得られることです。エリア最適化のトリックがうまくいかないようです。なぜなのかご存知ですか?NOR を最小限に抑えるにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

XOR から NOR ゲートを作成することは不可能だと思います。XOR は機能的に完全ではありません。

単項 XOR など、他のゲートを含むべきではない問題を与えることで、合成が XOR を適切に推論していることを確認できます。

wire [15:0] foo;
wire bar;

assign bar = ^foo;
于 2014-06-16T17:35:14.627 に答える