diff --git a/design_dump.cc b/design_dump.cc index 866fe99a6..56baa851b 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.112 2001/04/22 23:09:46 steve Exp $" +#ident "$Id: design_dump.cc,v 1.113 2001/04/29 20:19:10 steve Exp $" #endif /* @@ -298,6 +298,12 @@ void NetLogic::dump_node(ostream&o, unsigned ind) const case OR: o << "or"; break; + case PULLDOWN: + o << "pulldown"; + break; + case PULLUP: + o << "pullup"; + break; case RNMOS: o << "rnmos"; break; @@ -936,6 +942,9 @@ void Design::dump(ostream&o) const /* * $Log: design_dump.cc,v $ + * Revision 1.113 2001/04/29 20:19:10 steve + * Add pullup and pulldown devices. + * * Revision 1.112 2001/04/22 23:09:46 steve * More UDP consolidation from Stephan Boettcher. * diff --git a/elaborate.cc b/elaborate.cc index 308fb6803..2b2e33fe4 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.212 2001/04/28 23:18:08 steve Exp $" +#ident "$Id: elaborate.cc,v 1.213 2001/04/29 20:19:10 steve Exp $" #endif /* @@ -335,6 +335,14 @@ void PGBuiltin::elaborate(Design*des, const string&path) const cur[idx] = new NetLogic(scope, inm, pin_count(), NetLogic::PMOS); break; + case PULLDOWN: + cur[idx] = new NetLogic(scope, inm, pin_count(), + NetLogic::PULLDOWN); + break; + case PULLUP: + cur[idx] = new NetLogic(scope, inm, pin_count(), + NetLogic::PULLUP); + break; case XNOR: cur[idx] = new NetLogic(scope, inm, pin_count(), NetLogic::XNOR); @@ -2307,6 +2315,9 @@ Design* elaborate(const map&modules, /* * $Log: elaborate.cc,v $ + * Revision 1.213 2001/04/29 20:19:10 steve + * Add pullup and pulldown devices. + * * Revision 1.212 2001/04/28 23:18:08 steve * UDP instances need not have user supplied names. * diff --git a/ivl_target.h b/ivl_target.h index fd7c9f466..712049695 100644 --- a/ivl_target.h +++ b/ivl_target.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: ivl_target.h,v 1.55 2001/04/26 05:12:02 steve Exp $" +#ident "$Id: ivl_target.h,v 1.56 2001/04/29 20:19:10 steve Exp $" #endif #ifdef __cplusplus @@ -174,6 +174,8 @@ typedef enum ivl_logic_e { IVL_LO_NOTIF0, IVL_LO_NOTIF1, IVL_LO_OR, + IVL_LO_PULLDOWN, + IVL_LO_PULLUP, IVL_LO_RNMOS, IVL_LO_RPMOS, IVL_LO_PMOS, @@ -792,6 +794,9 @@ _END_DECL /* * $Log: ivl_target.h,v $ + * Revision 1.56 2001/04/29 20:19:10 steve + * Add pullup and pulldown devices. + * * Revision 1.55 2001/04/26 05:12:02 steve * Implement simple MUXZ for ?: operators. * diff --git a/netlist.h b/netlist.h index b32767870..627339438 100644 --- a/netlist.h +++ b/netlist.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: netlist.h,v 1.204 2001/04/24 02:23:58 steve Exp $" +#ident "$Id: netlist.h,v 1.205 2001/04/29 20:19:10 steve Exp $" #endif /* @@ -995,12 +995,17 @@ class NetConst : public NetNode { * 0 -- output * 1 -- input data * 2 -- enable + * + * The pullup and pulldown gates have no inputs at all, and pin0 is + * the output 1 or 0, depending on the gate type. It is the strength + * of that value that is important. */ class NetLogic : public NetNode { public: - enum TYPE { AND, BUF, BUFIF0, BUFIF1, NAND, NMOS, NOR, NOT, NOTIF0, - NOTIF1, OR, RNMOS, RPMOS, PMOS, XNOR, XOR }; + enum TYPE { AND, BUF, BUFIF0, BUFIF1, NAND, NMOS, NOR, NOT, + NOTIF0, NOTIF1, OR, PULLDOWN, PULLUP, RNMOS, RPMOS, + PMOS, XNOR, XOR }; explicit NetLogic(NetScope*s, const string&n, unsigned pins, TYPE t); @@ -2802,6 +2807,9 @@ extern ostream& operator << (ostream&, NetNet::Type); /* * $Log: netlist.h,v $ + * Revision 1.205 2001/04/29 20:19:10 steve + * Add pullup and pulldown devices. + * * Revision 1.204 2001/04/24 02:23:58 steve * Support for UDP devices in VVP (Stephen Boettcher) * diff --git a/t-dll.cc b/t-dll.cc index 3cb5b4091..fae87916d 100644 --- a/t-dll.cc +++ b/t-dll.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-dll.cc,v 1.36 2001/04/26 05:12:02 steve Exp $" +#ident "$Id: t-dll.cc,v 1.37 2001/04/29 20:19:10 steve Exp $" #endif # include "compiler.h" @@ -366,6 +366,12 @@ void dll_target::logic(const NetLogic*net) case NetLogic::OR: obj->type_ = IVL_LO_OR; break; + case NetLogic::PULLDOWN: + obj->type_ = IVL_LO_PULLDOWN; + break; + case NetLogic::PULLUP: + obj->type_ = IVL_LO_PULLUP; + break; case NetLogic::RNMOS: obj->type_ = IVL_LO_RNMOS; break; @@ -879,6 +885,9 @@ extern const struct target tgt_dll = { "dll", &dll_target_obj }; /* * $Log: t-dll.cc,v $ + * Revision 1.37 2001/04/29 20:19:10 steve + * Add pullup and pulldown devices. + * * Revision 1.36 2001/04/26 05:12:02 steve * Implement simple MUXZ for ?: operators. *