Radical Computer Technologies
DSP / entity

raddsp_fft_twiddle_rom

Documentation version: 0.2.0 / Subpackage: dsp_transform / Source package: raddsp

Lookup ROM for FFT twiddle factors used by RadDSP FFT implementations. Returns fixed-point sine/cosine coefficients indexed by stage and butterfly position.

Use Cases

Block Diagram

raddsp_fft_twiddle_rom radhdl entity clk rst addr_i twiddle_re_o twiddle_im_o
VHDL Include And Instantiation Template

File Header

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

library radhdl;
-- Direct entity instantiation below does not require importing the entity name.
use radhdl.dsp.all;
-- Narrower alternative: use radhdl.dsp_transform.all;

Component Declaration

component raddsp_fft_twiddle_rom is
  generic (
    VENDOR : string := "xilinx";
    DEVICE_FAMILY : string := "ultrascaleplus";
    G_POINTS : positive := 1024;
    G_TWIDDLE_WIDTH : positive := 16;
    G_INVERSE_FFT : boolean := false;
    G_MEMORY_STYLE : string := "block";
    G_INIT_FILE : string := "none"
  );
  port (
    clk : in std_logic;
    rst : in std_logic;
    addr_i : in std_logic_vector;
    twiddle_re_o : out signed(G_TWIDDLE_WIDTH - 1 downto 0);
    twiddle_im_o : out signed(G_TWIDDLE_WIDTH - 1 downto 0)
  );
end component;

Direct Entity Instantiation

u_raddsp_fft_twiddle_rom : entity radhdl.raddsp_fft_twiddle_rom
  generic map (
    VENDOR          => "xilinx",
    DEVICE_FAMILY   => "ultrascaleplus",
    G_POINTS        => 1024,
    G_TWIDDLE_WIDTH => 16,
    G_INVERSE_FFT   => false,
    G_MEMORY_STYLE  => "block",
    G_INIT_FILE     => "none"
  )
  port map (
    clk          => <clk_signal>,
    rst          => <rst_signal>,
    addr_i       => <addr_i_signal>,
    twiddle_re_o => <twiddle_re_o_signal>,
    twiddle_im_o => <twiddle_im_o_signal>
  );

Generics

NameTypeDefaultDescription
VENDORstring"xilinx"Selects the vendor-specific implementation path, usually XILINX for DSP48/XPM-backed builds or generic for portable RTL.
DEVICE_FAMILYstring"ultrascaleplus"Identifies the target FPGA family so wrappers can choose the correct primitive or conservative portable behavior.
G_POINTSpositive1024Sets the transform, frame, or vector size used by the datapath.
G_TWIDDLE_WIDTHpositive16Sets the bit width for G TWIDDLE WIDTH values carried by this module.
G_INVERSE_FFTbooleanfalseSets the transform, frame, or vector size used by the datapath.
G_MEMORY_STYLEstring"block"Configures G MEMORY STYLE for this instance.
G_INIT_FILEstring"none"Configures G INIT FILE for this instance.

Ports

NameDirectionTypeDescription
clkinstd_logicClock for the associated synchronous logic and handshake domain.
rstinstd_logicActive-high synchronous reset for this clock domain.
addr_iinstd_logic_vectorInput addr i signal for this module.
twiddle_re_ooutsigned(G_TWIDDLE_WIDTH - 1 downto 0)Output twiddle re o signal generated by this module.
twiddle_im_ooutsigned(G_TWIDDLE_WIDTH - 1 downto 0)Output twiddle im o signal generated by this module.

Testbenches

No directly associated testbench was found.

Sources