asciidoctor-sail
riscv-opcodes
asciidoctor-sail | riscv-opcodes | |
---|---|---|
1 | 5 | |
3 | 627 | |
- | 2.4% | |
4.2 | 8.1 | |
9 days ago | 10 days ago | |
Ruby | Python | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
asciidoctor-sail
-
How to improve the RISC-V specification
Sail is pretty similar to ASL (both current ASL and ASL 1.0) except that (1) it has a more expressive type system, so that bitvector lengths can all be statically checked, (2) it has proper tagged unions and pattern matching, and (3) there's a wide range of open-source tooling available, for execution, specification coverage, generating emulators, integrating with relaxed concurrency models, generating theorem-prover definitions, etc. We've recently updated the Sail README, which spells some of this out: https://github.com/rems-project/sail .
As Alastair Reid says, one of the main things missing in the current RISC-V specification documents is simply that the associated Sail definitions are not yet interspersed with the prose instruction descriptions. The infrastructure to do that has been available for some time, in the Sail AsciiDoc support by Alasdair Armstrong (https://github.com/Alasdair/asciidoctor-sail/blob/master/doc...) and older LaTeX versions by Prashanth Mundkur and Alasdair (https://github.com/rems-project/riscv-isa-manual/blob/sail/r...).
riscv-opcodes
-
How to improve the RISC-V specification
It uses machine-readable specs from https://github.com/riscv/riscv-opcodes ; yet I needed to extract immediate bit scrambling from their LaTeX sources :). I wonder if there is an easier way. Anyways, the opcode semantics are hand-coded and it simulates enough to boot linux.
- Help needed in building cavatools
-
RISC-V remaining insn free space
A couple of hours work would allow someone to work it out exactly by parsing the files in https://github.com/riscv/riscv-opcodes. I don't know whether the existing parse.py explicitly works this out. It does check for conflicts. If it doesn't provide this information now then it should be easy to add.
-
How to extend Risc-V P extension in riscv-gcc and riscv-binutils?
Add instruction's match and mask values and optionally add DECLARE_INSN definitions (include/opcode/riscv-opc.h). You can use riscv-opcodes to generate those mask/match values.
-
Programming 101: writing a RISCV assembler - the worlds smallest!
I'm a bit surprised René doesn't know about either https://github.com/riscv/riscv-opcodes or https://github.com/michaeljclark/riscv-meta
What are some alternatives?
riscv-meta - RISC-V Instruction Set Metadata
riscv-isa-sim - Spike, a RISC-V ISA Simulator
riscv-gcc
binutils-gdb
riscv-binutils-gdb - RISC-V backports for binutils-gdb. Development is done upstream at the FSF.
cavatools - Cavatools is a RISC-V architectural simulator.
riscv-binutils-devmemo - binutils development memo (for RISC-V)
riscv-isa-manual - RISC-V Instruction Set Manual