问题标签 [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.

0 投票
1 回答
38 浏览

chisel - 如何将已弃用的低 Firrtl 转换转换为 Dependency API

我正在更新一个看起来像这样的 Firrtl 变换

到新的依赖 API。将变换更改为此

但现在它不会以与以前相同的顺序运行转换。有没有一种简单的方法来指定依赖关系,以便获得原始行为?

0 投票
1 回答
97 浏览

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. 改变它解决了这个问题。

0 投票
1 回答
130 浏览

chisel - Chisel 3.4.2 syncmem 和一个黑盒子。不使用 --repl-seq-mem 选项替换内存

我使用 --repl-seq-mem 选项运行 MemtestInst 代码。它有一个黑盒子和一个 SyncReadMem。没有内存替换发生,配置文件为空。如果我评论 MyBBox 线或使用较旧的凿子,更换工作。有效的凿子:

这个失败了(到目前为止最新的一个):

斯卡拉代码:

我错过了什么吗?

提前致谢!

0 投票
1 回答
116 浏览

riscv - LazyModule 和 LazyModuleImp 的区别

LazyModule 和 LazyModuleImp 有什么区别?就像 Rocket-chip/doc 下的外交演示所说:The desired hardware for the module must be written inside LazyModuleImp. 但考虑以下代码:

:=是一个硬件操作,它出现在 LazyModuleImp 的内部和外部,那么应该在 LazyModuleImp 中放置哪些代码?

0 投票
1 回答
55 浏览

scala - 凿子:在编写简单的组合逻辑时无法生成verilog

我想实现旋转左移的操作。

我的凿子代码:

我用sbt构建了我的项目,输入test:runMain test.testCPU -td generatedsbt shell,输出如下:

它成功生成了firrtl,但未能生成verilog。

firrtl 代码如下:

0 投票
0 回答
31 浏览

annotations - 如何从 Firrtl 发出带有注释的Verilog

我是 Chisel/Firrtl 的新手,但我觉得它很有趣!我正在寻找一个示例,说明如何从 chisel3 通过 firrtl 获取一些注释(例如单热信号)到 Verilog 中,可以将其添加为注释。

0 投票
1 回答
13 浏览

chisel - 使用 Mux 捆绑

我想使用 Mux 在这里选择捆绑输入代码 class ComIO extends Bunlde { val in = Input(UInt(32.W) val in = Input(UInt(32.W) }

错误正在流动

在此处输入图像描述