// ELN - single diode mixer
// (c) Wolfgang Scherr
// w.scherr <at> cuas.at

#ifndef _SINGLEDIODE_MIXER_H_
#define _SINGLEDIODE_MIXER_H_

#include <systemc-ams>

#include "../elements/lc_highpass.h"
#include "../elements/lc_lowpass.h"
#include "../elements/diode.h"

SC_MODULE(singlediode_mixer)
{
    /// terminals
    sca_eln::sca_terminal lo_i;
    sca_eln::sca_terminal if_i;
    sca_eln::sca_terminal rf_o;

    /// instances
    lc_highpass hp;
    lc_lowpass lp;
    diode d;

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

    /// parameters
    struct params
    {
        params()
        {
        }
    } p;

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