[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