trav1s
Full Member level 1
I've read numerous similar threads but I still can't get this thing to work.
The Verilog design is a DFF with asynchronous R and S (dff.v). I have created a testbench in order to simulate the DFF in ncsim (dff_testfixture.v). I would like to back annotate the testbench file (dff_testfixture.v) with the timing data (dff.sdf) extracted from the routed design (dff.v) using SoC Encounter.
When I elaborate the testbench I get these warnings:
nclaunch> ncelab -work dff_test -cdslib /home/travis/dff_test/cds.lib -logfile ncelab.log -errormax 15 -access +wc -status dff_test.dff_testfixture
ncelab: 06.20-s004: (c) Copyright 1995-2008 Cadence Design Systems, Inc.
Reading SDF file from location "/home/travis/dff_test/dff.sdf"
ncsdfc: Memory Usage - 3.7M program + 2.3M data = 6.1M total
ncsdfc: CPU Usage - 0.0s system + 0.0s user = 0.0s total (0.0s, 100.0% cpu)
ncelab: *W,SDFCTE: Module dff_testfixture of instance dff_testfixture doesn't match SDF celltype of dff, skipping annotation <./dff.sdf, line 16>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port S at scope level <./dff.sdf, line 19>.
ncelab: *W,SDFINF: Instance p214748365A26 not found at scope level <top-level> <./dff.sdf, line 24>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port R at scope level <./dff.sdf, line 20>.
ncelab: *W,SDFINF: Instance p214748365A27 not found at scope level <top-level> <./dff.sdf, line 23>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port D at scope level <./dff.sdf, line 21>.
ncelab: *W,SDFINF: Instance Q_reg not found at scope level <top-level> <./dff.sdf, line 26>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port C at scope level <./dff.sdf, line 22>.
ncelab: *W,SDFINF: Instance p214748365A not found at scope level <top-level> <./dff.sdf, line 27>.
ncelab: *W,SDFAND: Attempted INTERCONNECT annotation to non-existent destination port nQ at scope level <./dff.sdf, line 26>.
ncelab: *W,SDFAND: Attempted INTERCONNECT annotation to non-existent destination port Q at scope level <./dff.sdf, line 27>.
ncelab: *W,SDFINF: Instance p214748365A27 not found at scope level <top-level> <./dff.sdf, line 33>.
ncelab: *W,SDFINF: Instance p214748365A26 not found at scope level <top-level> <./dff.sdf, line 42>.
ncelab: *W,SDFINF: Instance Q_reg not found at scope level <top-level> <./dff.sdf, line 51>.
ncelab: *W,SDFINF: Instance p214748365A not found at scope level <top-level> <./dff.sdf, line 68>.
ncelab: Memory Usage - 16.8M program + 12.0M data = 28.7M total
ncelab: CPU Usage - 0.0s system + 0.0s user = 0.0s total (0.0s, 76.4% cpu)
ncelab: ANNOTATION Time - 0.0s
After simulating the testbench it is clear that the sdf has not been taken into account (but you probably knew that much from the above warnings). The simulation runs exactly as it is supposed to, but changes at the output occur instantaneously with changes from the input, meaning 0 delay.
What is the problem? Why isn't the back annotation occurring after using $sdf_annotate? I noticed that the sdf contains definitions for nodes that weren't declared in the original design, but were automatically created in Encounter. Is that a problem?
I have tried so many different things after hours and hours and I'm about to lose my mind. Please, somebody definitively tell me what is wrong with my approach. Attached are the three files mentioned before.
View attachment dff_test.tar
The Verilog design is a DFF with asynchronous R and S (dff.v). I have created a testbench in order to simulate the DFF in ncsim (dff_testfixture.v). I would like to back annotate the testbench file (dff_testfixture.v) with the timing data (dff.sdf) extracted from the routed design (dff.v) using SoC Encounter.
When I elaborate the testbench I get these warnings:
nclaunch> ncelab -work dff_test -cdslib /home/travis/dff_test/cds.lib -logfile ncelab.log -errormax 15 -access +wc -status dff_test.dff_testfixture
ncelab: 06.20-s004: (c) Copyright 1995-2008 Cadence Design Systems, Inc.
Reading SDF file from location "/home/travis/dff_test/dff.sdf"
ncsdfc: Memory Usage - 3.7M program + 2.3M data = 6.1M total
ncsdfc: CPU Usage - 0.0s system + 0.0s user = 0.0s total (0.0s, 100.0% cpu)
ncelab: *W,SDFCTE: Module dff_testfixture of instance dff_testfixture doesn't match SDF celltype of dff, skipping annotation <./dff.sdf, line 16>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port S at scope level <./dff.sdf, line 19>.
ncelab: *W,SDFINF: Instance p214748365A26 not found at scope level <top-level> <./dff.sdf, line 24>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port R at scope level <./dff.sdf, line 20>.
ncelab: *W,SDFINF: Instance p214748365A27 not found at scope level <top-level> <./dff.sdf, line 23>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port D at scope level <./dff.sdf, line 21>.
ncelab: *W,SDFINF: Instance Q_reg not found at scope level <top-level> <./dff.sdf, line 26>.
ncelab: *W,SDFANS: Attempt to annotate to non-existent source port C at scope level <./dff.sdf, line 22>.
ncelab: *W,SDFINF: Instance p214748365A not found at scope level <top-level> <./dff.sdf, line 27>.
ncelab: *W,SDFAND: Attempted INTERCONNECT annotation to non-existent destination port nQ at scope level <./dff.sdf, line 26>.
ncelab: *W,SDFAND: Attempted INTERCONNECT annotation to non-existent destination port Q at scope level <./dff.sdf, line 27>.
ncelab: *W,SDFINF: Instance p214748365A27 not found at scope level <top-level> <./dff.sdf, line 33>.
ncelab: *W,SDFINF: Instance p214748365A26 not found at scope level <top-level> <./dff.sdf, line 42>.
ncelab: *W,SDFINF: Instance Q_reg not found at scope level <top-level> <./dff.sdf, line 51>.
ncelab: *W,SDFINF: Instance p214748365A not found at scope level <top-level> <./dff.sdf, line 68>.
ncelab: Memory Usage - 16.8M program + 12.0M data = 28.7M total
ncelab: CPU Usage - 0.0s system + 0.0s user = 0.0s total (0.0s, 76.4% cpu)
ncelab: ANNOTATION Time - 0.0s
After simulating the testbench it is clear that the sdf has not been taken into account (but you probably knew that much from the above warnings). The simulation runs exactly as it is supposed to, but changes at the output occur instantaneously with changes from the input, meaning 0 delay.
What is the problem? Why isn't the back annotation occurring after using $sdf_annotate? I noticed that the sdf contains definitions for nodes that weren't declared in the original design, but were automatically created in Encounter. Is that a problem?
I have tried so many different things after hours and hours and I'm about to lose my mind. Please, somebody definitively tell me what is wrong with my approach. Attached are the three files mentioned before.
View attachment dff_test.tar