add FPADD stack documentation
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 16 Jul 2019 09:54:05 +0000 (10:54 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 16 Jul 2019 09:54:05 +0000 (10:54 +0100)
src/ieee754/fpadd/pipeline.py

index 9a7820f70e3ed5e2d14ac3638e082cecd780dada..9c51c3ca55df2f80c612a670ab8ea7e2f12a51c6 100644 (file)
@@ -1,6 +1,36 @@
-# IEEE Floating Point Adder (Single Precision)
-# Copyright (C) Jonathan P Dawson 2013
-# 2013-12-12
+"""IEEE Floating Point Adder Pipeline
+
+Relevant bugreport: http://bugs.libre-riscv.org/show_bug.cgi?id=75
+
+Stack looks like this:
+
+* scnorm    - FPMulSpecialCasesDeNorm
+* addalign  - FPAddAlignSingleAdd
+* normpack  - FPNormToPack
+
+scnorm   - FPDIVSpecialCasesDeNorm ispec FPADDBaseData
+------                             ospec FPSCData
+
+                StageChain: FPMULSpecialCasesMod,
+                            FPAddDeNormMod
+                            FPAlignModSingle
+
+addalign  - FPAddAlignSingleAdd    ispec FPSCData
+--------                           ospec FPAddStage1Data
+
+                StageChain: FPAddAlignSingleMod
+                            FPAddStage0Mod
+                            FPAddStage1Mod
+
+normpack  - FPNormToPack           ispec FPAddStage1Data
+--------                           ospec FPPackData
+
+                StageChain: Norm1ModSingle,
+                            RoundMod,
+                            CorrectionsMod,
+                            PackMod
+
+"""
 
 from nmigen import Module
 from nmigen.cli import main, verilog