AND functor explicitly knows its width.
This commit is contained in:
parent
1c6be44724
commit
e3f300f4c2
16
vvp/logic.cc
16
vvp/logic.cc
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: logic.cc,v 1.30 2005/06/26 18:06:29 steve Exp $"
|
#ident "$Id: logic.cc,v 1.31 2005/06/26 21:08:38 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "logic.h"
|
# include "logic.h"
|
||||||
|
|
@ -80,6 +80,12 @@ void table_functor_s::recv_vec4(vvp_net_ptr_t ptr, const vvp_vector4_t&val)
|
||||||
vvp_send_vec4(ptr.ptr()->out, result);
|
vvp_send_vec4(ptr.ptr()->out, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vvp_fun_boolean_::vvp_fun_boolean_(unsigned wid)
|
||||||
|
{
|
||||||
|
for (unsigned idx = 0 ; idx < 4 ; idx += 1)
|
||||||
|
input_[idx] = vvp_vector4_t(wid);
|
||||||
|
}
|
||||||
|
|
||||||
vvp_fun_boolean_::~vvp_fun_boolean_()
|
vvp_fun_boolean_::~vvp_fun_boolean_()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -95,7 +101,8 @@ void vvp_fun_boolean_::recv_vec4(vvp_net_ptr_t ptr, const vvp_vector4_t&bit)
|
||||||
schedule_generic(this, 0, false);
|
schedule_generic(this, 0, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
vvp_fun_and::vvp_fun_and()
|
vvp_fun_and::vvp_fun_and(unsigned wid)
|
||||||
|
: vvp_fun_boolean_(wid)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -260,7 +267,7 @@ void compile_functor(char*label, char*type, unsigned width,
|
||||||
obj = new table_functor_s(ft_OR);
|
obj = new table_functor_s(ft_OR);
|
||||||
|
|
||||||
} else if (strcmp(type, "AND") == 0) {
|
} else if (strcmp(type, "AND") == 0) {
|
||||||
obj = new vvp_fun_and();
|
obj = new vvp_fun_and(width);
|
||||||
|
|
||||||
} else if (strcmp(type, "BUF") == 0) {
|
} else if (strcmp(type, "BUF") == 0) {
|
||||||
obj = new vvp_fun_buf();
|
obj = new vvp_fun_buf();
|
||||||
|
|
@ -370,6 +377,9 @@ void compile_functor(char*label, char*type, unsigned width,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: logic.cc,v $
|
* $Log: logic.cc,v $
|
||||||
|
* Revision 1.31 2005/06/26 21:08:38 steve
|
||||||
|
* AND functor explicitly knows its width.
|
||||||
|
*
|
||||||
* Revision 1.30 2005/06/26 18:06:29 steve
|
* Revision 1.30 2005/06/26 18:06:29 steve
|
||||||
* AND gates propogate through scheduler, not directly.
|
* AND gates propogate through scheduler, not directly.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,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
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: logic.h,v 1.20 2005/06/26 18:06:30 steve Exp $"
|
#ident "$Id: logic.h,v 1.21 2005/06/26 21:08:38 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "vvp_net.h"
|
# include "vvp_net.h"
|
||||||
|
|
@ -52,6 +52,7 @@ class table_functor_s: public vvp_net_fun_t {
|
||||||
class vvp_fun_boolean_ : public vvp_net_fun_t, protected vvp_gen_event_s {
|
class vvp_fun_boolean_ : public vvp_net_fun_t, protected vvp_gen_event_s {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
explicit vvp_fun_boolean_(unsigned wid);
|
||||||
~vvp_fun_boolean_();
|
~vvp_fun_boolean_();
|
||||||
void recv_vec4(vvp_net_ptr_t p, const vvp_vector4_t&bit);
|
void recv_vec4(vvp_net_ptr_t p, const vvp_vector4_t&bit);
|
||||||
|
|
||||||
|
|
@ -63,7 +64,7 @@ class vvp_fun_boolean_ : public vvp_net_fun_t, protected vvp_gen_event_s {
|
||||||
class vvp_fun_and : public vvp_fun_boolean_ {
|
class vvp_fun_and : public vvp_fun_boolean_ {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit vvp_fun_and();
|
explicit vvp_fun_and(unsigned wid);
|
||||||
~vvp_fun_and();
|
~vvp_fun_and();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -142,6 +143,9 @@ extern const unsigned char ft_XOR[];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: logic.h,v $
|
* $Log: logic.h,v $
|
||||||
|
* Revision 1.21 2005/06/26 21:08:38 steve
|
||||||
|
* AND functor explicitly knows its width.
|
||||||
|
*
|
||||||
* Revision 1.20 2005/06/26 18:06:30 steve
|
* Revision 1.20 2005/06/26 18:06:30 steve
|
||||||
* AND gates propogate through scheduler, not directly.
|
* AND gates propogate through scheduler, not directly.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue