Skip to content

Commit

Permalink
Implement recv_vec8_pv method in island ports.
Browse files Browse the repository at this point in the history
Islands are vec8 devices, so we certainly need the recv_vec8_pv
method implemented in island_port classes.
  • Loading branch information
steveicarus committed Mar 16, 2010
1 parent bf4e745 commit 261cfd1
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
32 changes: 19 additions & 13 deletions vvp/vvp_island.cc
Expand Up @@ -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_vector8_t tmp(bit, 6, 6);
if (invalue.size()==0) {
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();
recv_vec8_pv(port, tmp, base, wid, vwid);
}


Expand All @@ -211,6 +199,24 @@ void vvp_island_port::recv_vec8(vvp_net_ptr_t port, const vvp_vector8_t&bit)
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()
{
}
Expand Down
2 changes: 2 additions & 0 deletions vvp/vvp_island.h
Expand Up @@ -126,6 +126,8 @@ class vvp_island_port : public vvp_net_fun_t {
unsigned base, unsigned wid, unsigned vwid,
vvp_context_t);
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 outvalue;
Expand Down

0 comments on commit 261cfd1

Please sign in to comment.