1 |
2 |
cvs |
|
2 |
|
|
What is this stuff?
|
3 |
|
|
===================
|
4 |
|
|
|
5 |
|
|
This is OpenRISC 1000 and DLX architectural simulator. It was written by
|
6 |
|
|
Damjan Lampret and it is free software. See the file COPYING for copying
|
7 |
|
|
permission. To contact the author, send mail to .
|
8 |
|
|
|
9 |
|
|
I use it to define OR1K system architecture. An implementation simulator
|
10 |
6 |
lampret |
for OR1K will be also available, probably in Mar/2000 or later.
|
11 |
2 |
cvs |
|
12 |
|
|
Initially this software was not meant to be released to public because it
|
13 |
|
|
was developed just to analyze program flow of GCC generated assembly code.
|
14 |
|
|
With the time it became bigger and was able to generate statistics about
|
15 |
|
|
superscalar issuing of multiple instructions. I've used it as a test simulator
|
16 |
|
|
to test OR1K GCC port. Perhaps some day I will (or perhaps someone else would
|
17 |
|
|
like to do that ??) clean-up the code and reorganize it.
|
18 |
|
|
|
19 |
|
|
This simulator loads an assembly file for one of the both architectures
|
20 |
|
|
and it simulates the operation of instructions. Because it was meant to be used
|
21 |
|
|
only to test characteristics of various RISC architectures and various GCC
|
22 |
|
|
optimization methods, it has a bit strange memory model. It is abstract and
|
23 |
|
|
physical at the same time. I can't really explain, just check the sources if
|
24 |
|
|
interested. Some other things are strange or incomplete too (like
|
25 |
6 |
lampret |
C library emulation, currently supports only printf via simprintf).
|
26 |
2 |
cvs |
|
27 |
18 |
lampret |
MMU directory is not functional. Someday it will be filled with code for
|
28 |
|
|
virtual memory simulation.
|
29 |
2 |
cvs |
|
30 |
|
|
|
31 |
|
|
Installation
|
32 |
|
|
============
|
33 |
|
|
|
34 |
12 |
jrydberg |
To compile, run the configure script and specify the target architecture.
|
35 |
|
|
Example:
|
36 |
|
|
|
37 |
18 |
lampret |
$ ./configure --target=or32
|
38 |
12 |
jrydberg |
|
39 |
|
|
After that, just issue "make all" command. By default there should be no
|
40 |
2 |
cvs |
warnings. There is no "make install". Just use it from default location
|
41 |
|
|
or copy it to your bin directory (usually something like /usr/local/bin
|
42 |
|
|
or ~/bin).
|
43 |
|
|
This program hasn't been written with security in mind. It has many static
|
44 |
|
|
buffers and it does not check the size of input strings (user commands
|
45 |
|
|
or whatever). So don't setuid it. If it kills your dog, don't blame it on me.
|
46 |
|
|
|
47 |
12 |
jrydberg |
To select DLX simulation, change the target to the configure script to 'dlx'
|
48 |
2 |
cvs |
and recompile everything (do 'make all' again).
|
49 |
|
|
|
50 |
72 |
lampret |
GNU Tools
|
51 |
|
|
=========
|
52 |
|
|
|
53 |
|
|
To build GNU tools:
|
54 |
|
|
|
55 |
|
|
cvs -d :pserver:cvs@cvs.opencores.org:/home/oc/cvs -z9 co -d work or1k
|
56 |
|
|
mkdir b-b
|
57 |
|
|
cd b-b
|
58 |
|
|
../binutils/configure --target=or32-rtems --prefix=/opt/or32-rtems &&
|
59 |
|
|
make all install
|
60 |
|
|
export PATH=/opt/or32-rtems/bin:$PATH
|
61 |
|
|
cd ../gcc
|
62 |
|
|
./contrib/egcs_update --touch
|
63 |
|
|
ln -s ../newlib/newlib .
|
64 |
|
|
cd ..
|
65 |
|
|
mkdir b-gcc
|
66 |
|
|
cd b-gcc
|
67 |
|
|
../gcc/configure --target=or32-rtems \
|
68 |
|
|
--with-gnu-as --with-gnu-ld --with-newlib --verbose \
|
69 |
|
|
--enable-threads --prefix=/opt/or32-rtems --enable-languages="c" &&
|
70 |
|
|
\
|
71 |
|
|
make all install
|
72 |
|
|
|
73 |
|
|
|
74 |
2 |
cvs |
Simulator test
|
75 |
|
|
==============
|
76 |
|
|
|
77 |
18 |
lampret |
Issue 'sim testbench/dhry.or32' or 'sim testbench/dhry.dlx' to
|
78 |
6 |
lampret |
test simulator. See testbench/README for details about Dhrystone 2.1
|
79 |
|
|
benchmark.
|
80 |
2 |
cvs |
|
81 |
54 |
lampret |
For microkernel test (exception test) undefine ONLY_VIRTUAL_MACHINE (you want
|
82 |
|
|
exceptions, right !) in cpu/or1k/except.h and recompile simulator. A compiled
|
83 |
|
|
and linked version should already exist in testbench/uos. Just issue
|
84 |
|
|
'sim testbench/uos/uos.or32' from the top level sim directory. Currently only
|
85 |
|
|
OR32 is supported by UOS.
|
86 |
|
|
|
87 |
2 |
cvs |
OpenRISC and open cores
|
88 |
|
|
=======================
|
89 |
|
|
|
90 |
6 |
lampret |
About the same idea as with GNU project except we want free and open source
|
91 |
|
|
IP (intellectual property) cores. We design open source, synthesizable
|
92 |
2 |
cvs |
cores. OpenRISC is one such core. It is a 32-bit RISC microprocessor that
|
93 |
|
|
will run GNU/Linux.
|
94 |
|
|
For more information visit us at http://www.opencores.org.
|
95 |
|
|
|
96 |
|
|
--
|
97 |
|
|
|
98 |
6 |
lampret |
29/Feb/2000, Damjan Lampret email:lampret@opencores.org
|
99 |
12 |
jrydberg |
03/Mar/2000, Johan Rydberg email:johan.rydberg@netinsight.net
|
100 |
21 |
cmchen |
04/May/2000, Jimmy Chen-Min Chen email:jimmy@ee.nctu.edu.tw
|