ChiselHDL 是否支持#ifdef(宏)之类的东西?
Does ChiselHDL supports something like #ifdef (macro)?
我在谷歌上搜索过,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
您应该使用 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.
我在谷歌上搜索过,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
您应该使用 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.