Chisel是UC Berkeley开发的一种开源硬件构造语言,支持使用高度参数化的生成器和分层的域特定硬件语言进行高级硬件设计。
如何在Chisel中禁用`ifdef FIRRTL_BEFORE_INITIAL`?
生成代码时,我得到像这样的垃圾 `ifdef ENABLE_INITIAL_REG_ `ifdef FIRRTL_BEFORE_INITIAL `FIRRTL_BEFORE_INITIAL `endif // FIRRTL_BEFORE_INITIAL 初始开始 自动
我目前正在开发用于数据竞争检测的硬件 所以我跟踪每条指令并制作了种族检测的历史表。 我为 PC va 的预期数据竞赛和跟踪指令编写了 C 程序...
如何从 Chisel 生成 Verilog 而不是 SystemVerilog?
这是我的GCD.scala 包gcd 进口凿子3._ 类 GCD 扩展模块 { val io = IO(新捆绑{ val 值1 = 输入(UInt(16.W)) val 值2 = 输入(UInt(16.W)) 瓦尔
使用 chisel ShiftRegister 中的每个延迟触发器状态
我正在为以下 FIR 电路编写凿子(特别是为了理解凿子中的 ShiftRegister,因为这可以使用凿子中的 NextReg 轻松完成)。 我写了这段代码: My4Element 类...
使用 Chisel 使用 BlackBox 时如何避免生成文件末尾出现 verilog 文件列表?
我在设计中使用 Blackbox 和 setInLine 函数。 class ResetGenEna(delayClk: Int) 使用 HasBlackBoxInline 扩展 BlackBox { val io = IO(新捆绑{ val clk = 输入(时钟()) 值...
在 Chisel 中使用 `reduce(_ ## _) ` 进行 IndexedSeq 到 UInt 转换是件好事吗?
对于一个小的Chisel项目,我使用reduce(_ ## _)函数将IndexedSeq转换为UInt。 类 PdChain(n: Int = 4) 扩展模块 { val io = IO(新捆绑{ val 计数 = 输出(UInt(n.W...
如果我需要测试一个模块: 类 myModule 扩展模块{ 值 io = IO( 新捆绑包{ val In = 输入(Vec(4,SInt(16.W))) val Out = 输出(Vec(4,SInt(16.W))) } ) /* ... ...
我是一名初学者,为我的项目使用火箭芯片生成器,但我无法为其生成verilog 文件并面临此错误。我使用的是苹果 M1 芯片 macOS。我从克隆开始...
这里有一个名为RequestBuffer的类。 类RequestBuffer(流:Boolean = true,条目:Int = 4)(隐式p:参数)扩展L2Module { val 缓冲区 = RegInit(VecInit(Seq.fill(entries)(0.U.asTyp...
在 Chisel 中创建 n 到 1 多路复用器时出现的问题
我目前正在使用 Chisel 创建 n 到 1 多路复用器,其中 nr_m 等于 2。我已经编写了一些代码,但在尝试生成 Verilog 时遇到了问题。这是代码...
在 FPGA 中,为什么带有全加器原始实现的计数器比推断加法“+”具有更好的时钟性能?
我正在测试 ICE40 和 Gatemate FPGA 上的计数器和加法性能。 我用两种不同的方式写计数器: NaturalCounter 使用凿子的运算符“+”(查看源代码): // 自然计数...
我在编译过程中没有收到任何错误,但是当我尝试运行代码时,它失败了。我不确定为什么会发生这个错误。之前,当我写RCA(代码在下面)时,我遇到了...
我有以下可以编译的代码: S 类扩展了 Bundle { val 通道 = VecInit.fill(7)(UInt(32.W)) } D 类扩展模块 { val v = IO(翻转(解耦(新 S))) v.准备好 := true....
在另一个模块中使用 Chisel 子模块:无法将变量分配给 io 输入
我正在尝试创建一个简单的计数器,它计算直到并包括一些 max_count_S 已经过去了多少秒。 为了简化过程,我首先创建了一个“信号”计数器,...
Chisel 5.0 编写的具有两个时钟源的 AyncFIFO 的问题
我在Chisel中写了一个AsyncFIFO。由于Chisel-tester不支持多个时钟源,所以我编写了另一个shell来封装fifo。然而,我在测试空条件时遇到了问题...
如何在 chisel 中实现 4:1 Mux,而不使用 2:1 Mux?有没有一种方法可以让我们通过使用类似 Mux(sel, A,B,C,D.......N) 的东西来选择 N 个输入中的一个输入,其中 N 可以是
我已经安装了火箭芯片,它需要凿子来编译我也下载了凿子,但是当我运行 sbt test 时,所有测试都失败了,我是不是做错了什么。 sbt 有替代方案吗...
如何将 TileLink 节点导出到 LazyModule 的输出并生成相应的 verilog 文件
我正在尝试创建一个简单的模块,其中tilelink客户端连接到模块输出。怎么做?我花了20个小时试图弄清楚这一点,我完全迷失了。 我正在尝试