signal bits are referenced at run time by the vpiSignal struct.
This commit is contained in:
parent
dcaea50b8f
commit
9f84deeb56
16
t-vvm.cc
16
t-vvm.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-vvm.cc,v 1.124 2000/03/25 02:43:56 steve Exp $"
|
||||
#ident "$Id: t-vvm.cc,v 1.125 2000/03/25 05:02:24 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include <iostream>
|
||||
|
|
@ -833,11 +833,11 @@ void target_vvm::signal(ostream&os, const NetNet*sig)
|
|||
os << "static vvm_bitset_t<" << sig->pin_count() << "> " <<
|
||||
net_name<< "_bits; /* " << sig->name() <<
|
||||
" */" << endl;
|
||||
os << "static vvm_signal_t " << net_name << "(" << net_name <<
|
||||
"_bits.bits, " << sig->pin_count() << ");" << endl;
|
||||
os << "static vvm_signal_t " << net_name << ";" << endl;
|
||||
|
||||
init_code << " vpip_make_reg(&" << net_name <<
|
||||
", \"" << sig->name() << "\");" << endl;
|
||||
init_code << " vpip_make_reg(&" << net_name
|
||||
<< ", \"" << sig->name() << "\"," << net_name<<"_bits.bits, "
|
||||
<< sig->pin_count() << ");" << endl;
|
||||
|
||||
if (const NetScope*scope = sig->scope()) {
|
||||
string sname = mangle(scope->name()) + "_scope";
|
||||
|
|
@ -973,6 +973,9 @@ void target_vvm::emit_init_value_(const NetObj::Link&lnk, verinum::V val)
|
|||
if (! dynamic_cast<const NetObj*>(cur->get_obj()))
|
||||
continue;
|
||||
|
||||
if (dynamic_cast<const NetNet*>(cur->get_obj()))
|
||||
continue;
|
||||
|
||||
// Build an init statement for the link, that writes the
|
||||
// value.
|
||||
ostrstream line;
|
||||
|
|
@ -2387,6 +2390,9 @@ extern const struct target tgt_vvm = {
|
|||
};
|
||||
/*
|
||||
* $Log: t-vvm.cc,v $
|
||||
* Revision 1.125 2000/03/25 05:02:24 steve
|
||||
* signal bits are referenced at run time by the vpiSignal struct.
|
||||
*
|
||||
* Revision 1.124 2000/03/25 02:43:56 steve
|
||||
* Remove all remain vvm_bitset_t return values,
|
||||
* and disallow vvm_bitset_t copying.
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#if !defined(WINNT) && !defined(macintosh)
|
||||
#ident "$Id: vpi_priv.h,v 1.12 2000/03/22 04:26:41 steve Exp $"
|
||||
#ident "$Id: vpi_priv.h,v 1.13 2000/03/25 05:02:24 steve Exp $"
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
@ -258,7 +258,8 @@ struct __vpiNumberConst {
|
|||
* of the constructed object.
|
||||
*/
|
||||
extern vpiHandle vpip_make_iterator(unsigned nargs, vpiHandle*args);
|
||||
extern vpiHandle vpip_make_net(struct __vpiSignal*ref, const char*name);
|
||||
extern vpiHandle vpip_make_net(struct __vpiSignal*ref, const char*name,
|
||||
vpip_bit_t*bits, unsigned nbits);
|
||||
extern vpiHandle vpip_make_scope(struct __vpiScope*ref,
|
||||
int type_code,
|
||||
const char*name);
|
||||
|
|
@ -269,7 +270,8 @@ extern vpiHandle vpip_make_number_const(struct __vpiNumberConst*ref,
|
|||
unsigned nbits);
|
||||
extern vpiHandle vpip_make_memory(struct __vpiMemory*ref, const char*name,
|
||||
unsigned width, unsigned size);
|
||||
extern vpiHandle vpip_make_reg(struct __vpiSignal*ref, const char*name);
|
||||
extern vpiHandle vpip_make_reg(struct __vpiSignal*ref, const char*name,
|
||||
vpip_bit_t*bits, unsigned nbits);
|
||||
extern vpiHandle vpip_make_time_var(struct __vpiTimeVar*ref,
|
||||
const char*val);
|
||||
|
||||
|
|
@ -335,6 +337,9 @@ extern int vpip_finished();
|
|||
|
||||
/*
|
||||
* $Log: vpi_priv.h,v $
|
||||
* Revision 1.13 2000/03/25 05:02:24 steve
|
||||
* signal bits are referenced at run time by the vpiSignal struct.
|
||||
*
|
||||
* Revision 1.12 2000/03/22 04:26:41 steve
|
||||
* Replace the vpip_bit_t with a typedef and
|
||||
* define values for all the different bit
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#if !defined(WINNT) && !defined(macintosh)
|
||||
#ident "$Id: vpi_signal.c,v 1.7 2000/02/23 02:56:56 steve Exp $"
|
||||
#ident "$Id: vpi_signal.c,v 1.8 2000/03/25 05:02:25 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "vpi_priv.h"
|
||||
|
|
@ -75,10 +75,13 @@ static const struct __vpirt vpip_net_rt = {
|
|||
0
|
||||
};
|
||||
|
||||
vpiHandle vpip_make_net(struct __vpiSignal*ref, const char*name)
|
||||
vpiHandle vpip_make_net(struct __vpiSignal*ref, const char*name,
|
||||
vpip_bit_t*b, unsigned nb)
|
||||
{
|
||||
ref->base.vpi_type = &vpip_net_rt;
|
||||
ref->name = name;
|
||||
ref->bits = b;
|
||||
ref->nbits = nb;
|
||||
ref->monitor = 0;
|
||||
return &(ref->base);
|
||||
}
|
||||
|
|
@ -93,16 +96,22 @@ static const struct __vpirt vpip_reg_rt = {
|
|||
0
|
||||
};
|
||||
|
||||
vpiHandle vpip_make_reg(struct __vpiSignal*ref, const char*name)
|
||||
vpiHandle vpip_make_reg(struct __vpiSignal*ref, const char*name,
|
||||
vpip_bit_t*b, unsigned nb)
|
||||
{
|
||||
ref->base.vpi_type = &vpip_reg_rt;
|
||||
ref->name = name;
|
||||
ref->bits = b;
|
||||
ref->nbits = nb;
|
||||
ref->monitor = 0;
|
||||
return &(ref->base);
|
||||
}
|
||||
|
||||
/*
|
||||
* $Log: vpi_signal.c,v $
|
||||
* Revision 1.8 2000/03/25 05:02:25 steve
|
||||
* signal bits are referenced at run time by the vpiSignal struct.
|
||||
*
|
||||
* Revision 1.7 2000/02/23 02:56:56 steve
|
||||
* Macintosh compilers do not support ident.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -17,15 +17,15 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#if !defined(WINNT) && !defined(macintosh)
|
||||
#ident "$Id: vvm_signal.cc,v 1.2 2000/03/17 20:21:14 steve Exp $"
|
||||
#ident "$Id: vvm_signal.cc,v 1.3 2000/03/25 05:02:25 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "vvm_signal.h"
|
||||
|
||||
vvm_signal_t::vvm_signal_t(vpip_bit_t*b, unsigned nb)
|
||||
vvm_signal_t::vvm_signal_t()
|
||||
{
|
||||
bits = b;
|
||||
nbits = nb;
|
||||
bits = 0;
|
||||
nbits = 0;
|
||||
}
|
||||
|
||||
vvm_signal_t::~vvm_signal_t()
|
||||
|
|
@ -40,6 +40,7 @@ void vvm_signal_t::init_P(unsigned idx, vpip_bit_t val)
|
|||
|
||||
void vvm_signal_t::take_value(unsigned key, vpip_bit_t val)
|
||||
{
|
||||
assert(key < nbits);
|
||||
bits[key] = val;
|
||||
vpip_run_value_changes(this);
|
||||
}
|
||||
|
|
@ -54,6 +55,9 @@ vvm_ram_callback::~vvm_ram_callback()
|
|||
|
||||
/*
|
||||
* $Log: vvm_signal.cc,v $
|
||||
* Revision 1.3 2000/03/25 05:02:25 steve
|
||||
* signal bits are referenced at run time by the vpiSignal struct.
|
||||
*
|
||||
* Revision 1.2 2000/03/17 20:21:14 steve
|
||||
* Detemplatize the vvm_signal_t class.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#if !defined(WINNT) && !defined(macintosh)
|
||||
#ident "$Id: vvm_signal.h,v 1.5 2000/03/25 02:43:57 steve Exp $"
|
||||
#ident "$Id: vvm_signal.h,v 1.6 2000/03/25 05:02:25 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "vvm.h"
|
||||
|
|
@ -56,19 +56,21 @@ template <unsigned WIDTH> class vvm_bitset_t : public vvm_bits_t {
|
|||
/*
|
||||
* The vvm_signal_t template is the real object that handles the
|
||||
* receiving of assignments and doing whatever is done. It also
|
||||
* connects VPI to the C++/vvm design. The vvm_bitset_t stores the
|
||||
* actual bits, this just attaches the name and vpiSignal stuff to the
|
||||
* set.
|
||||
* connects VPI to the C++/vvm design. The actual bits are referenced
|
||||
* by the base vpiSignal structure.
|
||||
*/
|
||||
class vvm_signal_t : public __vpiSignal, public vvm_nexus::recvr_t {
|
||||
|
||||
public:
|
||||
vvm_signal_t(vpip_bit_t*b, unsigned nb);
|
||||
vvm_signal_t();
|
||||
~vvm_signal_t();
|
||||
|
||||
void init_P(unsigned idx, vpip_bit_t val);
|
||||
|
||||
void take_value(unsigned key, vpip_bit_t val);
|
||||
|
||||
private: // not implemented
|
||||
vvm_signal_t(const vvm_signal_t&);
|
||||
vvm_signal_t& operator= (const vvm_signal_t&);
|
||||
};
|
||||
|
||||
struct vvm_ram_callback {
|
||||
|
|
@ -144,6 +146,9 @@ class vvm_memory_t : public __vpiMemory {
|
|||
|
||||
/*
|
||||
* $Log: vvm_signal.h,v $
|
||||
* Revision 1.6 2000/03/25 05:02:25 steve
|
||||
* signal bits are referenced at run time by the vpiSignal struct.
|
||||
*
|
||||
* Revision 1.5 2000/03/25 02:43:57 steve
|
||||
* Remove all remain vvm_bitset_t return values,
|
||||
* and disallow vvm_bitset_t copying.
|
||||
|
|
|
|||
Loading…
Reference in New Issue