ChiselHDL是否支持像#ifdef(宏)这样的东西?

时间:2015-07-23 07:31:53

标签: scala hdl chisel

我用谷歌搜索Scala使用" @ elidable"作为C ++中的一种宏 ChiselHDL是否也支持这样的调试?
或者,还有其他选择吗?

在scala上下文中,

@elidable(WARNING) def debug(signal: Wire) = when(signal){ printf("Cache miss!") }
debug(miss)  // At every rising edge of clock, print whether there's cache miss or not.

假设Chisel有预处理器和#ifdef语句

#define DEBUG
#ifdef DEBUG
    when(is_cache_miss){ printf("Cache miss!") }
#endif

1 个答案:

答案 0 :(得分:1)

您应该使用Scala代码作为Chisel ifdef系统。

if (DEBUG) // <<--- this is a Scala conditional, run at chisel build-time
    when (is_cache_miss) { printf("Cache miss!") } // << --- Chisel conditional. Executes every cycle of simulation.