Fix for GitHub issue #73 - allow for island ports in vpi_put_value.
In the special case that a net is attached to an island port, values driven onto the net via the VPI must go to the functor, not the filter, so that they propagate through the island.
This commit is contained in:
parent
935ee6137d
commit
e8225bd39e
|
|
@ -25,6 +25,7 @@
|
|||
# include "compile.h"
|
||||
# include "vpi_priv.h"
|
||||
# include "vvp_net_sig.h"
|
||||
# include "vvp_island.h"
|
||||
# include "schedule.h"
|
||||
# include "statistics.h"
|
||||
# include "config.h"
|
||||
|
|
@ -830,7 +831,7 @@ static vpiHandle signal_put_value(vpiHandle ref, s_vpi_value*vp, int flags)
|
|||
if (flags == vpiForceFlag) {
|
||||
vvp_vector2_t mask (vvp_vector2_t::FILL1, wid);
|
||||
rfp->node->force_vec4(val, mask);
|
||||
} else if (net_flag) {
|
||||
} else if (net_flag && !dynamic_cast<vvp_island_port*>(rfp->node->fun)) {
|
||||
rfp->node->send_vec4(val, vthread_get_wt_context());
|
||||
} else {
|
||||
vvp_send_vec4(dest, val, vthread_get_wt_context());
|
||||
|
|
|
|||
Loading…
Reference in New Issue