首页 > 解决方案 > gem5中的乘以循环变量

问题描述

我想知道是否可以在 gem5 中乘以 Cycles 类型变量。我要表示的是一定的延迟,它被添加了 n 次。所以是这样的:

return lookupLatency * n;

我收到此错误:

error: could not convert '(((const BaseCache*)this)->BaseCache::lookupLatency.Cycles::operator uint64_t() * ((uint64_t)n))' from 'uint64_t {aka long unsigned int}' to 'Cycles'

有没有办法快速做到这一点?

标签: gem5

解决方案


Cycles 只是 uint64_t 的一个包装类,您可以在 src/base/types.hh 中检查它的功能。

话虽如此,构造函数必须是显式的,并且您正试图从lookupLatency * n 隐式创建一个Cycles 变量,它是一个uint64_t。只需调用构造函数使其再次循环:

return Cycles(lookupLatency * n);

推荐阅读