I loved Gregg Lahti's letter the instant I read it. He wrote about using the VCS Verilog simulator once again after not having used it for four years. He was disappointed with VCS' primitive GUI, that version 2.0 of the Programming Language Interface (PLI) was missing, and that VCS lacked useful user documentation. "It seems to me that I've jumped through a time warp and landed on the Planet of the VCS, where evolution has gone backward," wrote Gregg. "Hopefully I won't accidentally discover the Statue of Liberty in any of the silicon I'm simulating."
It was great ESNUG. It was technically detailed criticism with a bit of humor. His letter would trigger a detailed discussion on high-speed Verilog simulation. I ran it in ESNUG 377. And trigger it did!
Sure enough, I got phone calls from Synopsys on how "unhappy" they were about seeing Gregg's letter in ESNUG. When they howled, "Gregg's e-mail is flaming us for stuff that's untrue!!!" I quietly replied, "Don't tell me; show me."
Tim Schneider of Synopsys sent in a detailed rebuttal directly countering some of what Gregg said about VCS documentation but agreed on the PLI 2.0 issue. "Admittedly, there is no PLI 2.0 in VCS yet. This will be fixed shortly," wrote Tim. "The VCS PLI 2.0 (VPI) beta program begins next month, and we've already been working with a few partners for several months." I ran Tim's rebuttal in ESNUG 378.
Later, Mark Warren of Synopsys wrote a detailed tutorial on which switches maximized VCS speed. It ran in ESNUG 380.
And then last week, Anders Nordstrom of Nortel replied to what Mark Warren had written. "I spent weeks trying different combinations of VCS switches without getting much more than 10 to 20 percent improvement. By running VCS with only the Signalscan PLI compiled in VCS (but not used), I got a speedup of 8 to 10 percent on a 3-Mgate RTL design and close to 20 percent on a 500-kgate RTL design," warned Anders. "By not compiling in any PLI routines, I got a speedup of 42 to 48 percent on both my small and large designs. Of course, the VCS PLI is useful for waveform viewers and code coverage tools, but you should never even link in the VCS PLI routines if you are not going to use them." Anders' warning ran in ESNUG 383.
So, just as I predicted, from Gregg's letter, the ESNUG readers got to see an uncensored discussion, warts and all, on how to get the fastest VCS run-times.
I called Mark Warren at Synopsys. I grinned as I told him that he should thank Gregg for starting such a useful VCS discussion. "Yea, yea, yea," Mark cynically replied. "I'll send Gregg a fruit basket from Synopsys."
John Cooley runs the E-Mail Synopsys Users' Group (ESNUG), is a contract ASIC designer and loves hearing from engineers at " jcooley@theworld.com" or (508) 429-4357.