问题标签 [firrtl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chisel - 如何将已弃用的低 Firrtl 转换转换为 Dependency API
我正在更新一个看起来像这样的 Firrtl 变换
到新的依赖 API。将变换更改为此
但现在它不会以与以前相同的顺序运行转换。有没有一种简单的方法来指定依赖关系,以便获得原始行为?
chisel - 凿子/FIRRTL DefnameDifferentPortsException
我最近将我的一个大项目的 Chisel 版本从 3.1.1 更新到了 3.4.0;但是,我得到了一堆firrtl.passes.CheckHighFormLike$DefnameDifferentPortsException
:
以下是 XilinxSimpleDualPortNoChangeBRAM 的定义及其依赖项:
Verilog 资源XilinxSimpleDualPortNoChangeBRAM.v
是 Vivado 中可用的 BRAM 实例化模板之一:
我试图查看引发此异常的文件CheckHighForm.scala
,但我很快就迷路了,因为我不知道我应该寻找什么。
我从测试中CheckSpec.scala
了解到它应该throw an exception if ExtModules have matching port names and widths, but a different order
,因此我尝试使 Chisel BlackBox 中的输入顺序与 Verilog 模块中的输入顺序相同,但仍然出现异常。
该测试throw an exception if parameterless ExtModules have the same ports, but different widths
使我认为具有不同端口宽度的多个实例化可能是导致异常的原因,但是还有另一个测试表明它应该NOT throw an exception if ExtModules have parameters, matching port names, but different widths
,这里就是这种情况,因为端口宽度由参数控制。
此异常的原因可能是什么?
更新:根据要求,这里是两个黑盒实例的 FIRRTL IR:
更新 2:显然,有些XilinxSimpleDualPortNoChangeBRAM
人选择了旧版本XilinxSimpleDualPortBRAMBlackBoxIO
的重置仍然是 typeBool
而不是Reset
. 改变它解决了这个问题。
chisel - Chisel 3.4.2 syncmem 和一个黑盒子。不使用 --repl-seq-mem 选项替换内存
我使用 --repl-seq-mem 选项运行 MemtestInst 代码。它有一个黑盒子和一个 SyncReadMem。没有内存替换发生,配置文件为空。如果我评论 MyBBox 线或使用较旧的凿子,更换工作。有效的凿子:
这个失败了(到目前为止最新的一个):
斯卡拉代码:
我错过了什么吗?
提前致谢!
riscv - LazyModule 和 LazyModuleImp 的区别
LazyModule 和 LazyModuleImp 有什么区别?就像 Rocket-chip/doc 下的外交演示所说:The desired hardware for the module must be written inside LazyModuleImp.
但考虑以下代码:
这:=
是一个硬件操作,它出现在 LazyModuleImp 的内部和外部,那么应该在 LazyModuleImp 中放置哪些代码?
scala - 凿子:在编写简单的组合逻辑时无法生成verilog
我想实现旋转左移的操作。
我的凿子代码:
我用sbt构建了我的项目,输入test:runMain test.testCPU -td generated
sbt shell,输出如下:
它成功生成了firrtl,但未能生成verilog。
firrtl 代码如下:
annotations - 如何从 Firrtl 发出带有注释的Verilog
我是 Chisel/Firrtl 的新手,但我觉得它很有趣!我正在寻找一个示例,说明如何从 chisel3 通过 firrtl 获取一些注释(例如单热信号)到 Verilog 中,可以将其添加为注释。
chisel - 使用 Mux 捆绑
我想使用 Mux 在这里选择捆绑输入代码 class ComIO extends Bunlde { val in = Input(UInt(32.W) val in = Input(UInt(32.W) }
错误正在流动