| 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
|