问题标签 [chisel]
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.
hardware - 是否可以避免指定默认值以便在 Chisel 中获得 X?
以下Chisel代码按预期工作。
但是,如果我不指定,则会出现编译时错误io.rdData := UInt(0)
,因为需要默认值。有没有办法在默认情况下明确指定X
或让模块没有默认输出 X,erm?
您可能想要这样做的一些原因是,如果ren
未断言,则任何内容都不应依赖于输出,并且 Xs 允许您指定它,并且指定 X 可以告诉综合工具它是无关紧要的,用于优化目的。
scala - 测试工具中的凿子运行时错误
这个凿子代码工作正常:
然而,这个 - 一个小的变化 - 会产生运行时错误:
scala - Assign vec to UInt ports
if I have a io port which is io.myoutput = UInt(width = 840)
Then I have a val a = vec.fill(140){UInt(width = 6)}
How do i assign the entire a vec into the output port? I tried for loop with
But it gives me
Thanks
scala - UInt(0) 是什么意思?
我读到 UInt(1) 指的是 1 位十进制文字。我对 UInt(0) 的含义感到困惑。它用于计数器代码,如下所示:-
有人可以解释两个突出显示(以星号为界)语句的工作原理吗?
scala - Chisel 编译器很慢
我正在研究一种矩阵求和类型的设计。编译器需要 4+ 小时才能生成 1+ 百万行代码。每一行都是“分配.....”我不知道这是编译器效率低下还是我的编码风格不好。如果有人可以提出一些替代方案,那就太好了!
这是代码的描述输入将是一个随机矩阵元素的AND,并使用.reduce求和,所以结果矩阵应该是140X6 vec,它们一起给我一个840位的输出
(rndvec,它应该是一个 140x840x6 位的随机矩阵。因为我不知道如何生成随机值,所以我从一个固定的 140x6 开始表示一行并一遍又一遍地输入它)
以下是我的代码
终端报告:
scala - 控制数据流图或中间表示
我们正在开展一个项目,以根据称为分配决策图的方式为代码提供中间表示。因此,如果有人能告诉我们你们是如何编译代码以及如何访问编译过程中生成的图形,即在解析代码的语法之后,这将是非常有帮助的。
甚至在编译器解析后有关访问代码的帮助也很好。任何关于如何去做的帮助也很感激。
scala - Chisel: how to avoid errors NO DEFAULT SPECIFIED FOR WIRE
I'm trying to implement a structured read port to Mem:
When I use combinational
instead of sequential
I get errors
What is the meaning of this error message?
The second question:
Is it possible to have a structured red port a la SystemVerilog, i.e. read directly
instead of
Thanks!
scala - 在 Chisel 中有 Vec[Mem] 会很好
对 Vec[Mem] 来说说集合关联缓存会很好。
不幸的是,Chisel 不支持 Vec[Mem] 构造:
确实:
但是,一个简单的解决方法可以正常工作:
并用于编写标签(在某些 when(...) 子句下的原因)
意见,改进拟议方案的建议?谢谢!
scala - Chisel 既没有为 verilog 也没有为 C++ 综合
对于以下片段 Chisel 没有合成:
如果手动展开循环 for (level <- 1 until num_levels) 并折叠常量,则行为相同:
为两个片段(原始和展开/实例化的 16 路案例)生成的 verilog(和类似的 C++ 代码):
不太明白为什么只有虚拟结构 我应该怎么做才能强制综合逻辑?谢谢!
scala - 凿子移位寄存器示例
我对 scala 和 Chisel 很陌生。我试图创建一个具有动态大小的 Shiftregister 示例,但我不确定以下代码是否正确。如果有人可以评论它会很好:
我试图创建以下 VHDL 代码的等效项: