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

powered by: WebSVN 2.1.0

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