* Further reduction of multiplier width.
At this point it very slightly affects output quality. This change makes it possible to implement up to 24-bit sine generators using just 18x18-bit multipliers (i.e. Spartan-6).
This commit is contained in:
parent
7ce5b82ff0
commit
8796491f37
|
@ -66,10 +66,10 @@ architecture rtl of sincos_gen is
|
||||||
constant dphase_bits: integer := phase_bits - table_addrbits;
|
constant dphase_bits: integer := phase_bits - table_addrbits;
|
||||||
|
|
||||||
-- Number of (MSB) bits from lookup table used for Taylor correction.
|
-- Number of (MSB) bits from lookup table used for Taylor correction.
|
||||||
constant coeff_bits: integer := table_width + 4 - table_addrbits;
|
constant coeff_bits: integer := table_width + 3 - table_addrbits;
|
||||||
|
|
||||||
-- Scaling after Taylor correction.
|
-- Scaling after Taylor correction.
|
||||||
constant frac_bits: integer := phase_bits + 4 - table_addrbits;
|
constant frac_bits: integer := phase_bits + coeff_bits - table_width;
|
||||||
constant accum_bits: integer := data_bits + frac_bits;
|
constant accum_bits: integer := data_bits + frac_bits;
|
||||||
constant round_const: unsigned(frac_bits-2 downto 0) := (others => '1');
|
constant round_const: unsigned(frac_bits-2 downto 0) := (others => '1');
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue