Comments about MUX synthesis.

This commit is contained in:
steve 2001-12-18 05:34:02 +00:00
parent fd0cb30a4d
commit dddbeb957a
2 changed files with 18 additions and 3 deletions

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/ */
#if !defined(WINNT) && !defined(macintosh) #if !defined(WINNT) && !defined(macintosh)
#ident "$Id: expr_synth.cc,v 1.29 2001/11/29 01:58:18 steve Exp $" #ident "$Id: expr_synth.cc,v 1.30 2001/12/18 05:34:02 steve Exp $"
#endif #endif
# include "config.h" # include "config.h"
@ -481,7 +481,12 @@ NetNet* NetEUReduce::synthesize(Design*des)
return osig; return osig;
} }
/*
* Synthesize a ?: operator an a NetMux device. Connect the condition
* expression to the select input, then connect the true and false
* expressions to the B and A inputs. This way, when the select input
* is one, the B input, which is the true expression, is selected.
*/
NetNet* NetETernary::synthesize(Design *des) NetNet* NetETernary::synthesize(Design *des)
{ {
NetNet*csig = cond_->synthesize(des); NetNet*csig = cond_->synthesize(des);
@ -562,6 +567,9 @@ NetNet* NetESignal::synthesize(Design*des)
/* /*
* $Log: expr_synth.cc,v $ * $Log: expr_synth.cc,v $
* Revision 1.30 2001/12/18 05:34:02 steve
* Comments about MUX synthesis.
*
* Revision 1.29 2001/11/29 01:58:18 steve * Revision 1.29 2001/11/29 01:58:18 steve
* Handle part selects in l-values of DFF devices. * Handle part selects in l-values of DFF devices.
* *

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/ */
#if !defined(WINNT) && !defined(macintosh) #if !defined(WINNT) && !defined(macintosh)
#ident "$Id: t-dll.cc,v 1.73 2001/12/15 02:13:17 steve Exp $" #ident "$Id: t-dll.cc,v 1.74 2001/12/18 05:34:02 steve Exp $"
#endif #endif
# include "config.h" # include "config.h"
@ -1347,6 +1347,10 @@ void dll_target::lpm_mult(const NetMult*net)
scope_add_lpm(obj->scope, obj); scope_add_lpm(obj->scope, obj);
} }
/*
* Hook up the mux devices so that the select expression selects the
* correct sub-expression with the ivl_lpm_data2 function.
*/
void dll_target::lpm_mux(const NetMux*net) void dll_target::lpm_mux(const NetMux*net)
{ {
ivl_lpm_t obj = new struct ivl_lpm_s; ivl_lpm_t obj = new struct ivl_lpm_s;
@ -1719,6 +1723,9 @@ extern const struct target tgt_dll = { "dll", &dll_target_obj };
/* /*
* $Log: t-dll.cc,v $ * $Log: t-dll.cc,v $
* Revision 1.74 2001/12/18 05:34:02 steve
* Comments about MUX synthesis.
*
* Revision 1.73 2001/12/15 02:13:17 steve * Revision 1.73 2001/12/15 02:13:17 steve
* The IVL_SIT_WIRE type does not exist, it is a * The IVL_SIT_WIRE type does not exist, it is a
* synonym for IVL_SIT_TRI. * synonym for IVL_SIT_TRI.