lec formality inconclusive举例

10 篇文章 0 订阅

情况1:output port连接常量电平(形成loop)

设计

module sub( input a,b,c,output d,e );
assign d = a ^ b | c;
assign e = a ^ b ^ c;
endmodule

module rtl_out_fixed1( input in1,
input in2,
output reg out1,
input clk,
input rstn);
wire d;
always@(posedge clk or negedge rstn)
if(!rstn)
out1 <= #1 1’b0;
else
out1 <= #1 d;
sub u_sub(.a(in1),.b(in2),.c(1’b1),.d(d),.e**(1’b1)**);
endmodule

综合结果

module sub_0 ( a, b, c, d, e );
input a, b, c;
output d, e;
wire n1;
wand e;

AOI21B1X1AS9 U3 ( .A1(n1), .A2©, .B1B(d), .O(e) );
AOI22B2X1AS9 U1 ( .A1(a), .A2(b), .B1B(a), .B2B(b), .O(n1) );
OR2X1AS9 U2 ( .I1©, .I2(n1), .O(d) );
endmodule

module rtl_out_fixed1 ( in1, in2, out1, clk, rstn );
input in1, in2, clk, rstn;
output out1;
wire d, n5;

sub_0 u_sub ( .a(in1), .b(in2), .c(n5), .d(d), .e(n5) );
DFFRBQX1AS9 out1_reg ( .D(d), .CK(clk), .RB(rstn), .Q(out1) );
endmodule

现象

********************************* Verification Results *********************************
Verification INCONCLUSIVE
(Equivalence checking aborted due to complexity)
Reference design: r:/WORK/rtl_out_fixed1
Implementation design: i:/WORK/rtl_out_fixed1
1 Passing compare points
1 Aborted compare points
0 Unverified compare points
Matched Compare Points BBPin Loop BBNet Cut Port DFF LAT TOTAL
Passing (equivalent) 0 0 0 0 1 0 0 1
Failing (not equivalent) 0 0 0 0 0 0 0 0
Aborted
Loop (cycle-driven) 0 0 0 0 0 1 0 1


fm>analyze_points -failing
Error: No matched compare points to diagnose or analyze (FM-213)
fm> diagnose
Error: Diagnosis and analysis can only be performed after an unsucessful verification (FM-006)

根据报告中的Loop问题,
fm> report_loops
There is(are) 1 loop(s) found in the implementation design :
Loop 1 :
(Pin) i:/WORK/rtl_out_fixed1/u_sub/U2/O
==> (Net) i:/WORK/rtl_out_fixed1/u_sub/d
(Net) i:/WORK/rtl_out_fixed1/u_sub/d
==> (Pin) i:/WORK/rtl_out_fixed1/u_sub/U3/B1B
(Pin) i:/WORK/rtl_out_fixed1/u_sub/U3/O
==> (Net) i:/WORK/rtl_out_fixed1/u_sub/e
(Net) i:/WORK/rtl_out_fixed1/u_sub/e
==> (Pin) i:/WORK/rtl_out_fixed1/u_sub/e
(Pin) i:/WORK/rtl_out_fixed1/u_sub/e
==> (Net) i:/WORK/rtl_out_fixed1/n5
(Net) i:/WORK/rtl_out_fixed1/n5
==> (Pin) i:/WORK/rtl_out_fixed1/u_sub/c
(Pin) i:/WORK/rtl_out_fixed1/u_sub/c
==> (Net) i:/WORK/rtl_out_fixed1/u_sub/c
(Net) i:/WORK/rtl_out_fixed1/u_sub/c
==> (Pin) i:/WORK/rtl_out_fixed1/u_sub/U2/I1
==> (Pin) i:/WORK/rtl_out_fixed1/u_sub/U3/A2

实际上不存在loops,但是工具会把 n5连接回去,形成loop。

改正

sub u_sub(.a(in1),.b(in2),.c(1'b1),.d(d),.e());

********************************* Verification Results *********************************
Verification SUCCEEDED
Reference design: r:/WORK/rtl_out_fixed1
Implementation design: i:/WORK/rtl_out_fixed1
2 Passing compare points

Matched Compare Points BBPin Loop BBNet Cut Port DFF LAT TOTAL

Passing (equivalent) 0 0 0 0 1 1 0 2
Failing (not equivalent) 0 0 0 0 0 0 0 0


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值