Code Monkey home page Code Monkey logo

riscv-opcodes's Introduction

riscv-opcodes

This repo enumerates standard RISC-V instruction opcodes and control and status registers, as well as some custom modifications. It also contains a script to convert them into several formats (C, Python, Go, SystemVerilog, Scala, LaTeX), starting from their high-level, human-readable description.

Practical info

  • Every output of the parser is generated inside this folder; tools which need such automatically generated files must use soft link to point to them. For example, supposing RISCV_ISA_SIM_TOOL is set to the source code directory of the Spike simulator:

    ln -sfr encoding_out.h $RISCV_ISA_SIM_TOOL/encoding.h

    For example the outputs of parse-opcodes can be used in other parts of a project like assembler, ISA simulator, riscv-tests, apps runtime or RTL decoder.

  • opcodes description files organization matches the same of the official repository upstream riscv-opcodes, with the addition of several custom instruction set extensions: you can add your own custom extensions as text file in the root, then create a configuration in config.mk and subsequently add that variable to the variable MY_OPCODES of the Makefile

  • in the Makefile, you can select which opcodes files not to take into account for the parsing script execution, basing on the target architecture, by listing them in the variable DISCARDED_OPCODES;

  • opcodes files from the official 128-bit extension have not been introduced due to the other changes which they imply to other opcodes specifications;

  • some of the instructions originally declared in the vectorial extension (opcodes-rvv file) have been set as pseudo-instruction due to the overlapping of their opcodes space with the opcodes space of the SIMD instructions from Xpulpv2, defined in opcodes-xpulpvect_CUSTOM and opcodes-xpulpvectshufflepack_CUSTOM.

Smallfloat notice

The Snitch cores use opcodes-flt-occamy to decode smallfloat instructions. opcodes-sflt is not used but describes how ariane (CVA6) decodes instructions. This file is not used but kept in this repository for reference. Ariane and Snitch do not use the same FPU configuration.

Overlap notices

There might be some overlap in opcodes between extensions. These are noted as far as known in the corresponding files. In some cases these overlaps can be avoided by making one of the opcodes a pseudo-opcodes using @ in front.

riscv-opcodes's People

Contributors

a0u avatar arunthomas avatar aswaterman avatar bbarenblat avatar bluewww avatar colinschmidt avatar kito-cheng avatar oakentling avatar palmer-dabbelt avatar pavelkryukov avatar qmn avatar samuelriedel avatar sdtwigg avatar stmach avatar timsifive avatar tklauser avatar trasz avatar yunsup avatar zarubaf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.