Radical Computer Technologies
DSP / entity

raddsp_audio_dds_oscillator

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

Audio DDS oscillator with explicit Gowin multiplier-backed gain.

Use Cases

Block Diagram

raddsp_audio_dds_oscillator radhdl entity clk rst enable_i phase_inc_i wave_select_i gain_i sample_o valid_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_audio_dds_oscillator is
  generic (
    SAMPLE_WIDTH : positive := 24;
    WAVE_WIDTH : positive := 16;
    PHASE_WIDTH : positive := 24;
    COEFF_WIDTH : positive := 18;
    COEFF_FRAC_BITS : natural := 15
  );
  port (
    clk : in std_logic;
    rst : in std_logic;
    enable_i : in std_logic;
    phase_inc_i : in std_logic_vector(PHASE_WIDTH - 1 downto 0);
    wave_select_i : in std_logic_vector(1 downto 0);
    gain_i : in std_logic_vector(COEFF_WIDTH - 1 downto 0);
    sample_o : out std_logic_vector(SAMPLE_WIDTH - 1 downto 0);
    valid_o : out std_logic
  );
end component;

Direct Entity Instantiation

u_raddsp_audio_dds_oscillator : entity radhdl.raddsp_audio_dds_oscillator
  generic map (
    SAMPLE_WIDTH    => 24,
    WAVE_WIDTH      => 16,
    PHASE_WIDTH     => 24,
    COEFF_WIDTH     => 18,
    COEFF_FRAC_BITS => 15
  )
  port map (
    clk           => <clk_signal>,
    rst           => <rst_signal>,
    enable_i      => <enable_i_signal>,
    phase_inc_i   => <phase_inc_i_signal>,
    wave_select_i => <wave_select_i_signal>,
    gain_i        => <gain_i_signal>,
    sample_o      => <sample_o_signal>,
    valid_o       => <valid_o_signal>
  );

Generics

NameTypeDefaultDescription
SAMPLE_WIDTHpositive24
WAVE_WIDTHpositive16
PHASE_WIDTHpositive24
COEFF_WIDTHpositive18
COEFF_FRAC_BITSnatural15

Ports

NameDirectionTypeDescription
clkinstd_logic
rstinstd_logic
enable_iinstd_logic
phase_inc_iinstd_logic_vector(PHASE_WIDTH - 1 downto 0)
wave_select_iinstd_logic_vector(1 downto 0)
gain_iinstd_logic_vector(COEFF_WIDTH - 1 downto 0)
sample_ooutstd_logic_vector(SAMPLE_WIDTH - 1 downto 0)
valid_ooutstd_logic

Testbenches

No directly associated testbench was found.

Sources