|
167 | 167 | By default the connection is ETH_RX->DMA_RX and DMA_TX->ETH_TX.
|
168 | 168 | It allows for loopback between ETH_RX->ETH_TX and DMA_TX->DMA_RX as well as
|
169 | 169 | connection of MFB generators on DMA_RX and ETH_TX.
|
170 |
| -These generators have their own part of MI32 address space.</p> |
| 170 | +These generators have their own part of MI32 address space. |
| 171 | +Speed Meters (SM) are located on each MFB interface and occupy another part |
| 172 | +of the MI32 address space. Contrary to the MFB generators, Speed Meters’ |
| 173 | +registers are implemented here (its MI wrapper is not used). In case the |
| 174 | +Speed Meters’ MI wrapper was used, address space would need to be adjusted as |
| 175 | +each wrapper contains seven MI registers instead of the current four.</p> |
171 | 176 | <p><strong>Connection diagram:</strong></p>
|
172 |
| -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">+--------+</span> <span class="o">+---</span>\ |
173 |
| - <span class="o">|</span> <span class="n">RX</span> <span class="n">Gen</span> <span class="o">+--+</span> <span class="mi">1</span> \ <span class="o">+---</span>\ |
174 |
| -<span class="n">ETH_RX</span> <span class="o">+--------+</span> <span class="o">|</span><span class="n">MUX_C</span><span class="o">+------------+</span> <span class="mi">0</span> \ <span class="o">+------+</span> <span class="n">DMA_RX</span> |
175 |
| -<span class="o">>--------------------------+------+</span> <span class="mi">0</span> <span class="o">/</span> <span class="o">|</span><span class="n">MUX_A</span><span class="o">+--+</span> <span class="n">FIFO</span> <span class="o">+------></span> |
176 |
| - <span class="o">|</span> <span class="o">+---/</span> <span class="o">+---+</span> <span class="mi">1</span> <span class="o">/</span> <span class="o">+------+</span> |
177 |
| - <span class="o">|</span> <span class="o">|</span> <span class="o">+---/</span> |
178 |
| - <span class="o">|</span> <span class="o">|</span> |
179 |
| - <span class="o">|</span> <span class="o">|</span> |
180 |
| - <span class="o">|</span> <span class="o">|</span> |
181 |
| - <span class="o">/---+</span> <span class="o">|</span> <span class="o">|</span> |
182 |
| - <span class="o">+------+</span> <span class="o">/</span> <span class="mi">1</span> <span class="o">+---+</span> <span class="o">/---+</span> <span class="o">|</span> |
183 |
| -<span class="o"><------+</span> <span class="n">FIFO</span> <span class="o">+--+</span><span class="n">MUX_B</span><span class="o">|</span> <span class="o">/</span> <span class="mi">0</span> <span class="o">+------+--------------------------<</span> |
184 |
| -<span class="n">ETH_TX</span> <span class="o">+------+</span> \ <span class="mi">0</span> <span class="o">+------------+</span><span class="n">MUX_D</span><span class="o">|</span> <span class="o">+-----------------+</span> <span class="n">DMA_TX</span> |
185 |
| - \<span class="o">---+</span> \ <span class="mi">1</span> <span class="o">+--+</span> <span class="n">TX</span> <span class="n">Gen</span> <span class="o">/</span> <span class="n">Player</span> <span class="o">|</span> |
186 |
| - \<span class="o">---+</span> <span class="o">+-----------------+</span> |
| 177 | +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">Left2Right</span> <span class="n">GLS</span> <span class="n">Stream</span> |
| 178 | + <span class="o">----------------------------------->></span> |
| 179 | + |
| 180 | + <span class="o">+--------+</span> <span class="o">+---</span>\ |
| 181 | + <span class="o">|</span> <span class="n">RX</span> <span class="n">Gen</span> <span class="o">+--+</span> <span class="mi">1</span> \ <span class="o">+---</span>\ |
| 182 | +<span class="n">ETH_RX</span> <span class="o">+------+</span> <span class="o">+--------+</span> <span class="o">|</span><span class="n">MUX_C</span><span class="o">+------------+</span> <span class="mi">0</span> \ <span class="o">+------+</span> <span class="o">+------+</span> <span class="n">DMA_RX</span> |
| 183 | +<span class="o">>-------+</span> <span class="n">SM</span> <span class="mi">2</span> <span class="o">+----------------------+------+</span> <span class="mi">0</span> <span class="o">/</span> <span class="o">|</span><span class="n">MUX_A</span><span class="o">+--+</span> <span class="n">FIFO</span> <span class="o">+--+</span> <span class="n">SM</span> <span class="mi">0</span> <span class="o">+-------></span> |
| 184 | + <span class="o">+------+</span> <span class="o">|</span> <span class="o">+---/</span> <span class="o">+---+</span> <span class="mi">1</span> <span class="o">/</span> <span class="o">+------+</span> <span class="o">+------+</span> |
| 185 | + <span class="o">|</span> <span class="o">|</span> <span class="o">+---/</span> |
| 186 | + <span class="o">|</span> <span class="o">|</span> |
| 187 | + <span class="n">LEFT</span> <span class="o">|</span> <span class="o">|</span> <span class="n">RIGHT</span> |
| 188 | + <span class="o">|</span> <span class="o">|</span> |
| 189 | + <span class="o">/---+</span> <span class="o">|</span> <span class="o">|</span> |
| 190 | + <span class="o">+------+</span> <span class="o">+------+</span> <span class="o">/</span> <span class="mi">1</span> <span class="o">+---+</span> <span class="o">/---+</span> <span class="o">|</span> <span class="o">+------+</span> |
| 191 | +<span class="o"><-------+</span> <span class="n">SM</span> <span class="mi">1</span> <span class="o">+--+</span> <span class="n">FIFO</span> <span class="o">+--+</span><span class="n">MUX_B</span><span class="o">|</span> <span class="o">/</span> <span class="mi">0</span> <span class="o">+------+----------------------+</span> <span class="n">SM</span> <span class="mi">3</span> <span class="o">+-------<</span> |
| 192 | +<span class="n">ETH_TX</span> <span class="o">+------+</span> <span class="o">+------+</span> \ <span class="mi">0</span> <span class="o">+------------+</span><span class="n">MUX_D</span><span class="o">|</span> <span class="o">+-----------------+</span> <span class="o">+------+</span> <span class="n">DMA_TX</span> |
| 193 | + \<span class="o">---+</span> \ <span class="mi">1</span> <span class="o">+--+</span> <span class="n">TX</span> <span class="n">Gen</span> <span class="o">/</span> <span class="n">Player</span> <span class="o">|</span> |
| 194 | + \<span class="o">---+</span> <span class="o">+-----------------+</span> |
| 195 | + |
| 196 | + <span class="n">Right2Left</span> <span class="n">GLS</span> <span class="n">Stream</span> |
| 197 | + <span class="o"><<-----------------------------------</span> |
187 | 198 | </pre></div>
|
188 | 199 | </div>
|
| 200 | +<div class="admonition note"> |
| 201 | +<p class="admonition-title">Note</p> |
| 202 | +<p>There is a Python module as well as a tool for user-friendly access to its features. |
| 203 | +Just install the ofm package and use <cite>ofm-gls -h</cite> in the command line or import it like so: |
| 204 | +<cite>from ofm.comp.mfb_tools.debug.gen_loop_switch import GenLoopSwitch</cite>.</p> |
| 205 | +</div> |
| 206 | +<div class="admonition note"> |
| 207 | +<p class="admonition-title">Note</p> |
| 208 | +<p>The sides of the GLS were renamed to make it more universal. The DMA side is on the RIGHT, |
| 209 | +ETH side is on the LEFT. This is used mainly in the GLS Python module: GenLoopSwitch. |
| 210 | +Instance of the GenLoopSwitch class contains two streams: l2r (left2right, prev. RX) and |
| 211 | +r2l (right2left, prev. TX).</p> |
| 212 | +</div> |
189 | 213 | <p><strong>MI address offsets:</strong></p>
|
190 | 214 | <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mh">0x000</span> <span class="o">--</span> <span class="n">RX</span> <span class="n">loopback</span> <span class="n">MUX_A</span> <span class="p">(</span><span class="mi">0</span> <span class="o">-></span> <span class="n">RX</span> <span class="n">stream</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-></span> <span class="n">TX</span> <span class="n">stream</span> <span class="n">loopback</span><span class="p">)</span>
|
191 | 215 | <span class="mh">0x004</span> <span class="o">--</span> <span class="n">TX</span> <span class="n">loopback</span> <span class="n">MUX_B</span> <span class="p">(</span><span class="mi">0</span> <span class="o">-></span> <span class="n">TX</span> <span class="n">stream</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-></span> <span class="n">RX</span> <span class="n">stream</span> <span class="n">loopback</span><span class="p">)</span>
|
|
0 commit comments