diff --git a/design_dump.cc b/design_dump.cc index 3bc40e592..52c98f588 100644 --- a/design_dump.cc +++ b/design_dump.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: design_dump.cc,v 1.105 2000/12/04 17:37:03 steve Exp $" +#ident "$Id: design_dump.cc,v 1.106 2000/12/10 06:41:59 steve Exp $" #endif /* @@ -228,7 +228,9 @@ void NetAssign_::dump_node(ostream&o, unsigned ind) const void NetBUFZ::dump_node(ostream&o, unsigned ind) const { o << setw(ind) << "" << "NetBUFZ: " << name() - << " scope=" << (scope()? scope()->name() : "") << endl; + << " scope=" << (scope()? scope()->name() : "") + << " delay=(" << rise_time() << "," << fall_time() << "," << + decay_time() << ")" << endl; dump_node_pins(o, ind+4); } @@ -994,6 +996,9 @@ void Design::dump(ostream&o) const /* * $Log: design_dump.cc,v $ + * Revision 1.106 2000/12/10 06:41:59 steve + * Support delays on continuous assignment from idents. (PR#40) + * * Revision 1.105 2000/12/04 17:37:03 steve * Add Attrib class for holding NetObj attributes. * diff --git a/elaborate.cc b/elaborate.cc index 90a0a2dab..8e4ac8565 100644 --- a/elaborate.cc +++ b/elaborate.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: elaborate.cc,v 1.199 2000/12/06 06:31:09 steve Exp $" +#ident "$Id: elaborate.cc,v 1.200 2000/12/10 06:41:59 steve Exp $" #endif /* @@ -118,7 +118,7 @@ void PGAssign::elaborate(Design*des, const string&path) const if (rid->pin_count() < cnt) cnt = rid->pin_count(); - if (rid->type() == lval->type()) { + if ((rid->type() == lval->type()) && (rise_time == 0)) { unsigned idx; for (idx = 0 ; idx < cnt; idx += 1) connect(lval->pin(idx), rid->pin(idx)); @@ -139,6 +139,9 @@ void PGAssign::elaborate(Design*des, const string&path) const des->local_symbol(path)); connect(lval->pin(idx), dev->pin(0)); connect(rid->pin(idx), dev->pin(1)); + dev->rise_time(rise_time); + dev->fall_time(fall_time); + dev->decay_time(decay_time); dev->pin(0).drive0(drive0); dev->pin(0).drive1(drive1); des->add_node(dev); @@ -2333,6 +2336,9 @@ Design* elaborate(const map&modules, /* * $Log: elaborate.cc,v $ + * Revision 1.200 2000/12/10 06:41:59 steve + * Support delays on continuous assignment from idents. (PR#40) + * * Revision 1.199 2000/12/06 06:31:09 steve * Check lvalue of procedural continuous assign (PR#29) * diff --git a/t-vvm.cc b/t-vvm.cc index 6fb50af5b..0ca2809a7 100644 --- a/t-vvm.cc +++ b/t-vvm.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: t-vvm.cc,v 1.187 2000/12/09 06:17:20 steve Exp $" +#ident "$Id: t-vvm.cc,v 1.188 2000/12/10 06:41:59 steve Exp $" #endif # include @@ -1906,8 +1906,8 @@ bool target_vvm::bufz(const NetBUFZ*gate) string nexus; unsigned ncode; - out << "static vvm_bufz " << mname << ";" << endl; - + out << "static vvm_bufz " << mname + << "(" << gate->rise_time() << ");" << endl; nexus = gate->pin(0).nexus()->name(); ncode = nexus_wire_map[nexus]; @@ -3370,6 +3370,9 @@ extern const struct target tgt_vvm = { }; /* * $Log: t-vvm.cc,v $ + * Revision 1.188 2000/12/10 06:41:59 steve + * Support delays on continuous assignment from idents. (PR#40) + * * Revision 1.187 2000/12/09 06:17:20 steve * unary expressions as parameters (PR#42, PR#68) * diff --git a/vvm/vvm_gates.cc b/vvm/vvm_gates.cc index 6e9040865..052180bd2 100644 --- a/vvm/vvm_gates.cc +++ b/vvm/vvm_gates.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: vvm_gates.cc,v 1.19 2000/11/11 01:52:09 steve Exp $" +#ident "$Id: vvm_gates.cc,v 1.20 2000/12/10 06:42:00 steve Exp $" #endif # include "vvm_gates.h" @@ -313,8 +313,8 @@ void vvm_bufif1::take_value(unsigned key, vpip_bit_t val) } } -vvm_bufz::vvm_bufz() -: vvm_1bit_out(0) +vvm_bufz::vvm_bufz(unsigned delay) +: vvm_1bit_out(delay) { } @@ -665,6 +665,9 @@ void vvm_notif1::take_value(unsigned key, vpip_bit_t val) /* * $Log: vvm_gates.cc,v $ + * Revision 1.20 2000/12/10 06:42:00 steve + * Support delays on continuous assignment from idents. (PR#40) + * * Revision 1.19 2000/11/11 01:52:09 steve * change set for support of nmos, pmos, rnmos, rpmos, notif0, and notif1 * change set to correct behavior of bufif0 and bufif1 diff --git a/vvm/vvm_gates.h b/vvm/vvm_gates.h index 2dce5a840..c5171e233 100644 --- a/vvm/vvm_gates.h +++ b/vvm/vvm_gates.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: vvm_gates.h,v 1.67 2000/11/11 01:52:09 steve Exp $" +#ident "$Id: vvm_gates.h,v 1.68 2000/12/10 06:42:00 steve Exp $" #endif # include "vvm.h" @@ -901,7 +901,7 @@ class vvm_udp_sequ1 : public vvm_udp_comb */ class vvm_bufz : public vvm_nexus::recvr_t, public vvm_1bit_out { public: - explicit vvm_bufz(); + explicit vvm_bufz(unsigned delay =0); ~vvm_bufz(); void init_I(unsigned idx, vpip_bit_t val); @@ -1006,6 +1006,9 @@ class vvm_posedge : public vvm_nexus::recvr_t { /* * $Log: vvm_gates.h,v $ + * Revision 1.68 2000/12/10 06:42:00 steve + * Support delays on continuous assignment from idents. (PR#40) + * * Revision 1.67 2000/11/11 01:52:09 steve * change set for support of nmos, pmos, rnmos, rpmos, notif0, and notif1 * change set to correct behavior of bufif0 and bufif1