Fix mistakes in changes related to phase_extrabits.
This commit is contained in:
parent
ba096abf16
commit
fe5dfa9133
|
@ -245,7 +245,7 @@ begin
|
||||||
|
|
||||||
-- Extract phase remainder as signed number
|
-- Extract phase remainder as signed number
|
||||||
-- (by simply inverting the sign bit).
|
-- (by simply inverting the sign bit).
|
||||||
v1_rphase(rphase_bits-1 downto 0) :=
|
v1_rphase(rphase_bits-1) :=
|
||||||
not in_phase(rphase_bits-1);
|
not in_phase(rphase_bits-1);
|
||||||
v1_rphase(rphase_bits-2 downto 0) :=
|
v1_rphase(rphase_bits-2 downto 0) :=
|
||||||
signed(in_phase(rphase_bits-2 downto 0));
|
signed(in_phase(rphase_bits-2 downto 0));
|
||||||
|
@ -255,9 +255,10 @@ begin
|
||||||
|
|
||||||
-- Multiply phase remainder by Pi/2, first step.
|
-- Multiply phase remainder by Pi/2, first step.
|
||||||
-- t1 = rphase + (rphase >> 4)
|
-- t1 = rphase + (rphase >> 4)
|
||||||
-- (left-shift to add extra phase bits to increase accuracy)
|
-- (add extra '0' bits to increase accuracy)
|
||||||
-- (apply rounding constant for truncation due to shift)
|
-- (apply rounding constant for truncation due to shift)
|
||||||
v1_xphase := shift_left(v1_rphase, phase_extrabits);
|
v1_xphase(v1_xphase'high downto phase_extrabits) := v1_rphase;
|
||||||
|
v1_xphase(phase_extrabits-1 downto 0) := (others => '0');
|
||||||
r1_dphase <= resize(v1_xphase, dphase_bits) +
|
r1_dphase <= resize(v1_xphase, dphase_bits) +
|
||||||
resize(shift_right(v1_xphase, 4), dphase_bits) +
|
resize(shift_right(v1_xphase, 4), dphase_bits) +
|
||||||
signed("0" & v1_xphase(3 downto 3));
|
signed("0" & v1_xphase(3 downto 3));
|
||||||
|
@ -291,9 +292,10 @@ begin
|
||||||
|
|
||||||
-- Multiply phase remainder by Pi/2, final step.
|
-- Multiply phase remainder by Pi/2, final step.
|
||||||
-- dphase = t2 + (rphase >> 1)
|
-- dphase = t2 + (rphase >> 1)
|
||||||
-- (left-shift to add extra phase bits to increase accuracy)
|
-- (add extra '0' bits to increase accuracy)
|
||||||
-- (apply rounding constant for truncation due to shift)
|
-- (apply rounding constant for truncation due to shift)
|
||||||
v3_xphase := shift_left(r2_rphase, phase_extrabits);
|
v3_xphase(v3_xphase'high downto phase_extrabits) := r2_rphase;
|
||||||
|
v3_xphase(phase_extrabits-1 downto 0) := (others => '0');
|
||||||
v3_dphase := r2_dphase +
|
v3_dphase := r2_dphase +
|
||||||
resize(shift_right(v3_xphase, 1), dphase_bits) +
|
resize(shift_right(v3_xphase, 1), dphase_bits) +
|
||||||
signed("0" & v3_xphase(0 downto 0));
|
signed("0" & v3_xphase(0 downto 0));
|
||||||
|
|
Loading…
Reference in New Issue