From e79a371f768c8b3ebe7af0c84a1dff06f80851b1 Mon Sep 17 00:00:00 2001 From: steve Date: Fri, 31 Aug 2001 22:58:39 +0000 Subject: [PATCH] Support DFF CE inputs. --- ivl_target.h | 7 +++++-- t-dll-api.cc | 6 +++++- t-dll.cc | 17 ++++++++++++++++- t-dll.h | 7 +++++-- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/ivl_target.h b/ivl_target.h index 75c1646c5..d317deb42 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.78 2001/08/28 04:07:17 steve Exp $" +#ident "$Id: ivl_target.h,v 1.79 2001/08/31 22:58:39 steve Exp $" #endif #ifdef __cplusplus @@ -541,7 +541,7 @@ extern unsigned ivl_lpm_width(ivl_lpm_t net); /* IVL_LPM_FF IVL_LPM_RAM */ extern ivl_nexus_t ivl_lpm_clk(ivl_lpm_t net); - /* IVL_LPM_RAM */ + /* IVL_LPM_FF IVL_LPM_RAM */ extern ivl_nexus_t ivl_lpm_enable(ivl_lpm_t net); /* IVL_LPM_ADD IVL_LPM_FF IVL_LPM_MULT IVL_LPM_RAM IVL_LPM_SUB */ extern ivl_nexus_t ivl_lpm_data(ivl_lpm_t net, unsigned idx); @@ -944,6 +944,9 @@ _END_DECL /* * $Log: ivl_target.h,v $ + * Revision 1.79 2001/08/31 22:58:39 steve + * Support DFF CE inputs. + * * Revision 1.78 2001/08/28 04:07:17 steve * Add some ivl_target convenience functions. * diff --git a/t-dll-api.cc b/t-dll-api.cc index 9290ede42..688ed128d 100644 --- a/t-dll-api.cc +++ b/t-dll-api.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-api.cc,v 1.64 2001/08/28 04:07:18 steve Exp $" +#ident "$Id: t-dll-api.cc,v 1.65 2001/08/31 22:58:40 steve Exp $" #endif # include "config.h" @@ -506,6 +506,7 @@ extern "C" ivl_nexus_t ivl_lpm_enable(ivl_lpm_t net) assert(net); switch (net->type) { case IVL_LPM_RAM: + case IVL_LPM_FF: return net->u_.ff.we; default: assert(0); @@ -1351,6 +1352,9 @@ extern "C" ivl_statement_t ivl_stmt_sub_stmt(ivl_statement_t net) /* * $Log: t-dll-api.cc,v $ + * Revision 1.65 2001/08/31 22:58:40 steve + * Support DFF CE inputs. + * * Revision 1.64 2001/08/28 04:07:18 steve * Add some ivl_target convenience functions. * diff --git a/t-dll.cc b/t-dll.cc index 12bc178e7..aecb7d38b 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.58 2001/08/28 04:07:41 steve Exp $" +#ident "$Id: t-dll.cc,v 1.59 2001/08/31 22:58:39 steve Exp $" #endif # include "config.h" @@ -922,6 +922,18 @@ void dll_target::lpm_ff(const NetFF*net) assert(obj->u_.ff.clk); nexus_lpm_add(obj->u_.ff.clk, obj, 0, IVL_DR_HiZ, IVL_DR_HiZ); + /* If there is a clock enable, then connect it up to the FF + device. */ + if (net->pin_Enable().is_linked()) { + nex = net->pin_Enable().nexus(); + assert(nex->t_cookie()); + obj->u_.ff.we = (ivl_nexus_t) nex->t_cookie(); + assert(obj->u_.ff.we); + nexus_lpm_add(obj->u_.ff.we, obj, 0, IVL_DR_HiZ, IVL_DR_HiZ); + } else { + obj->u_.ff.we = 0; + } + if (obj->u_.ff.width == 1) { nex = net->pin_Q(0).nexus(); assert(nex->t_cookie()); @@ -1486,6 +1498,9 @@ extern const struct target tgt_dll = { "dll", &dll_target_obj }; /* * $Log: t-dll.cc,v $ + * Revision 1.59 2001/08/31 22:58:39 steve + * Support DFF CE inputs. + * * Revision 1.58 2001/08/28 04:07:41 steve * Add some ivl_target convenience functions. * diff --git a/t-dll.h b/t-dll.h index 06e90b91c..ac8f132e7 100644 --- a/t-dll.h +++ b/t-dll.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: t-dll.h,v 1.61 2001/08/28 04:07:41 steve Exp $" +#ident "$Id: t-dll.h,v 1.62 2001/08/31 22:58:40 steve Exp $" #endif # include "target.h" @@ -242,7 +242,7 @@ struct ivl_lpm_s { unsigned short width; unsigned short swid; // ram only ivl_nexus_t clk; - ivl_nexus_t we; // ram only ?? + ivl_nexus_t we; union { ivl_nexus_t*pins; ivl_nexus_t pin; @@ -562,6 +562,9 @@ struct ivl_statement_s { /* * $Log: t-dll.h,v $ + * Revision 1.62 2001/08/31 22:58:40 steve + * Support DFF CE inputs. + * * Revision 1.61 2001/08/28 04:07:41 steve * Add some ivl_target convenience functions. *