ORPSoC - OpenRISC Reference Platform SoC
Introduction
ORPSoC is the OpenRISC Reference Platform System-on-Chip. This project implements a platform for OpenRISC development. It provides a reference SoC, primarily for the testing and development of OpenRISC processors, and a set of pre-built SoCs for various FPGA boards.
The project's structure makes it simple to develop (and contribute) an OpenRISC-based design for implementation on hardware.
This second version of ORPSoC was initially known as ORPSoCv2, however we intend on changing it back to be known simply as ORPSoC again.
Contents
- Download ORPSoC
- Documentation
- Supported Boards
- Installing Required Tools
- Documentation
Download ORPSoC
The RTL source, test software and scripts can be downloaded from the OpenRISC project subversion (svn) repository. The sources can be checked out with the following command:
svn co http://opencores.org/ocsvn/openrisc/openrisc/trunk/orpsocv2
Documentation
The main set of documentation is now in texinfo format and included with the project source.
To generate a PDF of the documentation, change into the doc/ path of the project and run the following:
./configure
make pdf
The resulting file orpsoc.pdf contains the project user guide.
The texinfo and TeX processing tools are required to generate the
documentation in PDF.
See the texinfo and TeX install
sections below.
Supported Boards
The following is a list of supported boards. See the documentation included with the project for further information on the features and usage of each.
- ORSoC Actel FPGA development board (ordb1a3pe1500)
- Xilinx ML501 (ml501)
Installing required tools
Getting going
There is a choice of three models to run the test software on. These are the architectural simulator, cycle-accurate and event-driven simulation models. Below are the instructions to install each of them. You need only install the tools for the model you wish to run. The GNU toolchain port is mandatory.
OpenRISC GNU toolchain port installation
Ensure the OpenRISC GNU toolchain port is installed on your system.
Please install the latest release candidate of the version 1.0 toolchain. Follow the guide on the GNU toolchain page.
Architectural Simulator (or1ksim)
The tests included with ORPSoC's reference design can be run on the OpenRISC architectural simulator, or1ksim. See the or1ksim page for details on installation.
Event-driven simulators
For the reference build of ORPSoC that is non-board targeted, Icarus Verilog is required. Board targets require Modelsim.
Icarus Verilog
Icarus Verilog is an open-source Verilog simulation tool. Their wiki has an extensive installation guide, but on most modern *nix distributions, such as Ubuntu or Debian, it can be easily installed by the system's package manager (apt, yum, emerge, etc.). The package is typically just called verilog. For instance, with apt under Ubuntu the installation command is:
sudo apt-get install verilog
However, if it is not available via the package manager on on your platform please see the Icarus Verilog project's installation guide.
Cycle-accurate simulator
This simulator is a cycle accurate C++ model generated from the Verilog HDL by Verilator. A System C wrapper is placed on the model so other System C modules can be used with it. The scripts require Verilator, its supporting tools, and the System C libaries, be installed to generate this model.
Cycle-accurate model generation with Verilator
The tool which generates the C++ model is Verilator. It is a free and open source tool, developed and maintained by Wilson Snyder et al. at Veripool.org. The generated C++ uses the SystemC simulation kernel and libraries. It is compiled with your system's C++ compiler to create a standalone simulation executable.
Installation of Verilator and supporting libraries
Following are the SystemC library installation instructions. Next is instructions on installing the two supporting Perl libraries used by Verilator; Verilog-Perl and System-Perl. Lastly, Verilator itself is installed. The following instructions are expanded upon those contained at Veripool's Verilator page.
Installing the SystemC library
The SystemC library can be obtained from the
Open SystemC Initiative (OSCI) website.
The Standards
Download page contains the link to download the core SystemC language and
examples archive. Registration with the OSCI is required before downloading.
Once the package is downloaded and extracted, follow the provided README for
full compilation and installation instructions.
A quick installation instruction list for most Linux platforms is provided
below, starting in the systemc-x.x.x directory:
# mkdir objdir; cd objdir
# export CXX=g++
# ../configure (note that this configures the current location as the permanent location of the systemc library)
# make
If using SystemC version 2.2.0, and make errors out with the following:
../../../../src/sysc/utils/sc_utils_ids.cpp: In function int 'sc_core::initialize()':
../../../../src/sysc/utils/sc_utils_ids.cpp:110: error: 'getenv' is not a member of std
../../../../src/sysc/utils/sc_utils_ids.cpp:111: error: 'strcmp' was not declared in this scope
Then change the includes in the file systemc-2.2.0/src/sysc/utils/sc_utils_ids.cpp to look like the following:
#include <cstdlib>
#include <string.h>
#include "sysc/utils/sc_report.h"
using namespace std;
and re-run make. Hopefully this will be addressed in the next release of SystemC:
# make
When make has completed, continue with:
# make install
# make check (optional)
Add export SYSTEMC=/path/to/systemc-x.x.x to ~/.bashrc
Installing Verilog-Perl
Download the latest release of Verilog-Perl by visiting its CPAN site.
Currently the latest release can be downloaded from here.
Extract it and follow the instructions in the include README file. A quick installation instruction list for most Linux platforms is provided:
# perl Makefile.PL
# make
# make test (optional)
# sudo make install
Installing System-Perl
Download the latest release of System-Perl by visiting its CPAN site.
Currently the latest release can be downloaded from here.
Extract it and follow the instructions in the included README file. A quick installation instruction list for most Linux platforms is provided:
# perl Makefile.PL
It's possible the following message will be displayed:
-Info: Your SystemC distribution has NOT been patched to allow sc_bv
tracing. Type 'make sc_patch' to attempt the edits.v
See the README file for details.
If so, perform the patch:
# make sc_patch
Then continue with, again:
# perl Makefile.PL (ignore it if it says it's not patched - it is)
# make
# make test (optional)
# sudo make install
Add export SYSTEMPERL=/path/to/systemperl_kit to ~/.bashrc
Installing Verilator
Installing Verilator can be done a couple of ways - using either the latest sources from the repository, or from a packaged release. ORPSoC works with Verilator version 3.710 onwards (the very latest as of May '09).Please see Verilator's installation page for instructions. Further instructions can be found in the README file included with the Verilator sources. A quick installation instruction list for most Linux platforms is provided below. It uses the method of a repository checkout with git (please install git-core with your package manager if it's not on your system):
# git clone http://git.veripool.org/git/verilator
# cd verilator
# autoconf
# ./configure
# make
# make test (recommended)
# sudo make install
Add export VERILATOR_ROOT=/path/to/verilator_kit to ~/.bashrc
The SystemC model toolchain should now be ready to compile ORPSoC.
Documentation
The following tools are required to compile the documentation source in the project's doc/ path, generating a PDF.Texinfo
The documentation is provided in texinfo source format. To compile it, the texinfo tools are required.
Under Ubuntu, use the following command to install the required packages.
sudo apt-get install texinfo
Under CentOS, Fedora and Red Hat use the following.
sudo yum install texinfo texinfo-tex
TeX
TeX is a typesetting system. To generate a PDF from the texinfo documentation, some TeX processing software is required.
Under Ubuntu, use the following command to install the required packages.
sudo apt-get install texlive
Under CentOS, Fedora and Red Hat use the following.
sudo yum install texlive texlive-latex
Performing the tests
See the documentation in the project for running simulations of the system.
To Do
- Add ability to run or1ksim's test suite against reference design
- Update tool install information - add it to project's texinfo docs
- Add or1ksim configuration file for each board port
- Add generic technology board port with some extra peripherals (ethernet, i2c, etc.) for demonstration purposes
- Add section to documentation outlining basics of adding a new board port
- Add example Altera board port
- More board ports
- Complete peripheral support for existing board ports
- Further OR1K software tests
Page Maintainer
This web page is maintained by
Pages specific to individual OpenRISC projects are maintained by their developers.
Top