// ELN - LC lowpass
// (c) Wolfgang Scherr
// w.scherr <at> cuas.at

#ifndef _LC_LOWPASS_H_
#define _LC_LOWPASS_H_

#include <systemc-ams>

SC_MODULE(lc_lowpass)
{
    /// terminals
    sca_eln::sca_terminal inp;
    sca_eln::sca_terminal outp;

    /// instances
    sca_eln::sca_l L1;
    sca_eln::sca_l L2;
    sca_eln::sca_c C1;

    /// nodes
    sca_eln::sca_node inner;
    sca_eln::sca_node_ref gnd;

    /// parameters
    struct params
    {
        double fc; /** corner frequency [Hz] */
        double Z;  /** impedance [Ohms] */

        params()
        {
            fc = 5.0e3;
            Z = 50.0;
        }
    } p;

    /// netlist
    lc_lowpass( sc_core::sc_module_name mn, const params& par = params() );
};
#endif // _LC_LOWPASS_H_
