trunk/src/emu/machine/netlist.h
| r17718 | r17719 | |
| 211 | 211 | friend bool operator>=(const netlist_time &left, const netlist_time &right); |
| 212 | 212 | friend bool operator<=(const netlist_time &left, const netlist_time &right); |
| 213 | 213 | |
| 214 | | inline netlist_time &operator=(const netlist_time right) { m_time = right.m_time; return *this; } |
| 214 | inline netlist_time &operator=(const netlist_time &right) { m_time = right.m_time; return *this; } |
| 215 | 215 | inline netlist_time &operator+=(const netlist_time &right) { m_time += right.m_time; return *this; } |
| 216 | 216 | |
| 217 | 217 | inline const INTERNALTYPE as_raw() const { return m_time; } |
| r17718 | r17719 | |
| 540 | 540 | */ |
| 541 | 541 | ATTR_HOT inline const net_sig_t Q() const { return m_Q; } |
| 542 | 542 | |
| 543 | | ATTR_HOT inline void register_in_listPS(const netlist_time delay_ps); |
| 543 | ATTR_HOT inline void register_in_listPS(const netlist_time &delay_ps); |
| 544 | 544 | |
| 545 | | ATTR_HOT inline void set_Q_PS(const net_sig_t newQ, const netlist_time delay_ps) |
| 545 | ATTR_HOT inline void set_Q_PS(const net_sig_t newQ, const netlist_time &delay_ps) |
| 546 | 546 | { |
| 547 | 547 | if (newQ != m_new_Q) |
| 548 | 548 | { |
| r17718 | r17719 | |
| 550 | 550 | register_in_listPS(delay_ps); |
| 551 | 551 | } |
| 552 | 552 | } |
| 553 | | ATTR_HOT inline void set_Q_NoCheckPS(const net_sig_t val, const netlist_time delay_ps) |
| 553 | ATTR_HOT inline void set_Q_NoCheckPS(const net_sig_t val, const netlist_time &delay_ps) |
| 554 | 554 | { |
| 555 | 555 | m_new_Q = val; |
| 556 | 556 | register_in_listPS(delay_ps); |
| 557 | 557 | } |
| 558 | 558 | |
| 559 | | ATTR_HOT inline void set_Q_PS_Analog(const double newQ, const netlist_time delay_ps) |
| 559 | ATTR_HOT inline void set_Q_PS_Analog(const double newQ, const netlist_time &delay_ps) |
| 560 | 560 | { |
| 561 | 561 | if (newQ != m_new_Q_analog) |
| 562 | 562 | { |
| r17718 | r17719 | |
| 564 | 564 | register_in_listPS(delay_ps); |
| 565 | 565 | } |
| 566 | 566 | } |
| 567 | | ATTR_HOT inline void set_Q_NoCheckPS_Analog(const double val, const netlist_time delay_ps) |
| 567 | ATTR_HOT inline void set_Q_NoCheckPS_Analog(const double val, const netlist_time &delay_ps) |
| 568 | 568 | { |
| 569 | 569 | m_new_Q_analog = val; |
| 570 | 570 | register_in_listPS(delay_ps); |
| r17718 | r17719 | |
| 606 | 606 | ATTR_COLD void initial(const net_sig_t val) { m_Q = val; m_new_Q = val; m_last_Q = !val; } |
| 607 | 607 | ATTR_HOT inline void clear() { set_Q_PS(0, netlist_time::zero); } |
| 608 | 608 | ATTR_HOT inline void set() { set_Q_PS(1, netlist_time::zero); } |
| 609 | | ATTR_HOT inline void setToPS(const UINT8 val, const netlist_time delay_ps) { set_Q_PS(val, delay_ps); } |
| 610 | | ATTR_HOT inline void setToNoCheckPS(const UINT8 val, const netlist_time delay_ps) { set_Q_NoCheckPS(val, delay_ps); } |
| 609 | ATTR_HOT inline void setToPS(const UINT8 val, const netlist_time &delay_ps) { set_Q_PS(val, delay_ps); } |
| 610 | ATTR_HOT inline void setToNoCheckPS(const UINT8 val, const netlist_time &delay_ps) { set_Q_NoCheckPS(val, delay_ps); } |
| 611 | 611 | ATTR_COLD inline void set_levels(const double low, const double high) |
| 612 | 612 | { |
| 613 | 613 | m_low_V = low; |
| r17718 | r17719 | |
| 633 | 633 | : net_output_t(OUTPUT | SIGNAL_ANALOG) { } |
| 634 | 634 | |
| 635 | 635 | ATTR_COLD void initial(double val) { m_Q_analog = val; m_new_Q_analog = val; } |
| 636 | | ATTR_HOT inline void setToPS(const double val, const netlist_time delay_ps) { set_Q_PS_Analog(val,delay_ps); } |
| 637 | | ATTR_HOT inline void setToNoCheckPS(const double val, const netlist_time delay_ps) { set_Q_NoCheckPS_Analog(val,delay_ps); } |
| 636 | ATTR_HOT inline void setToPS(const double val, const netlist_time &delay_ps) { set_Q_PS_Analog(val,delay_ps); } |
| 637 | ATTR_HOT inline void setToNoCheckPS(const double val, const netlist_time &delay_ps) { set_Q_NoCheckPS_Analog(val,delay_ps); } |
| 638 | 638 | }; |
| 639 | 639 | |
| 640 | 640 | // ---------------------------------------------------------------------------------------- |
| r17718 | r17719 | |
| 902 | 902 | |
| 903 | 903 | void set_clock_freq(UINT64 clockfreq); |
| 904 | 904 | |
| 905 | | ATTR_HOT inline void register_in_listPS1(net_output_t *out, const netlist_time attime) |
| 905 | ATTR_HOT inline void register_in_listPS1(net_output_t *out, const netlist_time &attime) |
| 906 | 906 | { |
| 907 | 907 | m_queue.push(queue_t::entry_t(attime, out)); |
| 908 | 908 | } |
| r17718 | r17719 | |
| 1015 | 1015 | } |
| 1016 | 1016 | |
| 1017 | 1017 | |
| 1018 | | ATTR_HOT inline void net_output_t::register_in_listPS(const netlist_time delay_ps) |
| 1018 | ATTR_HOT inline void net_output_t::register_in_listPS(const netlist_time &delay_ps) |
| 1019 | 1019 | { |
| 1020 | 1020 | m_time = m_netlist->time() + delay_ps; |
| 1021 | 1021 | m_in_queue = 0; /* not queued */ |