自定义Chisel3的Queue工具类时,仅使用可综合gen如何处理genType?
结论
可以直接将chiselTypeOf(gen)赋值给genType,完全适配你限定的使用场景。
原因说明
- 你已经明确限定仅使用可综合的
gen类型,原有代码里的DataMirror.internal.isSynthesizable(gen)判断分支永远命中为真的逻辑,不需要额外做分支判断 - 原有代码中针对
declaredTypeMustBeUnbound编译选项的分支是Chisel内部用于特殊类型校验的调试逻辑,常规可综合电路开发场景默认不会开启该选项,你自定义Queue不需要兼容这类内部调试场景 - 直接使用公共API
chiselTypeOf(gen)还可以直接去掉对DataMirror.internal、chisel3.internal.Builder这类Chisel内部非公开API的依赖,刚好符合你不想依赖内部包的需求
注意事项
你只需要保证传入自定义Queue的gen参数是未绑定硬件值的Chisel类型模板即可,和原生Queue的常规使用要求完全一致,不会引入额外使用限制。
内容的提问来源于stack exchange,提问作者metzkorn
相关产品推荐
相关产品推荐

