Escolar Documentos
Profissional Documentos
Cultura Documentos
Tim Schneider
Synopsys Corporation
Gopal Varshney
Corrent Corporation
Gregg D.
Lahti
Gregg D.
Lahti
Gregg D.
Lahti
Gregg D.
Lahti
Gregg D.
Lahti
Gregg D.
Lahti
Gregg D.
Lahti
Gregg D.
Lahti
Gregg D.
Lahti
Coding styles
Remove #0 and #1 delays
Separate sequential items from combinatorial processes
10
Gregg D.
Lahti
11
Gregg D.
Lahti
12
Gregg D.
Lahti
Profiling Simulations
Profile your simulation to see where the time is spent
Useful to see if code, PLI or library is causing the
bottleneck
Easy with VCS 5.2 and later:
use +prof in command line compile script
VCS creates a vcs.prof outputfile
Read the file, see where the time is spent
13
Gregg D.
Lahti
14
Gregg D.
Lahti
15
Gregg D.
Lahti
16
Gregg D.
Lahti
17
Gregg D.
Lahti
18
Gregg D.
Lahti
19
Gregg D.
Lahti
20
Gregg D.
Lahti
21
Gregg D.
Lahti
22
Gregg D.
Lahti
23
Gregg D.
Lahti
24
Gregg D.
Lahti
25
Performance Results
Corrent increased RTL-based simulation performance
by over 6X!
Average speed increase measured over 15 different
simulation runs of a 15M gate RTL design
Incremental changes measured between flag settings
Profiling was essential!
Gregg D.
Lahti
ahb_cfg_test1
ahb_cfg_test2
ahb_cfg_test_incr
ahb_cfg_wr_rd
ahb_ddr_bw
ahb_ddr_test1
ahb_ddr_test_incr
ahb_ddr_wr_rd
ahb_memctl_test1
ahb_memctl_test_sdram
gmi_mission_test1
gmi_mission_test2
gmi_mission_test3
gmi_pause_test1
gmi_ser_test
30.770
13.130
186.830
67.610
115.140
61.570
103.870
100.100
217.370
131.330
416.290
416.880
416.340
76.250
97.630
-
7.340
4.370
33.860
13.980
22.310
13.000
21.420
20.520
34.560
23.970
76.550
76.840
76.850
15.730
18.230
7.360
4.380
33.780
13.940
22.250
12.940
21.270
20.340
34.330
23.900
76.510
76.940
76.630
15.700
18.180
6.650
4.170
29.530
12.400
18.970
11.260
18.510
17.400
29.610
21.170
67.790
67.890
67.670
13.920
16.160
5.940
3.740
25.740
10.980
16.680
9.890
16.320
15.400
25.220
18.420
59.320
59.560
59.470
12.560
14.140
533%
534%
608%
693%
26
Gregg D.
Lahti
ahb_cfg_test1
ahb_cfg_test2
ahb_cfg_test_incr
ahb_cfg_wr_rd
ahb_ddr_bw
ahb_ddr_test1
ahb_ddr_test_incr
ahb_ddr_wr_rd
ahb_memctl_test1
ahb_memctl_test_sdram
gmi_mission_test1
gmi_mission_test2
gmi_mission_test3
gmi_pause_test1
gmi_ser_test
B
7.340
4.370
33.860
13.980
22.310
13.000
21.420
20.520
34.560
23.970
76.550
76.840
76.850
15.730
18.230
7.360
4.380
33.780
13.940
22.250
12.940
21.270
20.340
34.330
23.900
76.510
76.940
76.630
15.700
18.180
6.650
4.170
29.530
12.400
18.970
11.260
18.510
17.400
29.610
21.170
67.790
67.890
67.670
13.920
16.160
5.940
3.740
25.740
10.980
16.680
9.890
16.320
15.400
25.220
18.420
59.320
59.560
59.470
12.560
14.140
0%
14%
30%
27
Gregg D.
Lahti
Summary
Clean the simulation scripts by removing the
following:
-I
+acc+2
-PLI [library] (unused PLI calls)
-PP
28
Gregg D.
Lahti
Summary (cont)
Clean your Verilog of #0 and #1 delays
Optimize your pli.tab files
Profile your simulation! Nasty time-sinks can be
resolved!
29
Gregg D.
Lahti
30
References
VCS 5.0 and 6.0 User Guides, Synopsys Corporation, 2002.
Test Benches: The Dark Side of IP Reuse, Gregg D. Lahti, San Jose SNUG 2000
paper. http://gateslinger.com/chiphead.htm or
http://www.synopsys.com/news/pubs/snug/snug00/lahti_final.pdf
Verilog Nonblocking Assignments With Delays, Myths and Mysteries, Cliff
Cummings, Boston SNUG 2002 paper. http://www.sunburst-design.com/papers/.
ESNUG posts: 380 item 11, 383 item 9, 387 item 16.
http://deepchip.com/esnug .html
Solvnet: http://solvnet.synopsys.com
Special thanks to Mark Warren for the fruit basket and review of the paper!