aboutsummaryrefslogtreecommitdiff
path: root/doc/notes_FD_extensions.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/notes_FD_extensions.md')
-rw-r--r--doc/notes_FD_extensions.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/doc/notes_FD_extensions.md b/doc/notes_FD_extensions.md
new file mode 100644
index 0000000..72740cc
--- /dev/null
+++ b/doc/notes_FD_extensions.md
@@ -0,0 +1,60 @@
+Notes on F and D extensions (floating point) in the SAIL RISC-V Model
+=====================================================================
+
+Questions? Rishiyur Nikhil (github id: `rsnikhil`), Bluespec, Inc.
+
+The main original SAIL RISC-V repo is [here](https://github.com/rems-project/sail-riscv)
+
+[Current working directory](https://github.com/rsnikhil/sail-riscv.git).
+This is a fork of the main original repo, on which we have added the SAIL code for F and D extensions.
+This will be merged back into the main original repo after testing.
+
+---
+
+Status (2019-10-24)
+-------------------
+
+1. Complete (almost): SAIL coding [Rishiyur Nikhil, Bluespec, Inc.]
+ Remaining: tweaks to handle illegal rounding modes.
+2. In progress: Incorporate Berkeley SoftFloat calls [U.Cambridge]
+3. To do: Testing on all ISA tests
+
+Should not take more than a few days to complete the remaining work.
+
+---
+
+Files (all are in "model/" directory)
+-------------------------------------
+
+Changed file:
+Added two one-line predicates `haveFExt()` and `haveDExt()` that test whether MISA.F and MISA.D are set:
+
+ riscv_sys_regs.sail
+
+New files:
+Definition for FLEN and bit-vectors holding floating point values.
+The former should be used if only F is supported,
+the latter if F and D are supported:
+
+ riscv_flen_F.sail
+ riscv_flen_D.sail
+
+New file: A few more definitions for floating point registers.
+
+ riscv_freg_type.sail
+
+New file: The floating point register file and floating point CSRs:
+
+ riscv_fdext_regs.sail
+
+New files: The main files for F and D, respectively, containing AST
+definitions, binary encode/decode mappings, assembly code generation,
+and execution semantics:
+
+ riscv_insts_fext.sail
+ riscv_insts_dext.sail
+
+Functions that call out to Berkeley SoftFloat (implemented in C) to
+perform the core floating point computations:
+
+ riscv_softfloat_interface.sail