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

#ifndef _DIODE_H_
#define _DIODE_H_

#include <systemc-ams>

SC_MODULE(diode)
{
    /// terminals
    sca_eln::sca_terminal anode;
    sca_eln::sca_terminal cathode;

    /// instances
    sca_eln::sca_vccs E1;

    /// nodes
    //sca_eln::sca_node_ref gnd;

    /// parameters
    struct params
    {
        double Vrev;   /** reverse breakthrough [V] */
        double Vfwd;   /** forward voltage [V] */
        double Rs_on;  /** serial on resistance */
        double Rs_off; /** serial off resistance */

        params()
        {
            Vrev = -20.0;
            Vfwd = 0.5;
            Rs_on = 10.0;
            Rs_off = 1.0e9;
        }
    } p;

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