首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用Icarus编译SV文件时出现断言失败错误

尝试使用Icarus编译SV文件时出现断言失败错误
EN

Stack Overflow用户
提问于 2019-05-09 18:48:06
回答 1查看 378关注 0票数 0

我尝试使用Icarus编译一个带有测试平台的mux.sv设计模块,但得到以下错误vvp: array.cc:906: void compile_var2_array(char*, char*, int, int, int, int, bool): Assertion `0' failed. Aborted (core dumped)

下面是测试平台的代码片段

代码语言:javascript
复制
`include "mux.sv"
module tb_mux();

    bit a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7, out;
    // read
    bit expectedOutput;

    int passedFile;
    integer i;
    bit [11:0] testvector[2047:0];

    // design unit under test instantiation
    mux dut(.out(out), .a0(a0), .a1(a1), .a2(a2), .d0(d0), .d1(d1), .d2(d2), .d3(d3), .d4(d4), .d5(d5), .d6(d6), .d7(d7));
initial begin
            $readmemb("testcases", testvector);
            passedFile = $fopen("passed.txt", "w");
            if(passedFile)
                $display("file opened");
            else
                $display("couldn't open the file");
end

task assertOutput;
    begin
    int unsigned cases = 0;
    for (i = 0; i< 2048; i++)begin
        {a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7, expectedOutput} = testvector[i];

       #10;
           if(a0 == 1'b0 && a1 == 1'b0 && a2 == 1'b0 && out == expectedOutput)
                cases = cases + 1;

           else if(a0 == 1'b0 && a1 == 1'b0 && a2 == 1'b1 && out == expectedOutput)
               cases = cases + 1;

           else if(a0 == 1'b0 && a1 == 1'b1 && a2 == 1'b0 && out == expectedOutput)
               cases = cases + 1;

           else  $display(0);
    end
    $fdisplay(passedFile, "%d", cases);
end
endtask

endmodule

我的测试平台会出什么问题才会产生这个错误?

EN

回答 1

Stack Overflow用户

发布于 2019-05-11 04:05:26

我必须将位数据类型更改为逻辑,才能使其与Icarus一起工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56057722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档