Begin adding floating point cordic pipeline
[ieee754fpu.git] / src / ieee754 / cordic / fp_pipe_data.py
1 from nmigen import Signal, Const
2 from nmutil.dynamicpipe import SimpleHandshakeRedir
3 from ieee754.fpcommon.fpbase import FPNumBaseRecord
4 from ieee754.pipeline import PipelineSpec
5 from nmutil.concurrentunit import num_bits
6 import math
7
8 from ieee754.cordic.pipe_data import (CordicData, CordicInitialData,
9 CordicPipeSpec)
10
11
12 class FPCordicPipeSpec(CordicPipeSpec, PipelineSpec):
13 def __init__(self, width, rounds_per_stage, num_rows):
14 rec = FPNumBaseRecord(width, False)
15 fracbits = 2 * rec.m_width
16 self.width = width
17 id_wid = num_bits(num_rows)
18 CordicPipeSpec.__init__(self, fracbits, rounds_per_stage)
19 PipelineSpec.__init__(self, width, op_wid=1, n_ops=1,
20 id_width=id_wid)