OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [designs/] [leon3-digilent-xc3s1000/] [index.html] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
<html><head>
3
  <meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1"><title>LEON3MP Reference Design</title>
4
 
5
  <meta name="GENERATOR" content="OpenOffice.org 1.1.0  (Linux)">
6
  <meta name="CREATED" content="20040423;18351200">
7
  <meta name="CHANGED" content="20040426;16351800"></head>
8
<body dir="ltr" lang="en-US">
9
<table border="0" cellpadding="2" cellspacing="2" width="750">
10
  <tbody>
11
    <tr>
12
      <td valign="top">
13
      <h3><span style="font-family: helvetica,arial,sans-serif;">LEON3MP
14
reference design for the GR-XS3C-1500 board<br>
15
</span></h3>
16
 
17
 
18
      <h4 style="font-family: helvetica,arial,sans-serif;">Introduction</h4>
19
 
20
      <small><span style="font-family: helvetica,arial,sans-serif;">The
21
LEON3MP is a generic reference
22
design for LEON3-based systems. This version is specially adapted for
23
the <a href="http://www.pender.ch/">GR-XC3S-1500 Spartan3 development board</a>, and contains the following
24
functionality:<br>
25
<br>
26
</span></small>
27
      <table border="0" cellpadding="2" cellspacing="2" width="700">
28
 
29
  <tbody>
30
    <tr>
31
      <td valign="top">
32
      <ul><li><small><span style="font-family: helvetica,arial,sans-serif;">1 -
33
4 LEON3 processor
34
cores with MP support</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">Multi-processor
35
debug support unit (DSU)<br>
36
    </span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">8-bit
37
PROM controller</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">32-bit SDRAM controller<br>
38
    </span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">Round-robin
39
AHB arbiter/controller</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">AHB/APB bridge with
40
plug&amp;play support<br>
41
    </span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">Multi-processor
42
interrupt controller</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">32-bit modular timer
43
unit</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">1 -
44
2 UARTs with FIFO<br>
45
    </span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">10/100 ethernet MAC</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">PS2 mouse/keyboard interface</span></small></li>
46
              <li><small><span style="font-family: helvetica,arial,sans-serif;">24-bit Video DAC interface<br>
47
                </span></small></li>
48
<li><small><span style="font-family: helvetica,arial,sans-serif;">Serial debug
49
communication link</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">Etherner debug
50
communication link</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">JTAG debug communication link</span></small></li></ul>
51
      </td>
52
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;"><img alt="" src="../../boards/gr-xc3s-1500/gr-xc3s_top_small.jpg" align="right" height="212" width="320"></span></small></td>
53
    </tr>
54
  </tbody>
55
      </table>
56
 
57
      <small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;"><br>
58
<br>
59
The&nbsp; LEON3MP-GR-XS3C-1500 design is provided together with GRLIB, and is
60
located in grlib/designs/leon3-gr-xc3s-1500 .<br>
61
</span></small><small><span style="font-family: helvetica,arial,sans-serif;"><br>
62
</span></small>
63
      <h4><span style="font-family: helvetica,arial,sans-serif;">Reference
64
architecture</span></h4>
65
 
66
      <small><span style="font-family: helvetica,arial,sans-serif;">The
67
LEON3MP is made up by cores from the GRLIB IP library, which are
68
connected together via the AMBA AHB and APB buses. The plug&amp;play
69
configuration method of GRLIB makes it possible to assign any
70
combination of addresses and interrupts to the cores. However, to be
71
software compatible with simple operating systems such as the LEON
72
Bare-C cross-compiler, some of the vital cores must be assigned to
73
predefined addresses and interrupts. The table below shows the
74
reference assigment in the LEON3MP design:<br>
75
<br>
76
</span></small>
77
      <table style="width: 100%; text-align: left;" border="1" cellpadding="2" cellspacing="2">
78
 
79
  <tbody>
80
    <tr>
81
      <th style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Core</span></small></th>
82
      <th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Memory area<br>
83
      </span></small></th>
84
      <th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Interrupt</span></small></th>
85
    </tr>
86
    <tr>
87
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">PROM/SDRAM controller<br>
88
      </span></small></td>
89
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x00000000 -
90
0x20000000 : 8 Mbyte 8-bit flash PROM<br>
91
0x40000000 - 0x80000000 : 64 Mbyte 32-bit SDRAM<br>
92
0x80000000 - 0x80000100 : Configuration registers (APB)<br>
93
      </span></small></td>
94
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td>
95
    </tr>
96
 
97
 
98
<tr>
99
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">APB bridge<br>
100
      </span></small></td>
101
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000000 -
102
0x80100000 : APB bus<br>
103
      </span></small></td>
104
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td>
105
    </tr>
106
    <tr>
107
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">UART</span></small></td>
108
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000100 - </span></small><small><span style="font-family: helvetica,arial,sans-serif;">0x80000200 : UART1
109
registers</span></small></td>
110
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">2</span></small><br>
111
      </td>
112
    </tr>
113
    <tr>
114
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Interrupt controller</span></small><br>
115
      </td>
116
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000200 - </span></small><small><span style="font-family: helvetica,arial,sans-serif;">0x80000300 : IRQ
117
registers<br>
118
      </span></small></td>
119
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td>
120
    </tr>
121
    <tr>
122
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Timer unit<br>
123
      </span></small></td>
124
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;">0x80000300</span></small><small><span style="font-family: helvetica,arial,sans-serif;"> -</span></small><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;"> 0x80000400 : timer
125
registers<br>
126
      </span></small></td>
127
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">8, 9<br>
128
      </span></small></td>
129
    </tr>
130
    <tr>
131
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">LEON3 debug support
132
unit (DSU)<br>
133
      </span></small></td>
134
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x90000000 -
135
0xA0000000 : DSU registers<br>
136
      </span></small></td>
137
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td>
138
    </tr>
139
  </tbody>
140
      </table>
141
 
142
      <small><span style="font-family: helvetica,arial,sans-serif;"><br>
143
Additional (optional) IP cores are assigned addresses and interrupts as
144
desribed in the table below. These assignments are LEON3MP specific and
145
can be changed without impact on software compatibility.<br>
146
<br>
147
</span></small>
148
      <table style="width: 100%; text-align: left;" border="1" cellpadding="2" cellspacing="2">
149
 
150
  <tbody>
151
    <tr>
152
      <th style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Core</span></small></th>
153
      <th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Memory area<br>
154
      </span></small></th>
155
      <th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Interrupt</span></small></th>
156
    </tr>
157
 
158
 
159
 
160
    <tr>
161
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Serial debug
162
communication link<br>
163
      </span></small></td>
164
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000700 - </span></small><small><span style="font-family: helvetica,arial,sans-serif;">0x80000800 : AHB UART
165
registers</span></small></td>
166
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small> </td>
167
    </tr>
168
    <tr>
169
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Ethernet debug
170
communication link</span></small><br>
171
      </td>
172
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small><small><span style="font-family: helvetica,arial,sans-serif;"><br>
173
      </span></small></td>
174
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small> </td>
175
    </tr>
176
    <tr>
177
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">JTAG debug
178
communication link</span></small></td>
179
      <td valign="top">-<br>
180
      </td>
181
      <td valign="top">-<br>
182
      </td>
183
    </tr>
184
<tr>
185
      <td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">10/100 Mbit ethernet MAC<br>
186
      </span></small></td>
187
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;">0xFFFB0000</span></small><small><span style="font-family: helvetica,arial,sans-serif;"> -</span></small><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;"> 0xFFFB1000 :
188
ethernet
189
control registers<br>
190
      </span></small></td>
191
      <td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">12</span></small></td>
192
    </tr>
193
 
194
    <tr>
195
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">On-chip RAM<br>
196
 
197
      </span></small></td>
198
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;">0xA0000000</span></small><small><span style="font-family: helvetica,arial,sans-serif;"> -</span></small><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;"> 0xA0100000 : On-chip
199
RAM<br>
200
      </span></small></td>
201
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td>
202
    </tr>
203
    <tr>
204
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">UART</span></small></td>
205
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000900 -
206
0x80000A00 : Secondary UART<br>
207
      </span></small></td>
208
      <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">3</span></small></td>
209
    </tr><tr>
210
            <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">PS/2 Keyboard interface</span></small><br>
211
            </td>
212
            <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000500 -
213
0x80000600 : PS/2 registers<br>
214
</span></small></td>
215
            <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">4</span></small><br>
216
            </td>
217
          </tr>
218
          <tr>
219
            <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">VGA controller<br>
220
</span></small></td>
221
            <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000600 -
222
0x80000700 : VGA registers</span></small></td>
223
            <td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td>
224
          </tr>
225
 
226
  </tbody>
227
      </table>
228
 
229
      <br>
230
 
231
      <h4><small><span style="font-family: helvetica,arial,sans-serif;">
232
</span></small></h4>
233
 
234
      <h4><span style="font-family: helvetica,arial,sans-serif;">Configuration</span></h4>
235
 
236
      <div style="text-align: left;"><small><span style="font-family: helvetica,arial,sans-serif;">The configuartion of
237
the LEON3MP design is defined through the config package located <a href="config.vhd">config.vhd</a>.
238
This file can be automatically generated using a GUI based on tkconfig.
239
To launch the GUI, do 'make xconfig'. After the configuration is
240
completed, save and
241
exit the tool and config.vhd will be created automatically.<br>
242
<br>
243
<img alt="" src="../share/gui.gif" height="148" width="561"><br>
244
<br>
245
<i>Figure 1. LEON3MP configuration GUI</i></span></small><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><br style="font-family: helvetica,arial,sans-serif;">
246
<small>
247
</small></div>
248
 
249
      <h4><span style="font-family: helvetica,arial,sans-serif;">Simulation</span></h4>
250
 
251
      <small><span style="font-family: helvetica,arial,sans-serif;">To
252
simulate the testbench, first compile the model for simulation. This
253
can be done automatically for three different simulators. Execute one
254
of the following commands:</span><br style="font-family: helvetica,arial,sans-serif;">
255
      </small>
256
      <ul style="font-family: helvetica,arial,sans-serif;">
257
<li><small>make vsim</small></li><li><small>make ncsim</small></li><li><small>make ghdl</small></li>
258
      </ul>
259
 
260
      <small><span style="font-family: helvetica,arial,sans-serif;">For vsim,
261
start the simulation with 'vsim testbench' and do 'run 100'. This
262
should print the current LEON3MP configuration:</span><br style="font-family: helvetica,arial,sans-serif;">
263
      </small><br>
264
 
265
      <small><span style="font-family: courier new,courier,monospace;">$ vsim
266
-c -quiet testbench</span><br style="font-family: courier new,courier,monospace;">
267
<span style="font-family: courier new,courier,monospace;">Reading
268
/usr/local/model58/tcl/vsim/pref.tcl</span><br style="font-family: courier new,courier,monospace;">
269
<span style="font-family: courier new,courier,monospace;">Reading
270
/home/jiri/modelsim.tcl</span><br style="font-family: courier new,courier,monospace;">
271
      </small><small><span style="font-family: courier new,courier,monospace;"></span></small><br style="font-family: courier new,courier,monospace;">
272
 
273
      <small><span style="font-family: courier new,courier,monospace;"># 5.8</span><br style="font-family: courier new,courier,monospace;">
274
      </small><small><span style="font-family: courier new,courier,monospace;"></span><big><tt>#
275
VSIM 1&gt; run<br>
276
# LEON3 Demonstration design<br>
277
# GRLIB Version 0.13<br>
278
# Target technology: virtex2 ,&nbsp; memory library: virtex2<br>
279
# ahbctrl: mst0: Gaisler
280
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Leon3 SPARC V8
281
Processor<br>
282
# ahbctrl: mst1: Gaisler
283
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AHB Debug UART<br>
284
# ahbctrl: mst2: Gaisler
285
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fast 32-bit PCI
286
Bridge<br>
287
# ahbctrl: mst3: Gaisler
288
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AMBA DMA controller<br>
289
# ahbctrl: mst5: Gaisler
290
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OC ethernet AHB
291
interface<br>
292
# ahbctrl: slv0: Gaisler
293
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Simple SRAM
294
Controller<br>
295
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memory at 0x00000000,
296
size 16 Mbyte, cacheable, prefetch<br>
297
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memory at 0x40000000,
298
size 16 Mbyte, cacheable, prefetch<br>
299
# ahbctrl: slv1: Gaisler
300
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AHB/APB Bridge<br>
301
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memory at 0x80000000,
302
size 1 Mbyte<br>
303
# ahbctrl: slv2: Gaisler
304
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Leon3 Debug Support
305
Unit<br>
306
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memory at 0x90000000,
307
size 256 Mbyte<br>
308
# ahbctrl: slv4: Gaisler
309
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fast 32-bit PCI
310
Bridge<br>
311
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memory at 0xe0000000,
312
size 256 Mbyte<br>
313
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O port at 0xfff80000,
314
size 128kbyte<br>
315
# ahbctrl: slv5: Gaisler
316
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OC ethernet AHB
317
interface<br>
318
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O port at 0xfffb0000,
319
size 4kbyte<br>
320
# ahbctrl: slv6: Gaisler
321
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OC CAN AHB interface<br>
322
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O port at 0xfffc0000,
323
size 4kbyte<br>
324
# ahbctrl: slv7: Gaisler
325
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generic AHB SRAM
326
module<br>
327
# ahbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memory at 0xa0000000,
328
size 1 Mbyte, cacheable, prefetch<br>
329
# ahbctrl: AHB arbiter/multiplexer rev 1<br>
330
# ahbctrl: Common I/O area at 0xfff00000, 1 Mbyte<br>
331
# ahbctrl: Configuration area at 0xfffff000, 4 kbyte<br>
332
# apbctrl: APB Bridge at 0x80000000 rev 1<br>
333
# apbctrl: slv1: Gaisler
334
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generic UART<br>
335
# apbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O ports at 0x80000100,
336
size 256 byte<br>
337
# apbctrl: slv2: Gaisler
338
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Multi-processor
339
Interrupt Ctrl.<br>
340
# apbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O ports at 0x80000200,
341
size 256 byte<br>
342
# apbctrl: slv3: Gaisler
343
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Modular Timer Unit<br>
344
# apbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O ports at 0x80000300,
345
size 256 byte<br>
346
# apbctrl: slv4: Gaisler
347
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fast 32-bit PCI
348
Bridge<br>
349
# apbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O ports at 0x80000400,
350
size 256 byte<br>
351
# apbctrl: slv5: Gaisler
352
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AMBA DMA controller<br>
353
# apbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O ports at 0x80000500,
354
size 256 byte<br>
355
# apbctrl: slv7: Gaisler
356
Research&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AHB Debug UART<br>
357
# apbctrl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I/O ports at 0x80000700,
358
size 256 byte<br>
359
# ahbram7: AHB SRAM Module rev 1, 2 kbytes<br>
360
# can_oc6: Opencores CAN MAC, rev 0, irq 13<br>
361
# eth_oc5: Wishbone/AHB interface for OC ethernet MAC, irq 12<br>
362
# eth_oc5: Opencores 10/100 Mbit ethernet MAC, rev 0<br>
363
# pci_mtf4: 32-bit PCI/AHB bridge&nbsp; rev 0, 2 Mbyte PCI memory BAR,
364
8-word FIFOs<br>
365
# dmactrl5: 32-bit DMA controller &amp; AHB/AHB bridge&nbsp; rev 0<br>
366
# gptimer3: GR Timer Unit rev 0, 16-bit scaler, 1 32-bit timers, irq 8<br>
367
# irqmp: Multi-processor Interrupt Controller rev 1, #cpu 1<br>
368
# apbuart1: Generic UART rev 1, irq 2<br>
369
# srctrl0: 32-bit PROM/SRAM controller rev 0<br>
370
# ahbuart7: AHB Debug UART rev 0<br>
371
# dsu3_2: LEON3 Debug support unit<br>
372
# leon3_0: LEON3 SPARC V8 processor rev 0<br>
373
# leon3_0: icache 1*4 kbyte, dcache 1*4 kbyte</tt></big><br style="font-family: courier new,courier,monospace;">
374
<span style="font-family: courier new,courier,monospace;"></span><span style="font-family: courier new,courier,monospace;"></span><br style="font-family: courier new,courier,monospace;">
375
<span style="font-family: courier new,courier,monospace;">VSIM 2&gt;
376
run -all<br># **** GRLIB system test starting ****<br>
377
# Leon3 SPARC V8 Processor<br>
378
#&nbsp;&nbsp; register file<br>
379
#&nbsp;&nbsp; multiplier<br>
380
#&nbsp;&nbsp; radix-2 divider<br>
381
#&nbsp;&nbsp; cache system<br>
382
# Multi-processor Interrupt Ctrl.<br>
383
# Generic UART<br>
384
# Modular Timer Unit<br>
385
# Test passed, halting with IU error mode<br>
386
#<br>
387
# ** Failure: *** IU in error mode, simulation halted ***<br>
388
#&nbsp;&nbsp;&nbsp; Time: 669213500 ps&nbsp; Iteration: 1&nbsp; Process: /testbench/iuerr File: testbench.vhd<br>
389
# Break at testbench.vhd line 263<br>
390
# Stopped at testbench.vhd line 263<br>
391
      <br>
392
</span></small><h4><small><span style="font-family: helvetica,arial,sans-serif;">Synthesis<br>
393
</span></small></h4>
394
 
395
      <h4><small><span style="font-family: helvetica,arial,sans-serif;"></span></small></h4>
396
 
397
      <small><span style="font-family: helvetica,arial,sans-serif;">To
398
synthesize and place&amp;route, use the make utility and issue either 'make ise' or 'make ise-synp' to<br>
399
use the XST or Synplify tools respectively.<br>
400
<br>
401
</span></small><small><span style="font-family: helvetica,arial,sans-serif;">Alternatively, the design can be implemented using
402
the graphical XGrlib tool, which is started with 'make xgrlib'.<br>
403
<br>
404
<br>
405
<img alt="" src="../../doc/grlib/xgrlib.gif" height="537" width="619"></span></small><small><span style="font-family: helvetica,arial,sans-serif;">&nbsp;</span></small><br>
406
 
407
      <div style="text-align: justify;"><small><span style="font-family: helvetica,arial,sans-serif;"></span></small></div>
408
 
409
      <small><span style="font-family: helvetica,arial,sans-serif;">
410
<br>
411
</span></small><small><span style="font-family: helvetica,arial,sans-serif;"><i>Figure 2. XGrlib
412
implementation tool</i></span></small><br>
413
 
414
      <small><span style="font-family: helvetica,arial,sans-serif;"><br>
415
To program the fpga, issue 'make ise-prog-fpga'. To re-program the configuration proms, do 'make ise-prog-prom'.<br>
416
After programming the proms, power-cycle the board to re-load the fpga.<br>
417
<br>
418
</span></small><small><span style="font-family: helvetica,arial,sans-serif;">To get
419
started quicker, suitable leon3mp.bit and leon3mp.msk files are provided in the <i>bitfiles</i>
420
directory. The fpga or
421
configuration proms can be programmed directly with this configuration,
422
using the following commands: 'make ise-prog-fpga-ref' or 'make
423
ise-prog-prom-ref '.</span></small><br>
424
 
425
      <small><span style="font-family: helvetica,arial,sans-serif;">
426
</span></small>
427
      <h4><small><span style="font-family: helvetica,arial,sans-serif;">Software
428
development</span></small></h4>
429
 
430
      <h4><small><span style="font-family: helvetica,arial,sans-serif;"></span></small></h4>
431
 
432
      <small><span style="font-family: helvetica,arial,sans-serif;">To
433
develop RTEMS applications, download and install the <a href="http://www.gaisler.se/bin/linux/rcc-1.0.0.pdf">LEON3 RTEMS
434
Cross-compiler</a> from gaisler.com. The LEON3 bsp automatically
435
detects
436
the location of UARTs, timers, interrupt controller and ethernet core
437
using the plug&amp;play information. </span></small><small><span style="font-family: helvetica,arial,sans-serif;">
438
A <a href="http://www.gaisler.com/doc/bcc.html">LEON3 bare-C compiler</a>
439
is also available for download from gaisler.com. Both the RTEMS
440
and the bare-C compilers now come with full source code for both the
441
low-level I/O routines as well as the mkprom prom builder. This should
442
allow users to adapt the run-time to their own needs. All sources are
443
provided under GNU GPL, contact <a href="mailto:sales@gaisler.com">Gaisler
444
Research</a> for commercial licenses of this software.<br>
445
<br>
446
A Leon3 port of uClinux and linux-2.6.11 is available in the <a href="http://www.gaisler.com/products/linux.html">snapgear
447
linux distribution</a>.<br>
448
</span></small>
449
      <h4><small><span style="font-family: helvetica,arial,sans-serif;">Debugging<br>
450
</span></small></h4>
451
 
452
      <small><span style="font-family: helvetica,arial,sans-serif;">The
453
on-chip debug support unit (DSU) makes debugging of target hardware
454
relatively easy. </span></small><small><span style="font-family: helvetica,arial,sans-serif;">The
455
design support both serial, ethernet and JTAG debug interface, and the </span></small><small><span style="font-family: helvetica,arial,sans-serif;"> <a href="http://www.gaisler.com/products/grmon/grmon.html">GRMON debug
456
monitor</a></span></small><small><span style="font-family: helvetica,arial,sans-serif;"> can be attached with a serial cable, over a LAN, or using the Xilinx JTAG programming cable. </span></small><small><span style="font-family: helvetica,arial,sans-serif;"> Note that when you use the ethernet or the JTAG
457
interface, you need specify the frequency of the AHB clock since it is
458
not auto-detected. </span></small><small><span style="font-family: helvetica,arial,sans-serif;">Below
459
is a log from a debug session.<br>
460
<br>
461
</span></small><small><span style="font-family: helvetica,arial,sans-serif;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;">
462
<br style="font-family: courier new,courier,monospace;">
463
<span style="font-family: courier new,courier,monospace;">$jiri@home:~$&nbsp; grmon -u -grlib -jtag -freq 40<br>
464
<br>
465
&nbsp;GRMON - The LEON multi purpose monitor v1.0.9<br>
466
<br>
467
&nbsp;Copyright (C) 2004, Gaisler Research - all rights reserved.<br>
468
&nbsp;For latest updates, go to http://www.gaisler.com/<br>
469
&nbsp;Comments or bug-reports to grmon@gaisler.com<br>
470
<br>
471
<br>
472
&nbsp;GRLIB DSU Monitor backend 1.0.2&nbsp; (professional version)<br>
473
<br>
474
using JTAG cable on parallel port<br>
475
<br>
476
&nbsp;initialising .............<br>
477
<br>&nbsp;Component&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
478
Vendor<br>
479
&nbsp;Leon3 SPARC V8 Processor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gaisler Research<br>
480
&nbsp;AHB Debug
481
UART&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
482
Gaisler Research<br>
483
&nbsp;AHB Debug JTAG
484
TAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
485
Gaisler Research<br>
486
&nbsp;AHB interface for 10/100 Mbit MA&nbsp;&nbsp;&nbsp;&nbsp; Gaisler Research<br>
487
&nbsp;Nuhorizons Spartan3 I/O interfac&nbsp;&nbsp;&nbsp;&nbsp; Gaisler Research<br>
488
&nbsp;AHB/APB
489
Bridge&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
490
Gaisler Research<br>
491
&nbsp;Leon3 Debug Support Unit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gaisler Research<br>
492
&nbsp;32-bit PC133 SDRAM Controller&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gaisler Research<br>
493
&nbsp;AHB interface for 10/100 Mbit MA&nbsp;&nbsp;&nbsp;&nbsp; Gaisler Research<br>
494
&nbsp;CAN
495
controller&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
496
Gaisler Research<br>
497
&nbsp;Generic APB
498
UART&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
499
Gaisler Research<br>
500
&nbsp;Multi-processor Interrupt Ctrl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gaisler Research<br>
501
&nbsp;Modular Timer
502
Unit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
503
Gaisler Research<br>
504
<br>
505
&nbsp;Use command 'info sys' to print a detailed report of attached cores<br>
506
<br>
507
grmon[grlib]&gt; inf sys<br>
508
00.01:003&nbsp;&nbsp; Gaisler Research&nbsp; Leon3 SPARC V8 Processor (ver 0)<br>
509
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb master 0<br>
510
01.01:007&nbsp;&nbsp; Gaisler Research&nbsp; AHB Debug UART (ver 0)<br>
511
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb master 1<br>
512
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apb: 80000700 - 80000800<br>
513
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baud rate 115200, ahb frequency 40.00<br>
514
02.01:01c&nbsp;&nbsp; Gaisler Research&nbsp; AHB Debug JTAG TAP (ver 0)<br>
515
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb master 2<br>
516
03.01:005&nbsp;&nbsp; Gaisler Research&nbsp; AHB interface for 10/100 Mbit MA (ver 0)<br>
517
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb master 3<br>
518
00.01:02b&nbsp;&nbsp; Gaisler Research&nbsp; Nuhorizons Spartan3 I/O interfac (ver 0)<br>
519
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb: 00000000 - 00400000<br>
520
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16-bit prom @ 0x00000000<br>
521
01.01:006&nbsp;&nbsp; Gaisler Research&nbsp; AHB/APB Bridge (ver 0)<br>
522
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb: 80000000 - 80100000<br>
523
02.01:004&nbsp;&nbsp; Gaisler Research&nbsp; Leon3 Debug Support Unit (ver 0)<br>
524
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb: 90000000 - a0000000<br>
525
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AHB trace 64 lines, stack pointer 0x00000000<br>
526
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPU#0 win 8, hwbp 4, itrace 64, V8 mul/div, lddel 1<br>
527
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
528
icache 2 * 4 kbyte, 32 byte/line lru<br>
529
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
530
dcache 2 * 4 kbyte, 32 byte/line lru<br>
531
03.01:009&nbsp;&nbsp; Gaisler Research&nbsp; 32-bit PC133 SDRAM Controller (ver 0)<br>
532
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb: 40000000 - 48000000<br>
533
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb: fff00100 - fff00200<br>
534
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
535
32-bit sdram: 1 * 16 Mbyte @ 0x40000000, col 8, cas 2, ref 15.6 us<br>
536
05.01:005&nbsp;&nbsp; Gaisler Research&nbsp; AHB interface for 10/100 Mbit MA (ver 0)<br>
537
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irq 12<br>
538
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb: fffb0000 - fffb1000<br>
539
06.01:019&nbsp;&nbsp; Gaisler Research&nbsp; CAN controller (ver 0)<br>
540
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irq 13<br>
541
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ahb: fffc0000 - fffc1000<br>
542
01.01:00c&nbsp;&nbsp; Gaisler Research&nbsp; Generic APB UART (ver 1)<br>
543
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irq 2<br>
544
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apb: 80000100 - 80000200<br>
545
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baud rate 38400, DSU mode<br>
546
02.01:00d&nbsp;&nbsp; Gaisler Research&nbsp; Multi-processor Interrupt Ctrl (ver 2)<br>
547
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apb: 80000200 - 80000300<br>
548
03.01:011&nbsp;&nbsp; Gaisler Research&nbsp; Modular Timer Unit (ver 0)<br>
549
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irq 8<br>
550
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apb: 80000300 - 80000400<br>
551
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8-bit scaler, 2 * 32-bit timers, divisor 40<br>
552
grmon[grlib]&gt; lo /opt/sparc-elf/src/examples/stanford<br>
553
section: .text at 0x40000000, size 61200 bytes<br>
554
section: .data at 0x4000ef10, size 2080 bytes<br>
555
total size: 63280 bytes (222.1 kbit/s)<br>
556
read 197 symbols<br>
557
entry point: 0x40000000<br>
558
grmon[grlib]&gt; run<br>
559
Starting<br>
560
&nbsp;&nbsp;&nbsp; Perm&nbsp; Towers&nbsp; Queens&nbsp;&nbsp;
561
Intmm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mm&nbsp; Puzzle&nbsp;&nbsp;
562
Quick&nbsp; Bubble&nbsp;&nbsp;&nbsp; Tree&nbsp;&nbsp;&nbsp;&nbsp; FFT<br>
563
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
564
50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
565
34&nbsp;&nbsp;&nbsp;&nbsp; 900&nbsp;&nbsp;&nbsp;&nbsp;
566
316&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
567
50&nbsp;&nbsp;&nbsp;&nbsp; 217&nbsp;&nbsp;&nbsp; 1083<br>
568
<br>
569
Nonfloating point composite is&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 114<br>
570
<br>
571
Floating point composite is&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 857<br>
572
<br>
573
Program exited normally.<br>
574
grmon[grlib]&gt;</span><span style="font-family: courier new,courier,monospace;"></span><br>
575
<br>
576
<br>
577
The LEON3MP test bench includes memory models of both boot-prom, sram
578
and sdram. To build memory images for these models, do 'make soft' .
579
Note: this will require that the bare-C compiler for LEON3 is
580
installed,
581
and /opt/sparc-elf/bin is added to the PATH.<br>
582
<br>
583
<br>
584
</span></small></td>
585
    </tr>
586
    <tr>
587
      <td valign="top"><br>
588
      </td>
589
    </tr>
590
  </tbody>
591
</table>
592
<h3><br>
593
<span style="font-family: helvetica,arial,sans-serif;"></span></h3>
594
<small><span style="font-family: helvetica,arial,sans-serif;">
595
</span></small>
596
</body></html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.