From 555d447180d14a340e870d95aae80cba1092e3a2 Mon Sep 17 00:00:00 2001 From: steve Date: Sat, 4 Sep 1999 01:57:15 +0000 Subject: [PATCH] Generate fake adder code in vvm. --- netlist.cc | 10 +++++++++- t-vvm.cc | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/netlist.cc b/netlist.cc index b5b3cabd2a..730cd20464 100644 --- a/netlist.cc +++ b/netlist.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: netlist.cc,v 1.56 1999/09/03 04:28:38 steve Exp $" +#ident "$Id: netlist.cc,v 1.57 1999/09/04 01:57:15 steve Exp $" #endif # include @@ -329,6 +329,11 @@ NetAddSub::~NetAddSub() { } +unsigned NetAddSub::width()const +{ + return (pin_count() - 6) / 3; +} + NetObj::Link& NetAddSub::pin_DataA(unsigned idx) { idx = 6 + idx*3; @@ -1749,6 +1754,9 @@ NetNet* Design::find_signal(bool (*func)(const NetNet*)) /* * $Log: netlist.cc,v $ + * Revision 1.57 1999/09/04 01:57:15 steve + * Generate fake adder code in vvm. + * * Revision 1.56 1999/09/03 04:28:38 steve * elaborate the binary plus operator. * diff --git a/t-vvm.cc b/t-vvm.cc index 06f55e2c8c..bb9ba3d717 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) -#ident "$Id: t-vvm.cc,v 1.37 1999/09/01 20:46:19 steve Exp $" +#ident "$Id: t-vvm.cc,v 1.38 1999/09/04 01:57:15 steve Exp $" #endif # include @@ -44,6 +44,9 @@ class target_vvm : public target_t { virtual void memory(ostream&os, const NetMemory*); virtual void task_def(ostream&os, const NetTaskDef*); virtual void func_def(ostream&os, const NetFuncDef*); + + virtual void lpm_add_sub(ostream&os, const NetAddSub*); + virtual void logic(ostream&os, const NetLogic*); virtual void bufz(ostream&os, const NetBUFZ*); virtual void udp(ostream&os, const NetUDP*); @@ -607,6 +610,13 @@ void target_vvm::emit_gate_outputfun_(const NetNode*gate) delayed << "}" << endl; } +void target_vvm::lpm_add_sub(ostream&os, const NetAddSub*gate) +{ + os << "#error \"adders not yet supported in vvm.\"" << endl; + os << "static vvm_add_sub<" << gate->width() << "> " << + mangle(gate->name()) << ";" << endl; +} + void target_vvm::logic(ostream&os, const NetLogic*gate) { os << "static void " << mangle(gate->name()) << @@ -1401,6 +1411,9 @@ extern const struct target tgt_vvm = { }; /* * $Log: t-vvm.cc,v $ + * Revision 1.38 1999/09/04 01:57:15 steve + * Generate fake adder code in vvm. + * * Revision 1.37 1999/09/01 20:46:19 steve * Handle recursive functions and arbitrary function * references to other functions, properly pass