0175cbd88d6c79d3a123744606a1d57e29b3d486
[libreriscv.git] / pinmux / pinmux_chennai_2018.tex
1 \documentclass[slidestop]{beamer}
2 \usepackage{beamerthemesplit}
3 \usepackage{graphics}
4 \usepackage{pstricks}
5
6 \title{SIMD}
7 \author{Rishabh Jain}
8 \author{Luke Kenneth Casson Leighton}
9
10
11 \begin{document}
12
13 \frame{
14 \begin{center}
15 \huge{Pin Multiplexer}\\
16 \vspace{32pt}
17 \Large{Auto-generating documentation, code \\
18 and resources for a Pinmux}\\
19 \vspace{24pt}
20 \Large{[proposed for] Chennai 9th RISC-V Workshop}\\
21 \vspace{16pt}
22 \large{\today}
23 \end{center}
24 }
25
26
27 \frame{\frametitle{Credits and Acknowledgements}
28
29 \begin{itemize}
30 \item TODO\vspace{10pt}
31 \end{itemize}
32 }
33
34
35 \frame{\frametitle{Glossary}
36
37 \begin{itemize}
38 \item Pin: an I/O pad. May be driven (input) or may drive (output).
39 \item FN: term for a single-wire "function", such as UART\_TX,
40 I2C\_SDA, SDMMC\_D0 etc. may be an input, output or both
41 (bi-directional case: two wires are always allocated, one
42 for input to the function and one for output from the function).
43 \item Input Priority Muxer: a multiplexer that has N selector
44 wires and N inputs, where the lowest (or highest) indexed
45 "selector" that is enabled results in its corresponding
46 input being routed to the output.\vspace{10pt}
47 \item TODO\vspace{10pt}
48 \end{itemize}
49 }
50
51
52 \frame{\frametitle{Muxer cases to handle}
53
54 \begin{itemize}
55 \item Many FN outputs to Many Pins: no problem\\
56 (weird configuration by end-user, but no damage to ASIC)\vspace{10pt}
57 \item One Pin to Many FN inputs: no problem\\
58 (weird configuration by end-user, but no damage to ASIC)\vspace{10pt}
59 \item Many Pins to One FN input {\bf Priority Mux needed}\\
60 No priority mux: Pin1 = HI, Pin0 = LO, ASIC is damaged\vspace{10pt}
61 \item Some FNs (I2C\_SDA, SD\_D0..3) are I/O Buses\\
62 Bi-directional control of the Pin must be handed to the
63 FN\vspace{10pt}
64 \item TODO\vspace{10pt}
65 \end{itemize}
66 }
67
68
69 \frame{\frametitle{Standard GPIO 4-way in/out Mux and I/O pad}
70 \begin{center}
71 \includegraphics[height=2.5in]{../shakti/m_class/mygpiomux.jpg}\\
72 {\bf 4-in, 4-out, pullup/down, hysteresis, edge-detection (EINT)}
73 \end{center}
74 }
75
76
77 \frame{\frametitle{Register-to-pad "control" settings}
78 \begin{center}
79 \includegraphics[height=2.5in]{reg_gpio_cap_ctrl.jpg}\\
80 {\bf pullup/down, hysteresis, current, edge-detection}
81 \end{center}
82 }
83
84
85 \frame{\frametitle{In/Out muxing, direction control}
86 \begin{center}
87 \includegraphics[height=2.5in]{reg_gpio_fn_ctrl.jpg}\\
88 {\bf Note: function can control I/O direction}
89 \end{center}
90 }
91
92
93 \frame{\frametitle{Simplified I/O pad Block Diagram}
94 \begin{center}
95 \includegraphics[height=2.5in]{reg_gpio_pinblock.jpg}\\
96 {\bf 3 wires: IN, OUT, OUTEN (also = !INEN) }
97 \end{center}
98 }
99
100
101 \frame{\frametitle{Output (and OUTEN) Wiring. 2 pins, 2 GPIO, 2 Fns}
102 \begin{center}
103 \includegraphics[height=2.5in]{reg_gpio_out_wiring.jpg}\\
104 {\bf Reg0 for Pin0, Reg1 for Pin1, Output and OUTEN same mux }
105 \end{center}
106 }
107
108
109 \frame{\frametitle{Input Selection and Priority Muxing}
110 \begin{center}
111 \includegraphics[height=0.75in]{reg_gpio_comparator.jpg}\\
112 {\bf Muxer enables input selection}\\
113 \vspace{10pt}
114 \includegraphics[height=1.25in]{reg_gpio_in_prioritymux.jpg}\\
115 {\bf However multiple inputs must be prioritised }
116 \end{center}
117 }
118
119
120 \frame{\frametitle{Input Mux Wiring}
121 \begin{center}
122 \includegraphics[height=2.5in]{reg_gpio_in_wiring.jpg}\\
123 {\bf Pin Mux selection vals NOT same as FN selection vals}
124 \end{center}
125 }
126
127
128 \frame{\frametitle{Summary}
129
130 \begin{itemize}
131 \item TODO
132 \end{itemize}
133 }
134
135
136 \frame{
137 \begin{center}
138 {\Huge The end\vspace{20pt}\\
139 Thank you\vspace{20pt}\\
140 Questions?\vspace{20pt}
141 }
142 \end{center}
143
144 \begin{itemize}
145 \item http://libre-riscv.org/shakti/m\_class/pinmux/
146 \end{itemize}
147 }
148
149
150 \end{document}