index.html
653 lines
| 42.0 KiB
| text/html
|
HtmlLexer
|
r81 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | |
<html><head> | |||
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1"><title>LEON3MP Reference Design</title> | |||
<meta name="GENERATOR" content="OpenOffice.org 1.1.0 (Linux)"> | |||
<meta name="CREATED" content="20040423;18351200"> | |||
<meta name="CHANGED" content="20040426;16351800"></head> | |||
<body dir="ltr" lang="en-US"> | |||
<h3><span style="font-family: helvetica,arial,sans-serif;">LEON3MP - a | |||
reference LEON3 design with MP support<br> | |||
</span></h3> | |||
<h4 style="font-family: helvetica,arial,sans-serif;">Introduction</h4> | |||
<small><span style="font-family: helvetica,arial,sans-serif;">The | |||
LEON3MP provides a reference | |||
design for LEON3-based systems. LEON3MP is highly configurable, and | |||
consists of the following IP cores:<br> | |||
</span></small> | |||
<ul> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">1 - | |||
4 LEON3 processor | |||
cores with MP support</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">Multi-processor | |||
debug support unit (DSU) for LEON3<br> | |||
</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">32-bit PROM/SRAM | |||
controller</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">8-/16-/32-/64-bit | |||
PROM/SRAM/SDRAM controller</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">32-bit | |||
PCI interface, target-only | |||
or initiator/target with | |||
FIFO and DMA</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">Round-robin | |||
AHB arbiter and controller with plug&play support</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">AHB/APB bridge with | |||
plug&play support<br> | |||
</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">Multi-processor | |||
interrupt controller</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">32-bit modular timer | |||
unit</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">1 - | |||
2 UARTs with FIFO<br> | |||
</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> | |||
</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">Serial debug | |||
communication link</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;">Etherner debug | |||
communication link</span></small></li><li><small><span style="font-family: helvetica,arial,sans-serif;">JTAG debug link<br> | |||
</span></small></li> | |||
</ul> | |||
<small><span style="font-family: helvetica,arial,sans-serif;"> | |||
<br> | |||
The LEON3 MP design is provided together with GRLIB, and is | |||
located in grlib/designs/leon3mp.<br> | |||
<br> | |||
</span></small> | |||
<h4><small><span style="font-family: helvetica,arial,sans-serif;">LEON3MP | |||
Block diagram</span></small></h4> | |||
<h4><small><span style="font-family: helvetica,arial,sans-serif;"></span></small></h4> | |||
<small><span style="font-family: helvetica,arial,sans-serif;"><img alt="" src="../../doc/grip/leon3mp.gif" height="393" width="615"><br> | |||
</span></small> | |||
<h4><span style="font-family: helvetica,arial,sans-serif;">Reference | |||
architecture</span></h4> | |||
<small><span style="font-family: helvetica,arial,sans-serif;">The | |||
LEON3MP is made up by cores from the GRLIB IP library, which are | |||
connected together via the AMBA AHB and APB buses. The plug&play | |||
configuration method of GRLIB makes it possible to assign any | |||
combination of addresses and interrupts to the cores. However, to be | |||
software compatible with simple operating systems such as the LEON | |||
Bare-C cross-compiler, some of the vital cores must be assigned to | |||
predefined addresses and interrupts. The table below shows the | |||
reference assigment in the LEON3MP design:<br> | |||
<br> | |||
</span></small> | |||
<table style="width: 100%; text-align: left;" border="1" cellpadding="2" cellspacing="2"> | |||
<tbody> | |||
<tr> | |||
<th style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Core</span></small></th> | |||
<th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Memory area<br> | |||
</span></small></th> | |||
<th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Interrupt</span></small></th> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Memory controller<br> | |||
(separate SRAM and SDRAM controllers, or | |||
combined LEON2 controller)<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x00000000 - | |||
0x20000000 : PROM<br> | |||
0x20000000 - 0x40000000 : external I/O bus<br> | |||
0x40000000 - 0x80000000 : SRAM/SDRAM<br> | |||
0x80000000 - 0x80000100 : Memory controller registers (APB)<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">APB bridge<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000000 - | |||
0x80100000 : APB bus<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">UART</span></small></td> | |||
<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 : UART | |||
registers</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">2</span></small><br> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Interrupt controller</span></small><br> | |||
</td> | |||
<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 | |||
registers<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Timer unit<br> | |||
</span></small></td> | |||
<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 | |||
registers<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">8, 9<br> | |||
</span></small></td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">LEON3 debug support | |||
unit (DSU)<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x90000000 - | |||
0xA0000000 : DSU registers<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
<small><span style="font-family: helvetica,arial,sans-serif;"><br> | |||
Additional (optional) IP cores are assigned addresses and interrupts as | |||
desribed in the table below. These assignments are LEON3MP specific and | |||
can be changed without impact on software compatibility.<br> | |||
<br> | |||
</span></small> | |||
<table style="width: 100%; text-align: left;" border="1" cellpadding="2" cellspacing="2"> | |||
<tbody> | |||
<tr> | |||
<th style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Core</span></small></th> | |||
<th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Memory area<br> | |||
</span></small></th> | |||
<th style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">Interrupt</span></small></th> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">PCI initiator/target interface<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: courier new,courier,monospace;"></span></small><small><span style="font-family: helvetica,arial,sans-serif;">0xE0000000 - | |||
0xF0000000 : PCI initiator access <br> | |||
0xFFF80000 - 0xFFFA0000 : PCI special cycles<br> | |||
0x80000400 - 0x80000500 : PCI registers<br> | |||
0x80000600 - 0x80000700 : PCI DMA registers<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
</tr> | |||
<tr> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">PCI arbiter</span></small></td> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000A00 - | |||
0x80000B00 : PCI arbiter registers</span></small></td> | |||
<td valign="top"><br> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">PCI trace buffer<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">0x80010000 - | |||
0x80020000 : PCI trace buffer registers<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Serial debug | |||
communication link<br> | |||
</span></small></td> | |||
<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 | |||
registers</span></small></td> | |||
<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> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">Ethernet debug | |||
communication link</span></small><br> | |||
</td> | |||
<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> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small> </td> | |||
</tr> | |||
<tr> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">JTAG debug | |||
communication link</span></small></td> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">-</span></small></td> | |||
</tr> | |||
<tr> | |||
<td style="vertical-align: top; width: 250px;"><small><span style="font-family: helvetica,arial,sans-serif;">10/100 Mbit ethernet MAC<br> | |||
</span></small></td> | |||
<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 : | |||
ethernet | |||
control registers<br> | |||
</span></small></td> | |||
<td style="vertical-align: top;"><small><span style="font-family: helvetica,arial,sans-serif;">12</span></small></td> | |||
</tr> | |||
<tr> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">CAN interface</span></small></td> | |||
<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 | |||
control registers</span></small></td> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">13</span></small></td> | |||
</tr> | |||
<tr> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">On-chip RAM<br> | |||
</span></small></td> | |||
<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 | |||
RAM<br> | |||
</span></small></td> | |||
<td valign="top"><br> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">UART</span></small></td> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">0x80000900 - | |||
0x80000A00 : Secondary UART<br> | |||
</span></small></td> | |||
<td valign="top"><small><span style="font-family: helvetica,arial,sans-serif;">3</span></small></td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
<br> | |||
<h4><small><span style="font-family: helvetica,arial,sans-serif;"> | |||
</span></small></h4> | |||
<h4><span style="font-family: helvetica,arial,sans-serif;">Configuration</span></h4> | |||
<div style="text-align: left;"><small><span style="font-family: helvetica,arial,sans-serif;">The configuartion of | |||
the LEON3MP design is defined through the config package located <a href="config.vhd">config.vhd</a>. | |||
This file can be automatically generated using a GUI based on tkconfig. | |||
To launch the GUI, do 'make xconfig'. After the configuration is | |||
completed, save and | |||
exit the tool and config.vhd will be created automatically. | |||
<br> | |||
<br> | |||
Alternatively, a pre-defined configuration can be installed for two | |||
specific FPGA boards: gr-pci-xc2v and gr-cpci-xc2v. In | |||
this case, set | |||
the BOARD variable in the local <a href="Makefile">Makefile</a> to the | |||
desired board type, and issue the command | |||
'make config' to generate the configuration file.<br> | |||
<br> | |||
<img alt="" src="../share/gui.gif" height="148" width="561"><br> | |||
<br> | |||
<i>Figure 1. LEON3MP configuration GUI</i><br style="font-family: helvetica,arial,sans-serif;"> | |||
</span></small><small> | |||
</small></div> | |||
<h4><span style="font-family: helvetica,arial,sans-serif;">Simulation</span></h4> | |||
<small><span style="font-family: helvetica,arial,sans-serif;">To | |||
simulate the testbench, first compile the model for simulation. This | |||
can be done automatically for three different simulators. Execute one | |||
of the following commands:</span><br style="font-family: helvetica,arial,sans-serif;"> | |||
</small> | |||
<ul style="font-family: helvetica,arial,sans-serif;"> | |||
<li><small>make vsim</small></li> | |||
<li><small>make ncsim</small></li> | |||
<li><small>make ghdl</small></li> | |||
</ul> | |||
<small><span style="font-family: helvetica,arial,sans-serif;">For vsim, | |||
start the simulation with 'vsim testbench' and do 'run 100'. This | |||
should print the current LEON3MP configuration:</span><br style="font-family: helvetica,arial,sans-serif;"> | |||
</small><br> | |||
<small><span style="font-family: courier new,courier,monospace;">$ vsim | |||
-c -quiet testbench</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">Reading | |||
/usr/local/model58/tcl/vsim/pref.tcl</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">Reading | |||
/home/jiri/modelsim.tcl</span><br style="font-family: courier new,courier,monospace;"> | |||
</small><small><span style="font-family: courier new,courier,monospace;"></span></small><br style="font-family: courier new,courier,monospace;"> | |||
<small><span style="font-family: courier new,courier,monospace;"># 5.8</span><br style="font-family: courier new,courier,monospace;"> | |||
</small><small><span style="font-family: courier new,courier,monospace;"></span><big><tt># | |||
VSIM 1> run<br> | |||
# LEON3 Demonstration design<br> | |||
# GRLIB Version 0.13<br> | |||
# Target technology: virtex2 , memory library: virtex2<br> | |||
# ahbctrl: mst0: Gaisler | |||
Research Leon3 SPARC V8 | |||
Processor<br> | |||
# ahbctrl: mst1: Gaisler | |||
Research AHB Debug UART<br> | |||
# ahbctrl: mst2: Gaisler | |||
Research Fast 32-bit PCI | |||
Bridge<br> | |||
# ahbctrl: mst3: Gaisler | |||
Research AMBA DMA controller<br> | |||
# ahbctrl: mst5: Gaisler | |||
Research OC ethernet AHB | |||
interface<br> | |||
# ahbctrl: slv0: Gaisler | |||
Research Simple SRAM | |||
Controller<br> | |||
# ahbctrl: memory at 0x00000000, | |||
size 16 Mbyte, cacheable, prefetch<br> | |||
# ahbctrl: memory at 0x40000000, | |||
size 16 Mbyte, cacheable, prefetch<br> | |||
# ahbctrl: slv1: Gaisler | |||
Research AHB/APB Bridge<br> | |||
# ahbctrl: memory at 0x80000000, | |||
size 1 Mbyte<br> | |||
# ahbctrl: slv2: Gaisler | |||
Research Leon3 Debug Support | |||
Unit<br> | |||
# ahbctrl: memory at 0x90000000, | |||
size 256 Mbyte<br> | |||
# ahbctrl: slv4: Gaisler | |||
Research Fast 32-bit PCI | |||
Bridge<br> | |||
# ahbctrl: memory at 0xe0000000, | |||
size 256 Mbyte<br> | |||
# ahbctrl: I/O port at 0xfff80000, | |||
size 128kbyte<br> | |||
# ahbctrl: slv5: Gaisler | |||
Research OC ethernet AHB | |||
interface<br> | |||
# ahbctrl: I/O port at 0xfffb0000, | |||
size 4kbyte<br> | |||
# ahbctrl: slv6: Gaisler | |||
Research OC CAN AHB interface<br> | |||
# ahbctrl: I/O port at 0xfffc0000, | |||
size 4kbyte<br> | |||
# ahbctrl: slv7: Gaisler | |||
Research Generic AHB SRAM | |||
module<br> | |||
# ahbctrl: memory at 0xa0000000, | |||
size 1 Mbyte, cacheable, prefetch<br> | |||
# ahbctrl: AHB arbiter/multiplexer rev 1<br> | |||
# ahbctrl: Common I/O area at 0xfff00000, 1 Mbyte<br> | |||
# ahbctrl: Configuration area at 0xfffff000, 4 kbyte<br> | |||
# apbctrl: APB Bridge at 0x80000000 rev 1<br> | |||
# apbctrl: slv1: Gaisler | |||
Research Generic UART<br> | |||
# apbctrl: I/O ports at 0x80000100, | |||
size 256 byte<br> | |||
# apbctrl: slv2: Gaisler | |||
Research Multi-processor | |||
Interrupt Ctrl.<br> | |||
# apbctrl: I/O ports at 0x80000200, | |||
size 256 byte<br> | |||
# apbctrl: slv3: Gaisler | |||
Research Modular Timer Unit<br> | |||
# apbctrl: I/O ports at 0x80000300, | |||
size 256 byte<br> | |||
# apbctrl: slv4: Gaisler | |||
Research Fast 32-bit PCI | |||
Bridge<br> | |||
# apbctrl: I/O ports at 0x80000400, | |||
size 256 byte<br> | |||
# apbctrl: slv5: Gaisler | |||
Research AMBA DMA controller<br> | |||
# apbctrl: I/O ports at 0x80000500, | |||
size 256 byte<br> | |||
# apbctrl: slv7: Gaisler | |||
Research AHB Debug UART<br> | |||
# apbctrl: I/O ports at 0x80000700, | |||
size 256 byte<br> | |||
# ahbram7: AHB SRAM Module rev 1, 2 kbytes<br> | |||
# can_oc6: Opencores CAN MAC, rev 0, irq 13<br> | |||
# eth_oc5: Wishbone/AHB interface for OC ethernet MAC, irq 12<br> | |||
# eth_oc5: Opencores 10/100 Mbit ethernet MAC, rev 0<br> | |||
# pci_mtf4: 32-bit PCI/AHB bridge rev 0, 2 Mbyte PCI memory BAR, | |||
8-word FIFOs<br> | |||
# dmactrl5: 32-bit DMA controller & AHB/AHB bridge rev 0<br> | |||
# gptimer3: GR Timer Unit rev 0, 16-bit scaler, 1 32-bit timers, irq 8<br> | |||
# irqmp: Multi-processor Interrupt Controller rev 1, #cpu 1<br> | |||
# apbuart1: Generic UART rev 1, irq 2<br> | |||
# srctrl0: 32-bit PROM/SRAM controller rev 0<br> | |||
# ahbuart7: AHB Debug UART rev 0<br> | |||
# dsu3_2: LEON3 Debug support unit<br> | |||
# leon3_0: LEON3 SPARC V8 processor rev 0<br> | |||
# leon3_0: icache 1*4 kbyte, dcache 1*4 kbyte</tt></big><br style="font-family: courier new,courier,monospace;"> | |||
<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;"> | |||
<span style="font-family: courier new,courier,monospace;">VSIM 2> | |||
run -all<br> | |||
#<br># **** GRLIB system test starting ****<br> | |||
# Leon3 SPARC V8 Processor<br> | |||
# register file<br> | |||
# multiplier<br> | |||
# radix-2 divider<br> | |||
# cache system<br> | |||
# Multi-processor Interrupt Ctrl.<br> | |||
# Generic UART<br> | |||
# Modular Timer Unit<br> | |||
# Test passed, halting with IU error mode<br> | |||
#<br> | |||
# ** Failure: *** IU in error mode, simulation halted ***<br> | |||
# Time: 669213500 ps Iteration: 1 Process: /testbench/iuerr File: testbench.vhd<br> | |||
# Break at testbench.vhd line 263<br> | |||
# Stopped at testbench.vhd line 263<br> | |||
<br> | |||
</span></small><h4><small><span style="font-family: helvetica,arial,sans-serif;">Synthesis<br> | |||
</span></small></h4> | |||
<h4><small><span style="font-family: helvetica,arial,sans-serif;"></span></small></h4> | |||
<small><span style="font-family: helvetica,arial,sans-serif;">To | |||
synthesize and perform place&route for any of the supported | |||
FPGA boards, set the BOARD variable in the Makefile and issue the | |||
appropriate make commands for your tool chain (see GRLIB User's Manual | |||
for details). Alternatively, the design can be implemented using | |||
the graphical XGrlib tool, which is started with 'make xgrlib'.<br> | |||
<br> | |||
<br> | |||
<img alt="" src="../../doc/grlib/xgrlib.gif" height="537" width="619"></span></small><small><span style="font-family: helvetica,arial,sans-serif;"> </span></small><br> | |||
<div style="text-align: justify;"><small><span style="font-family: helvetica,arial,sans-serif;"></span></small></div> | |||
<small><span style="font-family: helvetica,arial,sans-serif;"> | |||
<br> | |||
</span></small><small><span style="font-family: helvetica,arial,sans-serif;"><i>Figure 2. XGrlib | |||
implementation tool</i></span></small><br> | |||
<small><span style="font-family: helvetica,arial,sans-serif;"><br> | |||
<br> | |||
For ASIC synthesis, scripts to synthesise LEON3MP towards the Atmel | |||
ATC18 technology are provided. Run either atc18.dc or atc18.rc to | |||
synthesise with Synopsys DC, or Cadence RC.<br> | |||
<br> | |||
</span></small> | |||
<h4><small><span style="font-family: helvetica,arial,sans-serif;">Software | |||
development</span></small></h4> | |||
<h4><small><span style="font-family: helvetica,arial,sans-serif;"></span></small></h4> | |||
<ul> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;"><b><a href="http://www.rtems.org/">RTEMS</a>:</b> to | |||
develop RTEMS applications, download and install the <a href="http://www.gaisler.com/products/rcc.html">LEON3 RTEMS | |||
Cross-compiler</a> from gaisler.com. The LEON3 bsp automatically | |||
detects | |||
the location of UARTs, timers, interrupt controller and ethernet core | |||
using the plug&play information. Full sources of kernel, libraries and tools available.</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;"><b>Bare-C</b>: a <a href="http://www.gaisler.com/doc/bcc.html">LEON3 bare-C compiler</a> | |||
is available for download from gaisler.com. Come with full source code for both the | |||
low-level I/O routines as well as the mkprom prom builder.</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;"><a href="http://sourceware.org/ecos/"><b>eCos</b></a>: a Leon3 port supporting FPU, SMP and single-vector trapping is available for ecos-current. Use Bare-C compiler to build.<br> | |||
</span></small></li> | |||
<li><small><span style="font-family: helvetica,arial,sans-serif;"><b>Linux</b>: a Leon3 port of uClinux and linux-2.6.11 is available in the <a href="http://www.gaisler.com/products/linux.html">snapgear | |||
linux distribution</a>.</span></small></li> | |||
</ul> | |||
<small><span style="font-family: helvetica,arial,sans-serif;"></span></small> | |||
<h4><small><span style="font-family: helvetica,arial,sans-serif;">Debugging<br> | |||
</span></small></h4> | |||
<small><span style="font-family: helvetica,arial,sans-serif;">The | |||
on-chip debug support unit (DSU) makes debugging of target hardware | |||
relatively easy. Both JTAG, serial (RS232) and ethernet-based debug links are | |||
available, and can be used </span></small><small><span style="font-family: helvetica,arial,sans-serif;">download and debug | |||
code. Debugging is controlled through the <a href="http://www.gaisler.com/products/grmon/grmon.html">GRMON debug | |||
monitor</a>.</span></small><small><span style="font-family: helvetica,arial,sans-serif;"> A sample GRMON | |||
session looks like this:<br> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">$ grmon | |||
-grlib -i -u</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> GRMON - | |||
The LEON multi purpose monitor v1.0.6</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Copyright | |||
(C) 2004, Gaisler Research - all rights reserved.</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> For | |||
latest updates, go to http://www.gaisler.com/</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Comments | |||
or bug-reports to grmon@gaisler.com</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> GRLIB | |||
DSU Monitor backend 1.0.1 (professional version)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> using | |||
port /dev/ttyS0 @ 115200 baud</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> initialising | |||
...........</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Component | |||
Vendor</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Leon3 | |||
SPARC V8 | |||
Processor | |||
Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> AHB | |||
Debug | |||
UART | |||
Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Simple | |||
32-bit PCI | |||
Target | |||
Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> 10/100 | |||
Mbit Ethernet | |||
MAC | |||
Opencores</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> LEON2 | |||
Memory | |||
Controller | |||
European Space Agency</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> AHB/APB | |||
Bridge | |||
Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Leon3 | |||
Debug Support | |||
Unit | |||
Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> 10/100 | |||
Mbit Ethernet | |||
MAC | |||
Opencores</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Generic | |||
APB | |||
UART | |||
Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Multi-processor | |||
Interrupt Ctrl Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Modular | |||
Timer | |||
Unit | |||
Gaisler Research</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> Use | |||
command 'info sys' to print a detailed report of attached cores</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">grmon[grlib]> | |||
info sys</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">00.01:003 | |||
Gaisler Research Leon3 SPARC V8 Processor (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb master 0</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">01.01:007 | |||
Gaisler Research AHB Debug UART (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb master 1</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
apb: 80000700 - 80000800</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
baud rate 115200, ahb frequency 25.00</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">02.01:012 | |||
Gaisler Research Simple 32-bit PCI Target (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb master 2</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">03.08:005 | |||
Opencores 10/100 Mbit Ethernet MAC (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb master 3</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">00.04:00f | |||
European Space Agency LEON2 Memory Controller (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb: 00000000 - 20000000</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb: 20000000 - 40000000</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb: 40000000 - 80000000</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
apb: 80000000 - 80000100</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
32-bit sdram: 1 * 32 Mbyte @ 0x40000000, col 9, cas 2, ref 15.5 us</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">01.01:006 | |||
Gaisler Research AHB/APB Bridge (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb: 80000000 - 80100000</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">02.01:004 | |||
Gaisler Research Leon3 Debug Support Unit (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb: 90000000 - a0000000</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
AHB trace 64 lines</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
CPU#0 win 8, hw breakpoints 2, itrace 64 lines</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
icache 1 * 4 kbyte, 32 byte/line</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
dcache 1 * 4 kbyte, 32 byte/line</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
stack pointer 0x41fffff0</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">05.08:005 | |||
Opencores 10/100 Mbit Ethernet MAC (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
irq 12</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
ahb: fffb0000 - fffb1000</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">01.01:00c | |||
Gaisler Research Generic APB UART (ver 1)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
irq 2</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
apb: 80000100 - 80000200</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
baud rate 38400, DSU mode</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">02.01:00d | |||
Gaisler Research Multi-processor Interrupt Ctrl (ver 1)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
apb: 80000200 - 80000300</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">03.01:011 | |||
Gaisler Research Modular Timer Unit (ver 0)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
irq 8</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
apb: 80000300 - 80000400</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
16-bit scaler, 2 * 32-bit timers, divisor 25</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">grmon[grlib]> | |||
lo /home/jiri/samples/stanford</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">section: | |||
.text at 0x40000000, size 60688 bytes</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">section: | |||
.data at 0x4000ed10, size 2080 bytes</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">section: .jcr | |||
at 0x40026728, size 4 bytes</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">total size: | |||
62772 bytes (94.3 kbit/s)</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">read 192 | |||
symbols</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">entry point: | |||
0x40000000</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">grmon[grlib]> | |||
run</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">Starting</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
Perm Towers Queens | |||
Intmm Mm Puzzle | |||
Quick Bubble Tree FFT</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;"> | |||
67 100 | |||
67 67 | |||
2233 550 | |||
67 83 | |||
417 2650</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">Nonfloating | |||
point composite is 216</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">Floating | |||
point composite is 2044</span><br style="font-family: courier new,courier,monospace;"> | |||
<br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">Program | |||
exited normally.</span><br style="font-family: courier new,courier,monospace;"> | |||
<span style="font-family: courier new,courier,monospace;">grmon[grlib]></span><br> | |||
<br> | |||
<br> | |||
The LEON3MP test bench includes memory models of both boot-prom, sram | |||
and sdram. To build memory images for these models, do 'make soft' . | |||
Note: this will require that the bare-C compiler for LEON3 is | |||
installed, | |||
and /opt/sparc-elf/bin is added to the PATH.<br> | |||
<br> | |||
<br> | |||
<br> | |||
</span></small> | |||
</body></html> |