Breaking it down into objective points is good - but I think there are a
few other points that are perhaps equally important to the three
mentioned here.
One is "how easy is it to write correct code?", covering things like
ease of learning, syntax, etc., as well as how helpful it is in
encouraging good design (a language that takes a dozen lines to standard
features like clocking, async reset, and sync enable for a simple
register would fail here).
A second point is "how hard is it to write incorrect code?". This might
seem redundant giving the previous point, but it covers things like
warning messages and error reporting, syntax that avoids confusing
operators or syntax (hands up those who have never confused assignment
types in Verilog), and language features that make it difficult to write
code that is unlikely to be correct (it should be hard - but not
impossible - to code a latch, for example).
A third point is "how well can you test the code?" - including
simulation or testbenches within the tool itself.
Since any such languages work by generating a mainstream HDL (usually
Verilog and/or VHDL, but theoretically also others like System Verilog,
AHDL, etc.), it is also important to consider the way this is done. How
efficient is the generated code - do you end up using the same FPGA
resources at the same speed as hand-written V* ? How comprehensible is
the generated code - is it easy to relate to the source code, or is it a
single incomprehensible mess?
> A comparison study shouldn't say if language X, Y, or Z is
> better but given a set of defined metrics how each language
> measures. And this wouldn't be perfect either, this would
> be similar to existing benchmarks. You need a suite of
> benchmarks and try to flush out the ones that are tailored
> for a specific design.
Agreed.
>
>>
>>>
>>> I personally want to explore alternatives ti VHDL and Verilog.
>>> I think it is time for new languages, now. We still use V*, but
>>> now as intermediate language to feed the design tools.
>>>
>>
>> I believe this is quite common. Many people use some sort of generator
>> - either more complete HDL's like MyHDL or Lava, or ad-hoc mixes of
>> perl, tcl, and other scripts to put together the VHDL or Verilog that is
>> used for the actual synthesis.
>
> I don't know if I would call it a generator. You have
> an HDL language and its goal is not to generate V* but it
> is pragmatic to leverage existing tools so *converting*
> to V* makes sense. I try to differentiate because, some
> of the earlier tcl, perl, etc were intended to be generators
> they were not intended to be an HDL. But things like MyHDL,
> Lava, etc are HDLs and convert because it is practical.
>
Fair enough - your terminology here is more accurate than mine.
> Regards,
> Chris
>
>