【问题标题】:Verilator, running simulator gives: Invalid argumentVerilator,运行模拟器给出:无效的参数
【发布时间】:2021-12-18 15:34:56
【问题描述】:

我正在关注this 教程。在第 24 页上,我没有得到教程中提到的 Makefile。当我运行./thruwire 时,它会显示:bash: ./thruwire: Invalid argument

这是我的 thruwire.v:

module thruwire(i_sw, o_led);
    input   wire    i_sw;
    output  wire    o_led;
    
    assign o_led = i_sw;
endmodule

在生成了这个 verilog 文件后,我运行了这些命令来创建 obj_dir 目录:

verilator -Wall -cc thruwire.v
cd obj_dir
make -f Vthruwire.mk

然后我在我的主目录中创建了一个 thruwire.cpp 文件(即 obj_dir 上面的那个),如下所示:

#include <stdio.h>
#include <stdlib.h>
#include "Vthruwire.h"
#include "verilated.h"

int main(int argc, char **argv)
{
    Verilated::commandArgs(argc, argv);
    
    Vthruwire *tb = new Vthruwire;
    
    for(int k = 0; k < 20; k++)
    {
        tb->i_sw = k&1;
        
        tb->eval();
        
        printf("k = %2d, ", k);
        printf("i_sw = %2d, ", tb->i_sw);
        printf("led = %2d, ", tb->o_led);
    }
}

我回到一个目录并编译如下:

cd ..
g++ -I /usr/share/verilator/include -I obj_dir /usr/share/verilator/include/verilated.cpp thruwire.cpp obj_dir/Vthruwire__ALL.a -o thruwire

到目前为止,直到幻灯片 24,我已经完成了教程所说的所有内容。但是,我的项目目录中没有 Makefile,根据教程应该是这种情况。当我运行 ./thruwire 时,我得到所说的错误。

我是新手,请帮帮我。我错过了什么吗?

我尝试使用 --exe 标志,因为the documentation 表示将为我生成一个模拟可执行文件。但它在运行时给了我同样的错误。我尝试自己指定参数并一起从主函数中删除参数,但它一直给我这个错误。

我正在虚拟盒子图像中运行模拟。我最近使用this 指南缩小了.vdi。不知道有没有关系。

【问题讨论】:

  • 我想我只是要重新安装我的虚拟机。

标签: verilog simulation verilator


【解决方案1】:

我的工具箱坏了。正如 cmets 中所讨论的那样,工作工具箱不会给出这些错误(不幸的是,用户删除了它们)。我想尝试自己构建整个工具包并不是一个好主意,除非你真的知道自己在做什么。我找到了一个cad suite,它可以毫无问题地轻松使用。它具有预编译和工作所需的所有工具。

【讨论】:

  • 这不能回答你的问题,你最好把它移到评论中。
  • 我的问题是我错过了什么,是的,我错过了一些东西:一个完全预构建的工具套件。此外,该错误是由损坏的工具箱引起的,这是它无法正常工作的原因。
猜你喜欢
  • 2011-10-01
  • 2011-11-20
  • 1970-01-01
  • 2012-07-06
  • 2021-06-07
  • 2011-10-02
  • 2019-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多