加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Linux下利用iverilog进行功能仿真

(2013-10-04 15:22:21)
分类: FPGA
    linux下面进行硬件仿真,可以使用modelsim,但是modelsim不是开源软件,安装需要破解,很是麻烦,而iverilog是linux下的一款开源仿真软件,利用它再配合shell脚本可以方便的实现自动化仿真并查看波形。
    本文档以 Ubuntu12.04 为例子,讲解 Linux 系统下使用 iverilog 和 gtkwave 进行 verilog 的仿真。
一:安装 iverilog 以及 gtkwave
$:sudo apt-get install iverilog
$:sudo apt-get install gtkwave
二:Verilog 版 Helloworld
$:vim helloworld.v
编辑如下内容:
module main;
initial begin
$display("Hello, World!");
$finish;
end
endmodule
三:利用 gtkwave 查看波形
下面以一个简单计数器为例:
$:vim counter.v
输入以下内容:
module counter(irst, iclk, ocnt );
input irst, iclk;
output reg [3:0] ocnt;
always @ (posedge iclk)
if(irst)
ocnt <= 4'b0000;
else
ocnt <= ocnt + 1'b1;
endmodule
$:vim counter_tb.v
输入以下内容:
module counter_tb;
reg irst = 0;
reg iclk = 0;
wire [3:0] ocnt;
initial begin
irst = 1; #100;
irst = 0; #300;
$stop;
#1000;
$finish;
end
always begin #5 iclk = !iclk; end
counter counter_test(
.irst(irst),
.iclk(iclk),
.ocnt(ocnt)
);
initial
$monitor("At time %t, ocnt = %d", $time, ocnt);
initial
begin
$dumpfile("counter_test.vcd");
$dumpvars(0, counter_test);
end
endmodule
$:iverilog -o counter_test counter_tb.v counter.v
$:$:vvp -n counter_test -lxt2
$:cp counter_test.vcd counter_test.lxt
$:gtkwave counter_test.lxt
OK!至此就会打开 gtkwave 界面,然后添加信号就可以查看波形啦!
总结:
    iverilog用于功能仿真并记录仿真结果数据,gtkwave则可以用来查看iverilog产出的数据波形文件。linux的思想就是让很多软件各司其职,大家一起协同,可靠的完成复杂的任务。如果再将以上各种命令写道一个shell脚本文件中,通过shell运行,这样就完全自动化了。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有