gpt4 book ai didi

scala - 有什么方法可以使用凿子从 verilog 文本内容生成黑盒吗? (在scala中根据文本内容定义val)

转载 作者:行者123 更新时间:2023-12-04 15:32:25 27 4
gpt4 key购买 nike

我正在与一个也使用 verilog 的团队合作。我觉得使用 chisel power 来管理模块之间的互连比裸 verilog 快得多。从chisel教程可以看出,blackbox wrapper是手工写的,io信号是手工定义的。

是否可以从 verilog 中提取 io 信息并自动定义 chisel blackbox io? (又名,从 verilog 生成黑盒,而不是由某些人通过阅读 verilog 来定义黑盒类。)

例如:

val bbox = blackbox("someModule.v")

然后,bbox 将成为一个功能齐全的黑盒,并定义了所有 ios 和名称。

由于 io 信号在 scala 中是 val,我想知道是否有实现此目标的元方法。

最佳答案

是的,有!查看 HasBlackBoxInline:

https://www.chisel-lang.org/chisel3/blackboxes.html#blackboxes-with-in-line-verilog

class BlackBoxRealAdd extends BlackBox with HasBlackBoxInline {
val io = IO(new Bundle() {
val in1 = Input(UInt(64.W))
val in2 = Input(UInt(64.W))
val out = Output(UInt(64.W))
})
setInline("BlackBoxRealAdd.v",
s"""
|module BlackBoxRealAdd(
| input [15:0] in1,
| input [15:0] in2,
| output [15:0] out
|);
|always @* begin
| out <= $realtobits($bitstoreal(in1) + $bitstoreal(in2));
|end
|endmodule
""".stripMargin)
}

默认情况下,此 BlackBox 将以其给定名称发送到输出目录。

关于scala - 有什么方法可以使用凿子从 verilog 文本内容生成黑盒吗? (在scala中根据文本内容定义val),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60955784/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com