[Libre-soc-bugs] [Bug 713] PartitionedSignal enhancement to add partition-context-aware lengths

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Thu Oct 7 20:54:18 BST 2021


--- Comment #30 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #27)
> (In reply to Jacob Lifshay from comment #23)
> > this is a misunderstanding, which i'm assuming by your later comments you
> > figured out...
> i hadn't.

oh, you still misunderstand...
> > The code creates *one* PartitionPoints based on an input elwidth
> > signal/value.
> the usage for-loop confused me from the examples, when it set that
> elwidth to zero width:
> for i in range(4):
>     pprint((i, layout(i, part_counts, unsigned(3))))
> if i am reading you correctly, that's a zero-width Signal.

there aren't actually any signals there...if there were a signal, it'd be like:
for i in range(4):
    m = Module()
    elwid = Signal(2)
    pp,b,c,d,e = layout(elwid, part_counts, unsigned(3))
    def process():
        yield elwid.eq(i)
        pp = yield from pp.get_values() # get nmigen to evaluate pp
        pprint((i, (pp,b,c,d,e)))
    sim = Simulator(m)

the elwid input parameter is a nmigen Value, not a Shape. This is what type
annotations would have told you...though it does also need docs...i got it to
work right before our meeting and ran out of time.

You are receiving this mail because:
You are on the CC list for the bug.

More information about the libre-soc-bugs mailing list