Re: [vhdl-200x] VHDL Testbench Enhancements

From: Evan Lavelle <eml-vhdl-200x_at_.....>
Date: Mon Apr 16 2007 - 07:30:53 PDT
Jim Lewis wrote:
> Hi,
> The VHDL standards community has been considering whether
> to enhance VHDL to add advanced testbench features.
> 
> If you are a VHDL user,
>   Do you want these features added to VHDL?
>   Would you rather adopt a verification language that
>   already supports these (SystemVerilog, SystemC, E, Vera).
> 
> I think VHDL needs to enhance testbench capability to
> stay competitive.

My short answer:

- As a long-term VHDL user (most recently, a 1.6M gate ASIC in VHDL/c), 
the proposals do nothing for me

- As the likely project manager of an upcoming 20M+ gate ASIC (probably 
VHDL/C++/possibly 'e'), the proposals still do nothing for me

- As a part-time compiler writer, I can only express sympathy for anyone 
who has to implement these features on top of VHDL

My long answer:

I haven't read the Accellera proposals, since I don't believe that 
Accellera is the appropriate place to discuss an IEEE language.  Having 
said that, I have some general comments. Of course, I know that most, if 
not all of you, will disagree with these comments.

IMHO, creating a single language which attempts to combine both 'design' 
and 'verification' is fundamentally misguided, for many reasons. To 
start with, let's look at the people who are actually expected to use 
this chimera - in other words, the design and verification engineers:

1 - in most ASIC projects, different people carry out these activities, 
and they have very different skill sets;

2 - verification engineers are generally skilled programmers who do not 
appreciate being forced to use archaic HDLs to write software;

3 - verification engineers have no need for "design" features;

4 - Verification engineers are smart people who already know how to use 
sophisticated languages such as C++, Java, 'e', and so on;

5 - design engineers have no need for "verification" features (with the 
exceptions noted below), and do not generally have the skills to use 
them anyway;

6 - Verification engineers do not need to write VHDL to be able to 
access the internals of a model written in VHDL. There are simple and 
well-established ways to do this from a second language.

In other words, there is no *technical* argument for a combined 
language. There are, of course, some exceptions to the points above. The 
2 primary ones are:

a - Design engineers should be able to write temporal assertions. There 
is an argument for adding these to the basic language, although this is 
not essential.

b - A large number of engineers (most?) are involved in "simple" one-man 
projects, or work in very small teams, primarily in FPGA design. These 
people carry out both design and verification activities. However, 
almost without exception, they will have no use for randomisation, 
coverage, or temporal assertion features. They simply write testbenches 
in basic VHDL or Verilog. VHDL has failings which make life difficult 
for these engineers, but the proposals for high-level verification 
features do not address these failings. A simple 'printf' would be 
enough for many of them.

In other words, there is no obvious benefit to the *users* of a combined 
language (note, as an aside, that the arguments above apply equally to 
SystemVerilog and to the proposed VHDL++).

So who, exactly, is this proposal addressing? What is the value 
proposition of the combined language? Who does it benefit?

- I can't believe that the compiler writers want it. Bolting these 
features on top of a 1980's language would be a nightmare. And what 
about OO? Look at the *vast* amount of effort that was required to get 
C++ from C; we could never hope to manage this in the VHDL world. There 
just aren't enough potential customers.

- The small vendors don't want it. Producing a complete language with 
all these features is going to be very, very, difficult for new 
entrants, and will effectively lock them out of the market.

- It does nothing for project managers. We can already get design and 
verification solutions at low cost. And consider how much easier, and 
cheaper, it will be to hire skilled C++ programmers than to hire skilled 
VHDL++/SystemVerilog programmers.

What does that leave? If it's not already obvious, I'll tell you: it's a 
marketing proposal. The VHDL++ proposal exists because of SystemVerilog, 
and a perceived need to catch up. SystemVerilog exists for complex 
reasons, which can be boiled down as follows. EDA is a very small 
market, dominated by 3 vendors. Innovation is difficult, because of the 
small market size, existing domination, and the understandable 
reluctance of EDA tool users to entrust their multi-million-dollar 
project to unproved tools. To progress, the existing vendors have to 
rely on a standardisation process, domination of that process, and 
consolidation of existing technologies. It's all about maintaining 
market share, and locking out new entrants. The result was SystemVerilog.

Do you *really* want to do this to VHDL? If so, why don't you 
(belatedly) start with a properly-argued value proposition, rather than 
a list of features?

Evan Lavelle
Riverside

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Apr 16 07:31:30 2007

This archive was generated by hypermail 2.1.8 : Mon Apr 16 2007 - 07:33:53 PDT