Implement recv_vec8_pv method in island ports.
Islands are vec8 devices, so we certainly need the recv_vec8_pv method implemented in island_port classes.
This commit is contained in:
parent
bf4e7454eb
commit
261cfd1dae
|
|
@ -186,19 +186,7 @@ void vvp_island_port::recv_vec4_pv(vvp_net_ptr_t port, const vvp_vector4_t&bit,
|
||||||
vvp_context_t)
|
vvp_context_t)
|
||||||
{
|
{
|
||||||
vvp_vector8_t tmp(bit, 6, 6);
|
vvp_vector8_t tmp(bit, 6, 6);
|
||||||
if (invalue.size()==0) {
|
recv_vec8_pv(port, tmp, base, wid, vwid);
|
||||||
assert(tmp.size() == wid);
|
|
||||||
invalue = part_expand(tmp, vwid, base);
|
|
||||||
} else {
|
|
||||||
assert(invalue.size() == vwid);
|
|
||||||
for (unsigned idx = 0 ; idx < wid ; idx += 1) {
|
|
||||||
if ((base+idx) >= invalue.size())
|
|
||||||
break;
|
|
||||||
invalue.set_bit(base+idx, tmp.value(idx));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
island_->flag_island();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -211,6 +199,24 @@ void vvp_island_port::recv_vec8(vvp_net_ptr_t port, const vvp_vector8_t&bit)
|
||||||
island_->flag_island();
|
island_->flag_island();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vvp_island_port::recv_vec8_pv(vvp_net_ptr_t p, const vvp_vector8_t&bit,
|
||||||
|
unsigned base, unsigned wid, unsigned vwid)
|
||||||
|
{
|
||||||
|
if (invalue.size() == 0) {
|
||||||
|
assert(bit.size() == wid);
|
||||||
|
invalue = part_expand(bit, vwid, base);
|
||||||
|
} else {
|
||||||
|
assert(invalue.size() == vwid);
|
||||||
|
for (unsigned idx = 0; idx < wid ; idx += 1) {
|
||||||
|
if ((base+idx) >= vwid)
|
||||||
|
break;
|
||||||
|
invalue.set_bit(base+idx, bit.value(idx));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
island_->flag_island();
|
||||||
|
}
|
||||||
|
|
||||||
vvp_island_branch::~vvp_island_branch()
|
vvp_island_branch::~vvp_island_branch()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,8 @@ class vvp_island_port : public vvp_net_fun_t {
|
||||||
unsigned base, unsigned wid, unsigned vwid,
|
unsigned base, unsigned wid, unsigned vwid,
|
||||||
vvp_context_t);
|
vvp_context_t);
|
||||||
virtual void recv_vec8(vvp_net_ptr_t port, const vvp_vector8_t&bit);
|
virtual void recv_vec8(vvp_net_ptr_t port, const vvp_vector8_t&bit);
|
||||||
|
virtual void recv_vec8_pv(vvp_net_ptr_t p, const vvp_vector8_t&bit,
|
||||||
|
unsigned base, unsigned wid, unsigned vwid);
|
||||||
|
|
||||||
vvp_vector8_t invalue;
|
vvp_vector8_t invalue;
|
||||||
vvp_vector8_t outvalue;
|
vvp_vector8_t outvalue;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue