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 を最小限に抑えるにはどうすればよいですか?
ありがとう