In article <4073f87c.0303311341.72931c07 / posting.google.com>,
Craig Selton <craigselton / yahoo.com> wrote:
>Jan Decaluwe <jan / jandecaluwe.com> wrote in message
>news:<3E8813F1.502D4ED8 / jandecaluwe.com>...
>> Craig Selton wrote:
>> > 
>> > This looks interesting.  You've managed to make a standard scripting
>> > language look convincingly like an HDL.  I've seen some other similar
>> > efforts recently (like one that uses Python) but, while interesting,
>> > they don't end up looking like an HDL - in most cases they end up
>> > forcing the HDL designer to learn a totally different style.
>> 
>> At least for MyHDL (my Python HDL attempt that you refer to), this
>> should
>> not be the case. Just substitute "while 1" for "process" or "always",
>> and "yield" for "wait", and you're done :-) Also, see the section
>> on RTL modeling in the MyHDL manual.
>
>First off, I didn't mean to dis MyHDL...
>
>But, as an HDL developer I must say that I prefer not having to do
>that mental substitution if I don't have to.  RHDL's syntax just looks
>more natural, I guess, but I'm sure MyHDL's approach has merits.

And this has really been one of my main goals in designing RHDL - as much 
as possible I try to shield the user from Ruby (it's not 100% possible of 
course - and some Ruby does show through) and instead make it look like 
they're using an HDL.  I'm really trying to make Ruby look like it's 
another language and that is possible because of Ruby's code blocks - I 
think this would be very difficult to do in Python.

>
>> 
>> Moreover, I believe emphasis on superficial syntax similarities can
>> make things confusing, as the semantics may still be different.
>> For example, the very first "process" example in the RHDL manual has
>> a global sensitivity list *and* an internal wait statement, something
>> which is forbidden in VHDL. It's forbidden for good reasons I believe,
>> because if I try to imagine how this is supposed to work, I get
>> thoroughly confused .. 
>> 
>
>I kind of see your point, but on the other hand after reading the
>explanation I can kind of see how that particular process with wait
>works.  I'm not sure how you would use that behavior in a real life
>model (I would have to think about it) but I suppose it might be nice
>to have that option.  So I'm not sure I would disallow the use of wait
>inside of a process with a sensitivity list.

Well, I looked at it this morning and found that it would be very 
difficult to disallow wait statements in processes with sensitivity 
lists... and, as you mention, perhaps someone would actually find this a 
useful 'feature'.  So, I'll just deal with it in the documentation ("You 
can use wait statements in a process with a sensitivity list, but the 
results may not be what you expect.  It is probably best to use wait 
statements only in a process without a sensitivity list but this is not 
enforced by RHDL.")


Phil