/// \brief logic output constructor /// /// The third parameter does nothing. It is provided only for /// compatibility with tristate_output_t in templatized device models /// /// \param dev Device owning this output /// \param aname The name of this output /// \param dummy Dummy parameter to allow construction like tristate output /// public logic_output_t(device_t dev, string aname, bool dummy = false) : base(dev, aname, state_e.STATE_OUT, null) //: logic_t(dev, aname, STATE_OUT, nldelegate()) { m_my_net = new logic_net_t(dev.state(), name() + ".net", this); //plib::unused_var(dummy); this.set_net(m_my_net); state().register_net(m_my_net); //state().register_net(device_arena::owned_ptr<logic_net_t>(&m_my_net, false)); state().setup().register_term(this); }
// pass in a default model - this may be overwritten by PARAM(DEVICE.MODEL, "XYZ(...)") public void device_t_after_ctor(device_t owner, string name, string model) //: base(owner, name) { m_model = new param_model_t(this, "MODEL", model); set_logic_family(state().setup().family_from_model(m_model.op())); if (logic_family() == null) { throw new nl_exception(MF_NULLPTR_FAMILY(this.name(), m_model.op())); } }
public void device_t_after_ctor(device_t owner, string name) //: base(owner, name) { m_model = new param_model_t(this, "MODEL", ""); set_logic_family(owner.logic_family()); if (logic_family() == null) { throw new nl_exception(MF_NULLPTR_FAMILY(this.name(), "<owner logic family>")); } }
public logic_input_t(device_t dev, string aname, nldelegate delegate_) : base(dev, aname, state_e.STATE_INP_ACTIVE, delegate_) { state().setup().register_term(this); }
tristate_output_t(device_t dev, string aname, bool force_logic) : base(dev, aname) { throw new emu_unimplemented();
public logic_t(device_t dev, string aname, state_e terminal_state, nldelegate delegate_) : base(dev, aname, terminal_state, delegate_) { m_logic_family = dev.logic_family(); //, logic_family_t(dev.logic_family()) }