【问题标题】:timing analysis report for ASIC synthesisASIC综合时序分析报告
【发布时间】:2016-06-11 06:09:52
【问题描述】:

我在获取 ASIC 综合的预布局和路由 时序 分析报告时遇到了一些问题

为了获得时间,我们应该在流动的步骤中使用 ABC

1-strash-将当前网络转换为 AIG(具有两个逻辑门“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 error 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

iget

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-In retime /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中的每一步应该做什么?**

【问题讨论】:

  • 请勿破坏您的帖子。

标签: asic yosys


【解决方案1】:

根据您的问题,您使用了以下模块:

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

除了这个模块引入了一个模拟竞争条件(参见this paper,您的代码与“示例 5 - 错误的阻塞分配顺序编码样式 #1”几乎相同)之外,这个模块只描述了一个 D -type 触发器(使用yosys -p 'proc; opt; show 生成):

Yosys abc 命令的默认行为是只考虑设计的逻辑部分(除非使用 -dff 选项调用 abc 命令,否则不会执行重定时,请参阅 Yosys 中的 help abc) .

因为这个模块中根本没有逻辑,而abc命令作用于模块的逻辑部分,你自然会得到:

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.

关于消息Error: The network is combinational (run "fraig" or "fraig_sweep").:这只是scorr 在处理纯组合输入时产生的错误。 (请参阅 yosys-abc 中的 scorr -h 以了解 scorr 的作用。它仅对顺序输入网络有意义,因此当 abc 不与 -dff 一起调用时,它是无操作的。)Abc 简单继续下一个命令,正如您在引用的输出中看到的那样。这里没有任何问题。

一句话,我们如何获取并打印 ASIC 的预布局布线时序分析报告?

通过使用延迟目标-D &lt;picoseconds&gt; 和构造文件-constr &lt;file&gt; 调用abc,同时使用-liberty &lt;file&gt; 映射到ASIC 库。

或者它不适用于所有verilog文件?

如您所见,它不适用于根本不包含逻辑的电路,因为这样就没有什么可映射和分析的了。

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 2021-03-25
    • 2020-07-27
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多