Count different types of functors.

This commit is contained in:
steve 2002-07-05 20:08:44 +00:00
parent d0dfe2e7e7
commit 54b96ea7bd
9 changed files with 66 additions and 14 deletions

View File

@ -17,12 +17,19 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: bufif.cc,v 1.6 2001/12/19 23:43:03 steve Exp $"
#ident "$Id: bufif.cc,v 1.7 2002/07/05 20:08:44 steve Exp $"
#endif
# include "bufif.h"
# include "functor.h"
# include "schedule.h"
# include "statistics.h"
vvp_bufif_s::vvp_bufif_s(bool en_invert, bool out_invert)
: pol_(en_invert? 1 : 0), inv_(out_invert? 1 : 0)
{
count_functors_bufif += 1;
}
void vvp_bufif_s::set(vvp_ipoint_t ptr, bool push, unsigned v, unsigned)
{
@ -91,6 +98,9 @@ void vvp_bufif_s::set(vvp_ipoint_t ptr, bool push, unsigned v, unsigned)
/*
* $Log: bufif.cc,v $
* Revision 1.7 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.6 2001/12/19 23:43:03 steve
* clarify bufif output strenghts.
*

View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: bufif.h,v 1.3 2001/12/14 06:03:17 steve Exp $"
#ident "$Id: bufif.h,v 1.4 2002/07/05 20:08:44 steve Exp $"
#endif
# include "functor.h"
@ -27,8 +27,7 @@
class vvp_bufif_s : public functor_s {
public:
vvp_bufif_s(bool en_invert, bool out_invert)
: pol_(en_invert? 1 : 0), inv_(out_invert? 1 : 0) {}
vvp_bufif_s(bool en_invert, bool out_invert);
virtual void set(vvp_ipoint_t i, bool push, unsigned val, unsigned str);
@ -39,6 +38,9 @@ class vvp_bufif_s : public functor_s {
/*
* $Log: bufif.h,v $
* Revision 1.4 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.3 2001/12/14 06:03:17 steve
* Arrange bufif to support notif as well.
*

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: compile.cc,v 1.134 2002/07/05 17:14:15 steve Exp $"
#ident "$Id: compile.cc,v 1.135 2002/07/05 20:08:44 steve Exp $"
#endif
# include "arith.h"
@ -32,6 +32,7 @@
# include "schedule.h"
# include "vpi_priv.h"
# include "parse_misc.h"
# include "statistics.h"
#ifdef HAVE_MALLOC_H
# include <malloc.h>
#endif
@ -1377,10 +1378,11 @@ void compile_variable(char*label, char*name, int msb, int lsb,
vvp_ipoint_t fdx = functor_allocate(wid);
define_functor_symbol(label, fdx);
functor_t fu = new var_functor_s [wid];
for (unsigned idx = 0 ; idx < wid ; idx += 1) {
functor_t fu = new var_functor_s;
functor_define(ipoint_index(fdx, idx), fu);
functor_define(ipoint_index(fdx, idx), fu+idx);
}
count_functors_var += wid;
/* Make the vpiHandle for the reg. */
vvp_fvector_t vec = vvp_fvector_continuous_new(wid, fdx);
@ -1421,6 +1423,9 @@ void compile_net(char*label, char*name, int msb, int lsb, bool signed_flag,
/*
* $Log: compile.cc,v $
* Revision 1.135 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.134 2002/07/05 17:14:15 steve
* Names of vpi objects allocated as vpip_strings.
*

View File

@ -17,14 +17,14 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: logic.cc,v 1.8 2002/03/17 05:48:49 steve Exp $"
#ident "$Id: logic.cc,v 1.9 2002/07/05 20:08:44 steve Exp $"
#endif
# include "logic.h"
# include "compile.h"
# include "bufif.h"
# include "npmos.h"
# include "statistics.h"
# include <string.h>
# include <assert.h>
# include <stdlib.h>
@ -32,6 +32,7 @@
# include <malloc.h>
#endif
/*
* Implementation of the table functor, which provides logic with up
* to 4 inputs.
@ -40,6 +41,7 @@
table_functor_s::table_functor_s(truth_t t, unsigned str0, unsigned str1)
: table(t)
{
count_functors_table += 1;
assert(str0 <= 7);
assert(str1 <= 7);
odrive0 = str0;
@ -162,6 +164,9 @@ void compile_functor(char*label, char*type,
/*
* $Log: logic.cc,v $
* Revision 1.9 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.8 2002/03/17 05:48:49 steve
* Do not push values through logic gates.
*

View File

@ -19,10 +19,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: logic.h,v 1.3 2002/01/12 04:02:16 steve Exp $"
#ident "$Id: logic.h,v 1.4 2002/07/05 20:08:44 steve Exp $"
#endif
# include "functor.h"
# include <stddef.h>
/*
* Table driven functor. oval = table[ival];
@ -62,6 +63,9 @@ extern const unsigned char ft_var[];
/*
* $Log: logic.h,v $
* Revision 1.4 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.3 2002/01/12 04:02:16 steve
* Support the BUFZ logic device.
*

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: main.cc,v 1.27 2002/07/05 17:14:15 steve Exp $"
#ident "$Id: main.cc,v 1.28 2002/07/05 20:08:44 steve Exp $"
#endif
# include "config.h"
@ -239,6 +239,10 @@ int main(int argc, char*argv[])
if (verbose_flag) {
fprintf(stderr, " ... %8lu functors\n", count_functors);
fprintf(stderr, " %8lu table\n", count_functors_table);
fprintf(stderr, " %8lu bufif\n", count_functors_bufif);
fprintf(stderr, " %8lu resolv\n", count_functors_resolv);
fprintf(stderr, " %8lu variable\n", count_functors_var);
fprintf(stderr, " ... %8lu opcodes (%lu bytes)\n",
count_opcodes, size_opcodes);
fprintf(stderr, " ... %8lu nets\n", count_vpi_nets);
@ -275,6 +279,9 @@ int main(int argc, char*argv[])
/*
* $Log: main.cc,v $
* Revision 1.28 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.27 2002/07/05 17:14:15 steve
* Names of vpi objects allocated as vpip_strings.
*

View File

@ -17,11 +17,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: resolv.cc,v 1.12 2001/12/18 05:32:11 steve Exp $"
#ident "$Id: resolv.cc,v 1.13 2002/07/05 20:08:44 steve Exp $"
#endif
# include "resolv.h"
# include "schedule.h"
# include "statistics.h"
# include <assert.h>
/*
@ -135,6 +136,7 @@ static unsigned blend(unsigned a, unsigned b)
resolv_functor_s::resolv_functor_s(unsigned char pull)
{
count_functors_resolv += 1;
istr[0]=istr[1]=istr[2]=istr[3]=StX;
hiz_ = pull;
}
@ -201,6 +203,9 @@ void resolv_functor_s::debug_print(vvp_ipoint_t fnc)
/*
* $Log: resolv.cc,v $
* Revision 1.13 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.12 2001/12/18 05:32:11 steve
* Improved functor debug dumps.
*

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: statistics.cc,v 1.3 2002/07/05 17:14:15 steve Exp $"
#ident "$Id: statistics.cc,v 1.4 2002/07/05 20:08:44 steve Exp $"
#endif
# include "statistics.h"
@ -28,6 +28,10 @@
unsigned long count_opcodes = 0;
unsigned long count_functors = 0;
unsigned long count_functors_table = 0;
unsigned long count_functors_bufif = 0;
unsigned long count_functors_resolv= 0;
unsigned long count_functors_var = 0;
unsigned long count_vpi_nets = 0;
@ -40,6 +44,9 @@ size_t size_opcodes = 0;
/*
* $Log: statistics.cc,v $
* Revision 1.4 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.3 2002/07/05 17:14:15 steve
* Names of vpi objects allocated as vpip_strings.
*

View File

@ -19,13 +19,17 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: statistics.h,v 1.3 2002/07/05 17:14:15 steve Exp $"
#ident "$Id: statistics.h,v 1.4 2002/07/05 20:08:44 steve Exp $"
#endif
# include <stddef.h>
extern unsigned long count_opcodes;
extern unsigned long count_functors;
extern unsigned long count_functors_table;
extern unsigned long count_functors_bufif;
extern unsigned long count_functors_resolv;
extern unsigned long count_functors_var;
extern unsigned long count_vpi_nets;
extern unsigned long count_vpi_scopes;
extern unsigned long count_vpi_memories;
@ -34,6 +38,9 @@ extern size_t size_opcodes;
/*
* $Log: statistics.h,v $
* Revision 1.4 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.3 2002/07/05 17:14:15 steve
* Names of vpi objects allocated as vpip_strings.
*