求问Cache_data[index]为啥会出现,不存在用户定义的从“sc_core::sc_in
//将L2地址addr中的新数据加入L1编号为index的路中(L1Miss的话需要L2往里面插入数据)
void insert_newdata(unsigned int index, unsigned int tag, unsigned int addr)
{
int i, j;
//寻找一组中是否有空位
for (i = 0; i <= 3; i++)
{
if (Cache_data[index].unit[i].valid == false)
{
//从L2中读入数据到L1
ctr_l2_rd_en(index, i, addr);
Cache_data[index].unit[i].valid = true;
Cache_data[index].unit[i].tag = tag;
//更新LRU的值
update_used(Cache_data[index].lastused, i);
l1_ctr_data.write(Cache_data[index].unit[i].data);
return;
}
}
//无空位时需要更新,采用LRU算法找出最近最少使用的数据
j = not_used(Cache_data[index].lastused);
//如果原有数据已更改,需要执行写回操作
if (Cache_data[index].unit[j].changed == true)
{
//计算原始地址
sc_uint<13>add;
add.range(13, 8) = Cache_data[index].unit[j].tag;
add.range(7, 2) = index;
add.range(1, 0) = 0;
//写回
write_to_L2 (Cache_data[index].unit[j].data,addr);
}
ctr_l2_rd_en(index, j, addr);
Cache_data[index].unit[j].tag = tag;
Cache_data[index].unit[j].changed = false;
update_used(Cache_data[index].lastused, j);
l1_ctr_data.write(Cache_data[index].unit[j].addr);
return;
Cache_data是不是出现了嵌套使用?怎么里面又套了一个Cache_data