0

ASIC合成の配置配線前のタイミング解析レポートを取得する際に問題が発生しています

タイミングを取得するには、フローのステップでABCを使用する必要があります。

1-ストラッシュ - 現在のネットワークを AIG (2 つの論理ゲート「AND/OR」を持つグラフ) に変換します。

[*構造ハッシュは純粋な組み合わせ変換です]

2- scorr - このコマンドが何をするのか知りませんでした。最初の質問は次のとおりです。このコマンドは何をしますか?

2.1 このコマンドを使用すると、いくつかのエラーが発生します。

次のような組み合わせ回路を使用する場合

module combinational(a, b, sel, out);

input a, b;

input sel;

output out;

reg out;

always @ (a or b or sel)

begin

if (sel) out = a;

else out = b;

end

endmodule

iget エラー ABC:エラー: ネットワークは組み合わせです (「fraig」または「fraig_sweep」を実行してください)。

yosysからのsynth.log出力:

 2.1.1. Executing ABC.
Running ABC command: <yosys-exe-dir>/berkeley-abc -s -f <abc-temp-dir>/abc.script 2>&1
ABC: ABC command line: "source <abc-temp-dir>/abc.script".
ABC: 
ABC: + read_blif <abc-temp-dir>/input.blif 
ABC: + read_lib -w /usr/local/share/qflow/tech/osu035/osu035_stdcells.lib 
ABC: Parsing finished successfully.  Parsing time =     0.00 sec
ABC: Scl_LibertyReadGenlib() skipped sequential cell "DFFNEGX1".
ABC: Scl_LibertyReadGenlib() skipped sequential cell "DFFPOSX1".
ABC: Scl_LibertyReadGenlib() skipped sequential cell "DFFSR".
ABC: Scl_LibertyReadGenlib() skipped sequential cell "LATCH".
ABC: Scl_LibertyReadGenlib() skipped three-state cell "PADINOUT".
ABC: Scl_LibertyReadGenlib() skipped three-state cell "TBUFX1".
ABC: Scl_LibertyReadGenlib() skipped three-state cell "TBUFX2".
ABC: Scl_LibertyReadGenlib() skipped cell "PADFC" without logic function.
ABC: Scl_LibertyReadGenlib() skipped cell "PADNC" without logic function.
ABC: Scl_LibertyReadGenlib() skipped cell "PADVDD" without logic function.
ABC: Scl_LibertyReadGenlib() skipped cell "PADGND" without logic function.
ABC: Library "osu035_stdcells" from "/usr/local/share/qflow/tech/osu035/osu035_stdcells.lib" has 28 cells (11 skipped: 4 seq; 3 tri-state; 4 no func).  Time =     0.01 sec
ABC: Memory =    0.38 MB. Time =     0.01 sec
ABC: Warning: Detected 2 multi-output gates (for example, "FAX1").
ABC: + strash 
ABC: + scorr 
ABC: Error: The network is combinational (run "fraig" or "fraig_sweep").
ABC: + ifraig 
ABC: + retime 
ABC: + strash 
ABC: + dch -f 
ABC: + map 
ABC: + write_blif <abc-temp-dir>/output.blif 

12.1.2. Re-integrating ABC results.
ABC RESULTS:             INVX1 cells:        1
ABC RESULTS:           NAND2X1 cells:        3
ABC RESULTS:        internal signals:        0
ABC RESULTS:           input signals:        3
ABC RESULTS:          output signals:        1
Removing temp directory.

シーケンシャルのようなものを与えると

module  sequential(a, b, sel,
clk, out);
input a, b;
input sel, clk;
output out;
reg out;
always @ (posedge clk)
begin
if (sel) out <= a;
else out <= b;
end
endmodule

また、同じエラーがあります

for this module:


module blocking(in, clk, out);
input in, clk;
output out;
reg q1, q2, out;
always @ (posedge clk)
begin
q1 = in;
q2 = q1;
out = q2;
end
endmodule

イゲット

12. Executing ABC pass (technology mapping using ABC).
12.1. Extracting gate netlist of module `\blocking' to `<abc­temp­dir>/input.blif'..

Extracted 0 gates and 0 wires to a netlist network with 0 inputs and 0 outputs.
Don't call ABC as there is nothing to map.
Removing temp directory.

3-エラーから、「fraig」または「fraig_sweep」を実行する必要があることがわかります

3.1フレグ-

現在のネットワークを機能的に削減された AIG に変換します

3.2 fraig_sweep論理ネットワーク内で機能的に同等なノードを検出します。fraig とは異なり、このコマンドはネットワーク構造を保持し、機能的に同等のノードのみをマージします

4- ifraig私はそれが何をするのか、またこのコマンドが何をするのか知りませんでした?

5-リタイム /map コマンドで {d} の意味

:

**

> for ­liberty with ­constr:  strash; scorr; ifraig; retime {D};
> strash; dch -­f; map {D}; buffer;
upsize {D}; dnsize {D}; stime ­p

**

dch -fでは、スクリプト ファイルを指定する必要があります**?** そして、dchコマンドは何をすべきでしょうか?

そして、なぜマッピングに失敗したのですか?

**

*一言で言えば、ASIC の配置配線前のタイミング解析レポートを取得して印刷するにはどうすればよいですか?

また、並列、順次、またはすべての verilog ファイルで機能しないすべての回路で機能しますか?

そして、ABC の各ステップで何をすべきか知りたいですか?

**

4

1 に答える 1