OR1200 OpenRISC processor

Introduction

The aim of this project is to design and maintain an OpenRISC 1200 IP Core. OpenRISC 1200 is an implementation of OpenRISC 1000 processor family.

The OR1200 is a 32-bit scalar RISC with Harvard microarchitecture, 5 stage integer pipeline, virtual memory support (MMU) and basic DSP capabilities.

OR1200 overview

Default caches are 1-way direct-mapped 8KB data cache and 1-way direct-mapped 8KB instruction cache, each with 16-byte line size. Both caches are physically tagged. By default MMUs are implemented and they are constructed of 64-entry hash based 1-way direct-mpped data TLB and 64-entry hash based 1-way direct-mapped instruction TLB. Supplemental facilities include debug unit for real-time debugging, high resolution tick timer, programmable interrupt controller and power management support. When implemented in a worst-case 0.18u 6LM process it should provide over 150 dhrystone 2.1 MIPS at 150MHz and 150 DSP MAC 32x32 operations, at least 20% more than any other competitor in this class (typical corner 250MHz). The default OR1200 configuration is about 40k ASIC gates. Download OpenRISC 1200 IP Core Overview (PDF, 15KB) flyer.

General Microarchitecture

  • Central CPU/DSP block
  • Direct mapped data cache
  • Direct mapped instruction cache
  • Data MMU based on hash-based DTLB
  • Instruction MMU based on hash-based ITLB
  • Power management unit and power management interface
  • Tick timer
  • Debug unit and development interface
  • Interrupt controller and interrupt interface
  • Instruction and Data WISHBONE interfaces

Status

RTL coding is finished and is being tested in different test applications. It has also been implemented in various commersial ASICs and FPGA.

If you would like to help with the development, please contact the developers or send an email to openrisc.

Downloading OR1200 processor

Older versions is located in the TAGS directory.

We recommend to checkout the latest (development) version from SVN using:

svn co http://opencores.org/ocsvn/openrisc/openrisc/trunk/or1200

The configuration of the processor, when checked out from the repository (which can be changed by altering the or1200_defines.v file) is at present:

  • FPGA targeted
  • Actel technology targeted (only affecting RAM instantiations, is actually generic, see wish list )
  • Instruction cache enabled, 8kByte
  • Data cache disabled
  • Instruction MMU enabled
  • Data MMU enabled
  • Hardware multiplication/division disabled
  • Single precision floating point unit disabled
  • Wishbone bus (rev. B3 compatible) bursting enabled
  • Debug unit enabled
  • Boot address at 0xf0000100, but EPH not set (exceptions at 0x0)

This configuration is considered the smallest capable of running the Linux kernel. Note the lack of hardware multiply and divide - the compiler should use the -msoft-mul flag when compiling.

Note: the configuration of the processor in the repository is subject to change. Be sure to check the or1200_defines.v carefully file before use.

Documentation

Specification document for OpenRISC 1200 is available both in Adobe PDF form and in MS Word form:

Also see architecture documentation.

Tutorials how to implement OR1200 on Altera FPGA and Xilinx FPGA. Credits go to Resarch Group Digital Techniques, Hogeschool voor Wetenschap & Kunst, Campus de Nayer:

Wish List (TODO List)

This is what we would like to develop/see developed but presently nobody is working on these projects. If you want to help, send an email to openrisc_team@opencores.org

  • Clean up technology-dependent memory instantiation (probably none needed for FPGA anymore)
  • Add multiple associativity to cache and MMU
  • Optimize for speed, area and power
  • Test OR1200 in your applications
  • Write design document

If you have a suggestion for new Wish List entry, feel free to send it to the mailing list so that is added to the list and somebody may start working on it.

Mailing List / Discussion Forum

To participate in the development or simply to discuss OpenRISC 1200 issues and to report bugs, go to the openrisc mailing list.

Page Maintainer

This web page is maintained by

  • Marcus Erlandsson
  • Michael Unneback
Top
© copyright 1999-2010 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.