首页 > 解决方案 > 未找到黑盒异常

问题描述

我正在尝试在我的凿子代码中包含一个黑盒模块。我使用了 addResource 构造并给出了 verilog 文件的正确路径。但我不确定为什么会收到此错误。

[错误] (run-main-0) firrtl.transforms.BlackBoxNotFoundException: BlackBox '../resources/MyBlackBox.v' 未找到。你拼错了吗?它在 src/{main,test}/resources 中吗?[错误] 空

这是我的代码片段

import chisel3._
import chisel3.util.{HasBlackBoxResource}

class MyBlackBox(p : Parameters) extends BlackBox with HasBlackBoxResource{
    val io = IO(new Bundle(){
    val in1 = Input(UInt(32.W))
    val in2 = Input(UInt(32.W))
    val out1 = Output(UInt(32.W))
    val out2 = Output(UInt(32.W))
})
addResource("../resources/MyBlackBox.v")
}

这是verilog代码

module MyBlackBox(
input [31:0] in1,
input [31:0] in2,
output [31:0] out1,
output [31:0] out2
);

always@(*) begin
out1 <= in1 * in1;
out2 <= in2 * in2;  
end
endmodule

这是我调用黑盒的类

class dummy extends Module{
val io = IO(new Bundle {
val in1 = Input(UInt(32.W))
val in2 = Input(UInt(32.W))
val out1 = Output(UInt(32.W))
val out2 = Output(UInt(32.W))
})
val bb = Module(new MyBlackBox)
bb.io.in1 := io.in1
bb.io.in2 := io.in2
io.out1 := bb.io.out1
io.out2 := bb.io.out2

}

并且测试台如下

import chisel3._
import chisel3.iotesters._

class dummy_Driver(dut : dummy) extends PeekPokeTester(dut){}

object dummy_Driver extends App{
    chisel3.iotesters.Driver.execute(Array("--backend-name", "verilator", "--target-dir",
    "test_run_dir/dummy", "--top-name", "dummy"), 
    () => new dummy)
    { c => new dummy_Driver(c)}
}

标签: chisel

解决方案


推荐阅读