Re: [myhdl-list] about MEP 107
Brought to you by:
jandecaluwe
From: Christopher F. <chr...@gm...> - 2012-08-28 02:52:37
|
On 8/10/12 9:27 AM, Jose Ignacio Villar wrote: > Hi all, > I'd like to know about the current status of MEP 107 or if there is > someone working on it, since I could understand from some messages in > the list that at least part of the work might be in progress. Sorry for the late reply, I have been extremely busy and will continue to be occupied for a couple months. Best of my knowledge, I have updated the MEP with the latest comments and there are no major objections. The MEP has been proposed and informally accepted(?). I believe, we are ready to move forward with the implementation. Other than basic feasibility experiments I have not made progress on the implementation. It should be noted, while we were discussing the MEP it was noted that "interfaces" can be implemented in version 0.7 but you have to locally reference the Signals in the interface/container. The following is an example of locally referencing the signals. def complex_mult(clock, reset, a, b, c): a_real,a_imag = a.real,a.imag b_real,b_imag = b.real,b.imag c_real,c_imag = c.real,c.imag @always_seq(clock.posedge, reset=rest) def hdl(): c_real.next = (a_real*b_real) + -1*(a_imag*b_imag) c_imag.next = (a_imag*b_real) + (a_real*b_imag) return hdl The full example available here : http://bit.ly/QpEm5j I also have a larger example here : http://bit.ly/QMhDuP, this example might not be of much use without some description? When MEP 107 is implemented the above can be expressed as: def complex_mult(clock, reset, a, b, c): @always_seq(clock.posedge, reset=rest) def hdl(): c.real.next = (a.real*b.real) + -1*(a.imag*b.imag) c.imag.next = (a.imag*b.real) + (a.real*b.imag) return hdl If someone wants to use interfaces today, I don't think the local references is (should be) a huge deterrent. Some have indicated they prefer the local references. Hope that helps, Chris |