Re: SV APIs (Assertion)


Subject: Re: SV APIs (Assertion)
From: Stuart Sutherland (stuart@sutherland-hdl.com)
Date: Wed Oct 02 2002 - 18:29:14 PDT


At 03:32 PM 10/2/2002, Alain Raynaud wrote:

>Feel free to write whatever you want in SV. But don't force me to rewrite
>the millions of lines of code that we already have. For those, SV still
>requires a way to connect to "legacy" C code. C libraries have been used
>as the backplane of tool interoperability for more decades than I can
>remember.

That is a key reason why SystemVerilog needs DirectC/Cblend capability. I
think everyone is in agreement on that, so I would hope the haggling over
where to start is over and the real work of defining the interface has begun.

>However, I do think you make a very good point: everything we say PLI
>needs, should also be doable in SV in a native form. There is no reason
>that the PLI should have more features than SV itself.

There's that illusive "pie in the sky" again. First, if the SystemVerilog
language can do everything the PLI can do, then the language will be so
convoluted and bloated that no hardware engineer will want to use it. A
major part of my living is made teaching hardware engineers to write PLI
code. I have consistently observed two things: First, most hardware
engineers are not good C programmers--nor do they have any desire to
be. Second, most hardware engineers simply want to use the PLI to call a C
function, with some rudimentary synchronization of that C function to
simulation time.

Most engineers are not interested interested in having their Verilog models
find every delay of every ASIC cell in their 2 million gate design. They
could care less about having their Verilog model find the capacitance
characteristics of some particular node. I have yet to find a hardware
engineer that is really interested in writing a full graphical dubugger
that can trace all the drivers and loads of some signal. Nor have I seen
any hardware designers that want to write their own waveform display. So,
if hardware engineers do not want to do these types of things, why in the
world do we want to have them in a hardware design language. Granted, we
need debuggers, power analyzers, waveform displays, and a myriad of other
tools. But writing those tools is the job of software guru's at companies
like Novas. It is not what hardware engineers, or system engineers, for
that matter, want or need to do.

As a hardware designer, I just want access to enough C to allow my HDL
models and C models to interact, or for my hardware models to emulate
executing a program. That is all the interface to C that SystemVerilog
needs to provide. Leave the API stuff that debug tools and such need to
the PLI.

If I may be just a little blunt... I have not been able to attend any of
the SV-CC conference calls because they are not being held on Mondays, but
I have been reading all the e-mails. Thus far it does not appear to me
from the e-mail that any significant progress or even fundamental decisions
have been made by the SV-CC committee. If the committee does not draw a
line in the sand soon on what will go into SystemVerilog 3.1 and what will
be postponed until SystemVerilog 3.2, the committee will end up still
debating the great pie in the sky when I'm doing the final editing on the
SV 3.1 manual. Remember, you only have until March to be completely
finished defining what you want in SV 3.1.

[switching hats...] I was co-chair of the 1364-2001 standards group PLI
task force. Speaking from that perspective, I would like to recommend the
SV-CC either leave defining that PLI interface to the IEEE 1364 committee,
or create a totally separate SV committee to do that work. Do not try to
have the same committee defining both the DirectC/Cblend like interface and
the VPI-like interface. You will never finish if one committee tries to
tackle too much at once. My experience with the PLI for both 1364-1995 and
1364-2001 is that most of that type of API cannot be defined until AFTER
all constructs that affect the HDL are well defined and stable. For SV
3.1, you will not have that stability from the SV-AC, SV-BC or SV-EC
committees in time to define a VPI-like API for SV 3.1. The same thing
applies to the notion of having a direct SV API that can do everything the
PLI can do. You will not be able to define all that capability until the
SV 3.1 language itself is stable. So just put that idea on a back burner
and concentrate on defining something useful to hardware engineers.

[switching hats, again...] On the other hand, as the editor for the SV 3.1
LRM, I suppose I should be thanking SV-CC committee. The less progress you
make because of trying to do too much at once, the less work I'll have to
do next April. The SV committees that are focused on what hardware
engineers really need will have plenty to keep me busy.

Yatin, please go ahead and remove me from the SV-CC mailing list. It
doesn't look like my services as the editor will be needed for several
months. Even though I have a very deep interest in seeing a perfected
DirectC/Cblend capability in SystemVerilog, I will not be able to actively
participate in meetings that are not held on Mondays. Since that has
disqualified me from having any vote, there is little point to monitoring
the e-mail noise. Besides, I'm sure the committee has tired of my opinion.

Stu

>Alain Raynaud
>Tensilica, Inc.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stuart Sutherland Sutherland HDL Inc.
stuart@sutherland-hdl.com 22805 SW 92nd Place
phone: 503-692-0898 Tualatin, OR 97062
www.sutherland-hdl.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



This archive was generated by hypermail 2b28 : Wed Oct 02 2002 - 18:33:43 PDT