OpenRISC is a project to develop a series of
open-source hardware
Open-source hardware (OSH, OSHW) consists of physical artifact (software development), artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by th ...
based
central processing unit
A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
s (CPUs) on established
reduced instruction set computer (RISC) principles. It includes an
instruction set architecture
In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, ...
(ISA) using an
open-source license
Open-source licenses are software licenses that allow content to be used, modified, and shared. They facilitate free and open-source software (FOSS) development. Intellectual property (IP) laws restrict the modification and sharing of creative ...
. It is the original flagship project of the
OpenCores community.
The first (and only) architectural description is for the OpenRISC 1000 ("OR1k"), describing a family of
32-bit and
64-bit processors with optional
floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a Sign (mathematics), signed sequence of a fixed number of digits in some Radix, base) multiplied by an integer power of that ba ...
and
vector processing
In computing, a vector processor or array processor is a central processing unit (CPU) that implements an instruction set where its Instruction (computer science), instructions are designed to operate efficiently and effectively on large Array d ...
support.
The
OpenRISC 1200 implementation of this specification was designed by Damjan Lampret in 2000, written in the
Verilog
Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits, with the highest level of abstraction being at the re ...
hardware description language
In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, usually to design application-specific integrated circuits (ASICs) and to progra ...
(HDL). The later mor1kx implementation, which has some advantages compared to the OR 1200, was designed by Julius Baxter and is also written in Verilog. Software simulators also exist which implement the OR1k specification.
The hardware design was released under the
GNU Lesser General Public License (LGPL), while the models and firmware were released under the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL).
A reference
system on a chip
A system on a chip (SoC) is an integrated circuit that combines most or all key components of a computer or Electronics, electronic system onto a single microchip. Typically, an SoC includes a central processing unit (CPU) with computer memory, ...
(SoC) implementation based on the OpenRISC 1200 was developed, named the ''OpenRISC Reference Platform System-on-Chip'' (ORPSoC). Several groups have demonstrated ORPSoC and other OR1200 based designs running on
field-programmable gate arrays (FPGAs), and there have been several commercial derivatives produced.
Later SoC designs, also based on an OpenRisc 1000 CPU implementation, are minSoC, OpTiMSoC and MiSoC.
Instruction set
The instruction set is a reasonably simple traditional RISC architecture reminiscent of
MIPS using a 3-operand load-store architecture, with 16 or 32 general-purpose registers and a fixed 32-bit instruction length. The instruction set is mostly identical between the 32- and 64-bit versions of the specification, the main difference being the register width (32 or 64 bits) and page table layout. The OpenRISC specification includes all features common to modern desktop and server processors: a supervisor mode and virtual memory system, optional read, write, and execute control for memory pages, and instructions for synchronizing and interrupt handling between multiple processors.
Another notable feature is a rich set of ''single instruction, multiple data'' (
SIMD) instructions intended for
digital signal processing
Digital signal processing (DSP) is the use of digital processing, such as by computers or more specialized digital signal processors, to perform a wide variety of signal processing operations. The digital signals processed in this manner are a ...
.
Implementations

Most implementations are on
field-programmable gate arrays (FPGAs) which give the possibility to iterate on the design at the cost of performance.
By 2018, the OpenRISC 1000 was considered stable, so ORSoC (owner of OpenCores) began a
crowdfunding
Crowdfunding is the practice of funding a project or venture by raising money from a large number of people, typically via the internet. Crowdfunding is a form of crowdsourcing and Alternative Finance, alternative finance, to fund projects "withou ...
project to build a cost-efficient
application-specific integrated circuit
An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficienc ...
(ASIC) to get improved performance. ORSoC faced criticism for this from the community. The project did not reach the goal.
, no open-source ASIC had been produced.
Commercial implementations
Several commercial organizations have developed derivatives of the OpenRISC 1000 architecture, including the ORC32-1208 from ORSoC and the BA12, BA14, and BA22 from Beyond Semiconductor. Dynalith Systems provide the iNCITE
FPGA prototyping board, which can run both the OpenRISC 1000 and BA12.
Flextronics (Flex) and
Jennic Limited manufactured the OpenRISC as part of an
application-specific integrated circuit
An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficienc ...
(ASIC). Samsung uses the OpenRISC 1000 in their DTV system-on-chips (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series). Allwinner Technology are reported to use an OpenRISC core in their AR100 power controller, which forms part of the A31 ARM-based SoC.
Cadence Design Systems
Cadence Design Systems, Inc. (stylized as cādence)Investor's Business DailCEO Lip-Bu Tan Molds Troubled Cadence Into Long-Term LeaderRetrieved November 12, 2020 is an American multinational corporation, multinational technology and computational ...
have begun using OpenRISC as a reference architecture in documenting tool chain flows (for example the UVM reference flow, now contributed to
Accellera).
TechEdSat, the first
NASA
The National Aeronautics and Space Administration (NASA ) is an independent agencies of the United States government, independent agency of the federal government of the United States, US federal government responsible for the United States ...
OpenRISC architecture based Linux computer launched in July 2012, and was deployed in October 2012 to the International Space Station with hardware provided, built, and tested by ÅAC Microtec and ÅAC Microtec North America.
Academic and non-commercial use
Being open source, OpenRISC has proved popular in academic and hobbyist circles. For example, Stefan Wallentowitz and his team at the Institute for Integrated Systems at the
Technische Universität München have used OpenRISC in research into
multi-core processor architectures.
The ''Open Source Hardware User Group'' (
OSHUG) in the UK has on two occasions run sessions on OpenRISC, while hobbyist Sven-Åke Andersson has written a comprehensive blog on OpenRISC for beginners, which attracted the interest of ''Electronic Engineering Times'' (
EE Times
''EE Times'' (''Electronic Engineering Times'') is an electronics industry magazine published in the United States since 1972. EE Times is currently owned by AspenCore, a division of Arrow Electronics since August 2016.
Ownership and status
'' ...
).
Sebastian Macke has implemented jor1k, an OpenRISC 1000 emulator in
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
, running
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
with
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
and
Wayland support.
Toolchain support
The OpenRISC community have ported the
GNU toolchain to OpenRISC to support development in the
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s
C and
C++. Using this toolchain the
newlib,
uClibc,
musl (as of release 1.1.4), and
glibc libraries have been ported to the processor. Dynalith provides OpenIDEA, a graphical
integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE) based on this toolchain. A project to port
LLVM
LLVM, also called LLVM Core, is a target-independent optimizer and code generator. It can be used to develop a Compiler#Front end, frontend for any programming language and a Compiler#Back end, backend for any instruction set architecture. LLVM i ...
to the OpenRISC 1000 architecture began in early 2012.
GCC 9 released with OpenRISC support.
The OR1K project provides an
instruction set simulator, or1ksim. The flagship implementation, the OR1200, is a
register-transfer level (RTL) model in Verilog HDL, from which a
SystemC-based cycle-accurate model can be built in ORPSoC. A high speed model of the OpenRISC 1200 is also available through the Open Virtual Platforms (OVP) initiative (see
OVPsim), set up by Imperas.
Operating system support
Linux support
The mainline
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
gained support for OpenRISC in version 3.1.
The implementation merged in this release is the 32-bit OpenRISC 1000 family (or1k). Formerly OpenRISC 1000 architecture, it has been superseded by the mainline port.
RTOS support
Several
real-time operating systems (RTOS) have been ported to OpenRISC, including
NuttX,
RTEMS,
FreeRTOS, and
eCos.
QEMU support
Since version 1.2,
QEMU supports emulating OpenRISC platforms.
QEMU Changelog 1.2
/ref>
See also
* Amber (processor core) – ARM-Compatible OpenCores Project
* Free and Open Source Silicon Foundation
* J Core – SuperH-Compatible OpenCores Project
* OpenRISC 1200
* OVPsim, Open Virtual Platforms
* OpenSPARC – SPARC-Compatible OpenCores Project
* LEON
* LatticeMico32
* RISC-V
RISC-V (pronounced "risk-five") is an open standard instruction set architecture (ISA) based on established reduced instruction set computer (RISC) principles. The project commenced in 2010 at the University of California, Berkeley. It transfer ...
References
External links
*
Open Source Semiconductor Core Licensing, 25 Harvard Journal of Law & Technology 131 (2011)
Article analyzing the law, technology and business of open source semiconductor cores
Beyond Semiconductor
commercial fabless semiconductor company founded by the developers of OpenRISC
Dynalith Systems
company website.
Imperas
company website.
Flex
company website
Jennic
company website
Eetimes article
OpenRISC tutorial
* , OpenRISC 1000 emulator in JavaScript
{{DEFAULTSORT:Openrisc
Open microprocessors
Embedded microprocessors
Soft microprocessors