riscv - Chisel 3 的队列标准库接口(interface)综合了什么?

标签 riscv chisel

Cheat-Sheet中有Queue和Chisel其他标准库接口(interface)(De CoupledValid等)的简要定义。以及 Chisel Manual 中的更多详细信息。我还在 StackOverflow 上找到了这两个答案 - herehere .

但是,这些资源都没有以可塑的方式进行解释 - 我觉得这将帮助我更好地理解这些接口(interface)的目的 - 这些代码行合成什么 - 它们在实际硬件中是什么样子?

例如,以下是包 HardFloat 中的 FPU 代码片段:

val input = De Coupled(new DivRecFN_io(expWidth, sigWidth)).flip

其中 DivRecFN_io 是一个类,如下所示:

class DivRecFN_io(expWidth: Int, sigWidth: Int) extends Bundle { 值 a = ... 值 b = ... 瓦尔... ... }

包含 De Couple 的行到底实现了什么?

谢谢。

最佳答案

实际硬件中的样子:

默认的 Chisel util 队列是标准 circular buffer执行。这意味着它有一系列带有入队和出队指针的寄存器,这些寄存器由于队列上的操作而移动,检查是否满了和空了。

关于riscv - Chisel 3 的队列标准库接口(interface)综合了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47823120/

相关文章:

riscv - 关于 Risc-V-Privileged-Spec-v1.7 的 2 个问题

riscv - Rocket Chip (RISC V) 加速器性能评估

scala - 如何将 Vec(n,Bool()) 转换为 UInt 值

chisel - 在 Chisel3 中公开仅模拟行为

chisel - Chisel 和 Lava 和 CLaSH 有什么区别?

chisel - 如何使用Chisel C++模拟器

compilation - 如何使用 LLVM/Clang 编译为 RISC-V 目标?

assembly - RISC-V NOP指令

multithreading - 是否可以在 riscv 中的两个锁上构建原子 "release-and-acquire"操作?

scala - 错误 "Combinational loop detected"