Verilator,运行 模拟器给出:无效参数
Verilator, running simulator gives: Invalid argument
我正在学习 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 说将为我生成一个模拟可执行文件。但是它在 运行ning 时给了我同样的错误。我尝试自己指定参数并从主函数中删除参数,但它一直给我这个错误。
我运行在虚拟盒子图像中进行模拟。我最近使用 this 指南 sh运行k .vdi。我不知道这是否与它有任何关系。
我的工具箱坏了。正如评论中所讨论的那样,工作工具箱不会给出这些错误(不幸的是用户删除了它们)。我想尝试自己构建整个工具套件不是一个好主意,除非您真的知道自己在做什么。我找到了一个可以毫无问题地轻松使用的 cad suite。它具有所有需要的预编译和工作工具。
我正在学习 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 说将为我生成一个模拟可执行文件。但是它在 运行ning 时给了我同样的错误。我尝试自己指定参数并从主函数中删除参数,但它一直给我这个错误。
我运行在虚拟盒子图像中进行模拟。我最近使用 this 指南 sh运行k .vdi。我不知道这是否与它有任何关系。
我的工具箱坏了。正如评论中所讨论的那样,工作工具箱不会给出这些错误(不幸的是用户删除了它们)。我想尝试自己构建整个工具套件不是一个好主意,除非您真的知道自己在做什么。我找到了一个可以毫无问题地轻松使用的 cad suite。它具有所有需要的预编译和工作工具。