1
0
mirror of https://github.com/myhdl/myhdl.git synced 2024-12-14 07:44:38 +08:00

55 lines
1.3 KiB
ReStructuredText
Raw Normal View History

.. currentmodule:: myhdl
.. _new09:
***********************
What's new in MyHDL 0.9
***********************
:Author:
Interfaces
===========
Rationale
---------
Complex designs often have many signals (ports) that
are passed to different levels of hierarchy. Typically
many of the signals can logically be grouped together.
Grouping the signals into an *interface* simplifies the
code, improves efficiency, and reduces errors.
Previous versions supported /interfaces/ for modeling
and for conversion if the **attributes** were locally
referenced in a MyHDL module. The proposed solution
will convert an example like the following:
def complex_mult(clock,reset,a,b,c):
@always_seq(clock.posedge,reset=reset)
def rtl_mult():
c.real.next = (a.real*b.real) - (a.imag*b.imag)
c.imag.next = (a.real*b.imag) + (a.imag*b.real)
return rtl_mult
Solution
--------
The proposed solution is to create uniques names for
attributes which are type Signal and used by a module.
The converter will create a unique name by using the
name of the parent and the name of the attribute along
with the name of the MyHDL module instance (if applicable).
Conversion
----------
See also
--------
For additional information see the original proposal `mep-107`_.
.. _mep-107: http://http://myhdl.org/doku.php/meps:mep-107