Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
OpenRISC
Microprocessor development project

OpenRISC is an open-source hardware project developing CPU designs based on RISC principles, featuring an open-source instruction set architecture licensed under the open-source license. The flagship OpenRISC 1000 ("OR1k") family includes 32-bit and 64-bit processors with optional floating-point and vector processing. The OpenRISC 1200 core, designed in Verilog, is released under the LGPL, while related firmware uses the GPL. The OpenRISC Reference Platform System-on-Chip (ORPSoC) demonstrates SoC designs running on FPGAs, with commercial derivatives and subsequent SoCs like minSoC and MiSoC expanding the ecosystem.

We don't have any images related to OpenRISC yet.
We don't have any YouTube videos related to OpenRISC yet.
We don't have any PDF documents related to OpenRISC yet.
We don't have any Books related to OpenRISC yet.
We don't have any archived web articles related to OpenRISC yet.

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.

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 project to build a cost-efficient application-specific integrated circuit (ASIC) to get improved performance. ORSoC faced criticism for this from the community. The project did not reach the goal.

As of May 2024, 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 (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).8 Allwinner Technology are reported to use an OpenRISC core in their AR100 power controller, which forms part of the A31 ARM-based SoC.9

Cadence Design Systems have begun using OpenRISC as a reference architecture in documenting tool chain flows (for example the UVM reference flow, now contributed to Accellera).10

TechEdSat, the first NASA 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.111213

Academic and non-commercial use

Being open source, OpenRISC has proved popular in academic and hobbyist circles. For example, Stefan Wallentowitz14 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.15 The Open Source Hardware User Group (OSHUG) in the UK has on two occasions1617 run sessions on OpenRISC, while hobbyist Sven-Åke Andersson has written a comprehensive blog on OpenRISC for beginners,18 which attracted the interest of Electronic Engineering Times (EE Times).19 Sebastian Macke has implemented jor1k, an OpenRISC 1000 emulator in JavaScript, running Linux with X Window System and Wayland support.20

Toolchain support

The OpenRISC community have ported the GNU toolchain to OpenRISC to support development in the programming languages 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 (IDE) based on this toolchain. A project to port LLVM to the OpenRISC 1000 architecture began in early 2012.21

GCC 9 released with OpenRISC support.22

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 gained support for OpenRISC in version 3.1.23 The implementation merged in this release is the 32-bit OpenRISC 1000 family (or1k).24 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.25

See also

  • Free and open-source software portal

References

  1. "Architecture - OpenRISC". OpenRisc.io. Retrieved 2021-04-17. https://openrisc.io/architecture

  2. Clarke, Peter (2000-02-28). "Free 32-bit processor core hits the Net". Electronic Engineering Times (EE Times). San Francisco, California, United States: AspenCore Media. Retrieved 2019-03-21. https://www.eetimes.com/document.asp?doc_id=1214097

  3. "Implementations - OpenRISC". OpenRisc.io. Retrieved 2021-04-17. https://openrisc.io/implementations#mor1kx

  4. "Implementations - OpenRISC". OpenRisc.io. Retrieved 2021-04-17. https://openrisc.io/implementations#system-simulators

  5. Pelgrims, Patrick; Tierens, Tom; Driessens, Dries (2004). "Basic Custom OpenRISC System Hardware Tutorial: Embedded system design based upon Soft- and Hardcore FPGAs" (PDF). De Nayer Instituut. 1.0. Archived from the original (PDF) on 2006-11-27. Retrieved 2009-03-03. https://web.archive.org/web/20061127055325/http://emsys.denayer.wenk.be/empro/openrisc-HW-tutorial-Xilinx.pdf

  6. Li, Xiang; Zuo, Lin. Open source embedded platform based on OpenRISC and DE2-70 (Masters). KTH Royal Institute of Technology (KTH), Sweden. Archived from the original on 2011-10-06., SoC program https://web.archive.org/web/20111006172138/http://www.olivercamel.com/post/master_thesis.html

  7. "System-on-Chip - OpenRISC". OpenRisc.io. Retrieved 2021-04-17. https://openrisc.io/soc

  8. Samsung Open Source Release Center, follow the links → TV & VIDEO → TV → DTV → ETC → OR1200.zip http://opensource.samsung.com/

  9. Linux-sunxi project community wiki page on the AR100 controller. Retrieved on 20 July 2013. http://linux-sunxi.org/AR100

  10. UVM Reference Flow, Accellera website (undated). http://www.uvmworld.org/uvm-reference-flow.php

  11. Post to the openrisc mailing lists at lists.openrisc.net on 8 April 2012 by Fredrick Bruhn, CEO of ÅAC Microtec

  12. "Swedish breakthrough in space on NASA satellite with electronics from ÅAC Microtec". ÅAC Microtec (Press release). 2012-10-11. Archived from the original on 2014-01-18. Retrieved 2018-03-17. https://web.archive.org/web/20140118171835/http://aacmicrotec.com/index.php/component/content/article/1-news-in-english/111-swedish-breakthrough-in-space-on-nasa-satellite-with-electronics-from-aac-microtec.html

  13. "Svenskt genombrott i rymden på NASA-satellit med elektronik från ÅAC Microtec" [Swedish breakthrough in space on NASA satellite with electronics from ÅAC Microtec] (Press release) (in Swedish). 2012-10-11. Retrieved 2018-03-16 – via Mynewsdesk.[dead link] Alt URL http://www.aacmicrotec.com/index.php/component/content/article/2-news-in-swedish/112-svenskt-genombrott-i-rymden-pa-nasa-satellit-med-elektronik-fran-aac-microtec.html

  14. "Dipl.-Ing. Dipl.-Wirt.-Ing. Stefan Wallentowitz". 2009–2013. Archived from the original on 2013-04-13. https://web.archive.org/web/20130413065707/http://www.lis.ei.tum.de/?id=wallentowitz

  15. Wallentowitz, Stefan; Wild, Thomas; Herkersdorf, Andreas. "Multicore Architecture and Programming Model Co-Optimization (MAPCO)" (PDF) (Research poster at the Sixth International Summer School on Advanced Computer Architecture and Compilation for High-Performance and Embedded Systems (ACACES), 11-17 July 2010). Terrassa (Barcelona), Spain. Archived from the original (PDF) on 10 February 2013. Retrieved 2018-10-29. https://web.archive.org/web/20130210103934/http://www.lis.ei.tum.de/fileadmin/w00bdv/www/MAPCO/ACACES2010_Poster.pdf

  16. Chips (Programmable Logic, Computer Conservation with FPGAs, OpenCores & OpenRISC 1000). OSHUG meeting #9, Skills Matter, 116-120 Goswell Road, London, 21 April 2011. http://oshug.org/event/9

  17. Practical System-on-Chip (Program your own open source FPGA SoC). OSHUG meeting #17, Centre for Creative Collaboration, 16 Acton Street, London, 29 March 2012. http://oshug.org/event/17

  18. OpenRISC 1200 soft processor Archived 2012-05-13 at the Wayback Machine. Blog post by Sven-Åke Andersson, 2 March 2012. http://www.rte.se/blog/blogg-modesty-corex/openrisc-1200-soft-processor

  19. Maxfield, Clive (2012-05-03). "Comparing four 32-bit soft processor cores". Electronic Engineering Times (EE Times). San Francisco, California, United States: AspenCore Media. Retrieved 2019-03-21. https://www.eetimes.com/author.asp?section_id=14&doc_id=1286116

  20. OpenRISC Emulator in JavaScript Can Run Wayland https://www.phoronix.com/scan.php?page=news_item&px=MTQ4NDI

  21. "llvm-or1k". GitHub. 2018-04-06. Retrieved 2019-03-21. https://github.com/openrisc/llvm-or1k

  22. "GCC 9 changelog". GNU. Retrieved 15 June 2022. https://gcc.gnu.org/gcc-9/changes.html#or1k

  23. "git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/". git.kernel.org. Archived from the original on 2012-07-08. Retrieved 2011-10-17. https://archive.today/20120708204051/http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=arch/openrisc;hb=HEAD

  24. "Linux 3.1". Kernel Newbies. Retrieved 2011-10-17. http://kernelnewbies.org/Linux_3.1#head-37c60fa1253db74ce7d224718a71f5836bd5be09

  25. QEMU Changelog 1.2 http://wiki.qemu.org/ChangeLog/1.2