[Libre-soc-bugs] [Bug 50] nmigen pinmux
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Mon Nov 15 19:12:11 GMT 2021
https://bugs.libre-soc.org/show_bug.cgi?id=50
--- Comment #30 from andrey at technepisteme.xyz ---
(In reply to Luke Kenneth Casson Leighton from comment #29)
> (In reply to andrey from comment #28)
>
> > What signals do I need to use to control the Mux itself?
>
> you don't. that's JTAG's job.
>
> > I need a way to select between pad and jtag boundary scan (or am I
> > over-thinking?)
>
> yes you are.
Indeed I am XD
> this works:
>
> 261 m.d.comb += io.pad.i.eq(self._invert_if(invert, port))
> 262 m.d.comb += pin.i.eq(io.core.i)
>
> https://git.libre-soc.org/?p=pinmux.git;a=commitdiff;
> h=3906235b8a5f46004971e42e75f4fb9c44722b18
Thanks, tested it and is working.
Extended to get_output, get_tristate, and get_input_output:
https://git.libre-soc.org/?p=pinmux.git;a=blob;f=src/spec/testing_stage1.py;h=2adf184193bb11d8a05bc2c0935ece9b3498d8bc;hb=800e9b622f39a06547b6c63c0127135bc8a38bb1
See the new diagram I drew up based on the topology from nmigen's plat.py
https://libre-soc.org/docs/pinmux/
(The I/O and tristate statements were made from it, I recommend checking it for
your sanity ;) )
>From what I can tell it works, but I'll need further confirmation from Luke to
make sure this is heading in the right direction.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list