6335244fbd098f5d68f8c6c74c08cb5b42706820
1 from nmigen
import Signal
, Const
4 class CordicInitialData
:
6 def __init__(self
, pspec
):
8 self
.z0
= Signal(range(-ZMAX
, ZMAX
), name
="z") # denormed result
14 return [self
.z
.eq(i
.z
)]
18 def __init__(self
, pspec
):
22 self
.x
= Signal(range(-M
, M
+1), name
="x") # operand a
23 self
.y
= Signal(range(-M
, M
+1), name
="y") # operand b
24 self
.z
= Signal(range(-ZMAX
, ZMAX
), name
="z") # denormed result
32 ret
= [self
.z
.eq(i
.z
), self
.x
.eq(i
.x
), self
.y
.eq(i
.y
)]
37 def __init__(self
, fracbits
):
38 self
.fracbits
= fracbits
39 self
.M
= (1 << fracbits
)
40 self
.ZMAX
= int(round(self
.M
* math
.pi
/2))
41 zm
= Const(-self
.ZMAX
)
42 self
.iterations
= zm
.width
- 1