OpenCores

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

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.

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
© copyright 1999-2012 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.