YuLongHuang
Member level 5
- Joined
- Dec 28, 2010
- Messages
- 84
- Helped
- 16
- Reputation
- 32
- Reaction score
- 16
- Trophy points
- 1,288
- Location
- Taipei, Taiwan
- Activity points
- 1,915
HI
I have some problems about Cadence LEC Conformal after I run the comparison between RTL and Synthesis result. It shows non-equivalence after running a full comparison but I don't know how to solve it since the schematic is too large to debug. I'd like to seek some ideas about what happened to this ?
Here are some part of my Pipeline MIPS code:
assign next_regIfId_ins = ( lw_stall )?regIfId_ins (Branch && equal) || jr || jalr )?32'd0: IN_ReadData;
assign next_regIfId_PC4 = ( lw_stall )?regIfId_PC4 (Branch && equal) || jr || jalr )?32'd0: PCnext;
always @ ( posedge clk or negedge rst_n ) begin
if ( !rst_n )
begin
regIfId_ins <= 32'd0;
regIfId_PC4 <= 32'd0;
end
else
begin
regIfId_ins <= next_regIfId_ins;
regIfId_PC4 <= next_regIfId_PC4;
end
end
However, the LEC Conformal shows non-equivalence comparison for these two signal since they are MUX and NAND respectively. I know that the NAND is flatten result after synthesis. But I have written a high level mux for test and it's correct for LEC Conformal. This confuse me a lot and I have no idea about how to debug this error.
I'd like to seek your help with your experiences. Thanks a lot anyway.
PoLo
I have some problems about Cadence LEC Conformal after I run the comparison between RTL and Synthesis result. It shows non-equivalence after running a full comparison but I don't know how to solve it since the schematic is too large to debug. I'd like to seek some ideas about what happened to this ?
Here are some part of my Pipeline MIPS code:
assign next_regIfId_ins = ( lw_stall )?regIfId_ins (Branch && equal) || jr || jalr )?32'd0: IN_ReadData;
assign next_regIfId_PC4 = ( lw_stall )?regIfId_PC4 (Branch && equal) || jr || jalr )?32'd0: PCnext;
always @ ( posedge clk or negedge rst_n ) begin
if ( !rst_n )
begin
regIfId_ins <= 32'd0;
regIfId_PC4 <= 32'd0;
end
else
begin
regIfId_ins <= next_regIfId_ins;
regIfId_PC4 <= next_regIfId_PC4;
end
end
However, the LEC Conformal shows non-equivalence comparison for these two signal since they are MUX and NAND respectively. I know that the NAND is flatten result after synthesis. But I have written a high level mux for test and it's correct for LEC Conformal. This confuse me a lot and I have no idea about how to debug this error.
I'd like to seek your help with your experiences. Thanks a lot anyway.
PoLo