[myhdl-list] MyHDL code clean-up - please review
Brought to you by:
jandecaluwe
|
From: Jan D. <ja...@ja...> - 2008-08-20 10:56:30
|
I think the introduction of decorators in MyHDL 0.5 has been
a success, and by now everybody uses them.
For pure modelling, you can construct generators in any way,
including directly without decorators, and that will always
remain so.
However, some more implementation-oriented features, such
as hierarchy extraction, signal tracing and conversion also
contain support for non-decorator generators. This complicates
the code considerably, and in my opinion, unnecessarily.
Before adding new features, I would like to remove this
support to simplify the code.
Again, if you use decorators, everything should continue to
work as before. Below I will describe the proposed changes
in detail. Please review and give feedback about any objection.
* remove 'processes' function
This (undocumented) function is obsolete if you use decorators. It
was deprecated in 0.5.
* change 'instances' function to only return generators from decorators
Currently 'instances' returns any kind of generator. Sometimes people
may want to use a generator for other purposes than hardware description:
currently you can't use 'instances' in that case. By only returning
generators from decorators, this would become possible.
* remove support for "top-level" generators
Consider the degenerated case where the top-level is a generator:
def top():
<generator_body>
Hierarchy extraction, signal tracing and conversion have some special
support for this, which I would like to remove. Note that the
above is equivalent to:
def top():
@instance
def logic():
<generator_body>
return logic
* in general, assume that for hierarchy extraction, signal tracing
and conversion, only generators from decorators need to be considered.
There may be some more places in the code where this assumption can help
to simplify things.
Jan
--
Jan Decaluwe - Resources bvba - http://www.jandecaluwe.com
Kaboutermansstraat 97, B-3000 Leuven, Belgium
From Python to silicon:
http://myhdl.jandecaluwe.com
|