yx.yang
Full Member level 4
- Joined
- May 29, 2008
- Messages
- 236
- Helped
- 49
- Reputation
- 98
- Reaction score
- 46
- Trophy points
- 1,308
- Location
- ZhuHai, GuangDong, China
- Activity points
- 2,661
Hi, Friends:
I meet a problem when doing RTL VS netlist LEC check. The tool for synthesis is DC while using the Candence tool for LEC check.
The problem: DC indentify some DFFs with the same function, while LEC tool mis-located this, can causing copare fail.
For example:
input [1:0] sel;
reg [7:0] a;
reg [8:0] out;
alway @(posedge clk or negedge rstn)
if(!rstn)
a <= #1 8'h0;
else
case(sel[1:0])
2'h0: a <= #1 8'h0;
2'h1: a <= #1 8'h22;
2'h2: a <= #1 8'h44;
2'h3: a <= #1 8'h66;
endcase
alway @(posedge clk or negedge rstn)
if(!rstn) out <= #1 9'h0;
else out <= #1 a;
Form the RTL code, register a[3:0] and a[7:4] are function same, so DC may connect the DFF Q ouput of a[0] to the D input pin of DFF out[4]. This will cauing LEC "compare" fail (while map still ok).
I have used the "set flatten model -seq_merge" option in LEC, which still occured this problem.
Of caue, the RTL code isn't well codec, whie there must be many places with the same case, so I can't manully set equivalen in LEC.
My question is: Have you ever met this problem before and how will you solve the problem (except change the RTL cdoe ^_^).
Thanks.
I meet a problem when doing RTL VS netlist LEC check. The tool for synthesis is DC while using the Candence tool for LEC check.
The problem: DC indentify some DFFs with the same function, while LEC tool mis-located this, can causing copare fail.
For example:
input [1:0] sel;
reg [7:0] a;
reg [8:0] out;
alway @(posedge clk or negedge rstn)
if(!rstn)
a <= #1 8'h0;
else
case(sel[1:0])
2'h0: a <= #1 8'h0;
2'h1: a <= #1 8'h22;
2'h2: a <= #1 8'h44;
2'h3: a <= #1 8'h66;
endcase
alway @(posedge clk or negedge rstn)
if(!rstn) out <= #1 9'h0;
else out <= #1 a;
Form the RTL code, register a[3:0] and a[7:4] are function same, so DC may connect the DFF Q ouput of a[0] to the D input pin of DFF out[4]. This will cauing LEC "compare" fail (while map still ok).
I have used the "set flatten model -seq_merge" option in LEC, which still occured this problem.
Of caue, the RTL code isn't well codec, whie there must be many places with the same case, so I can't manully set equivalen in LEC.
My question is: Have you ever met this problem before and how will you solve the problem (except change the RTL cdoe ^_^).
Thanks.
Last edited: