.. 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