FPGA Player

好记性不如烂笔头

导航

modelsim仿真基本流程

好久没再用过modelsim,都忘的一干二净了。刚换了份工作,又要重新拾起来,不过现在感觉modelsim的仿真其实是比较快的,很有用处。再者这么长时间老是学了忘,忘了再学,觉得真浪费时间,平时确实应该好好总结下的,关于modelsim的仿真这一次一定要系统的总结出来,顺便再练下写文档的能力。

modelsim仿真方法1:用modelsim直接建立工程。

1、建工程

输入工程名,选择工程路径。

添加源文件及测试文件。

在这里为什么要选择第二项,我也不在了然的,改天再查下。

文件添加进来之后就是编译了。

如果编译通过会出现下面的对勾,如果不对当然就是XX了

下一步是仿真

选择测试脚本。另外把下面的优化去掉,不然有些信号优化就没有了,具体是怎么回事我还不明白,再查吧。

单击OK进入下面的界面,选择信号右击添加信号到wave文件中。

设置下仿真时间。就可以run了。

可以看到波形了

这个过程还是比较简单的,有些Ip的仿真却要添加库,怎样处理,在随后的modelsim仿真2中再说了。

附录:

源文件.v

module counter(

rst_n,

clk,

 

valid

);

parameter CNT_WIDTH = 3'd4 ;

parameter CNT_NUM = 4'd15;

 

input clk ;

input rst_n ;

 

output valid ;

reg  valid;

 

reg [CNT_WIDTH-1:0] cnt ;

 

always@( posedge clk )

begin

if (rst_n == 0) 

begin

cnt <= 4'd15;

end

else

begin

cnt <= cnt + 1'b1;

end

end

 

always@( posedge clk)

begin

if(rst_n == 0) 

begin

valid <= 1'b0;

end

else if(cnt == CNT_NUM)

begin

valid <= 1'b1;

end

else

begin

valid <= 1'b0;

end

end

endmodule

测试脚本.v

module counter_tb;

 

reg rst_n;

reg clk;

 

wire valid;

 

counter u_counter(

.rst_n (rst_n),

.clk(clk),

.valid(valid)

);

 

initial

begin

#0 rst_n = 0;

 clk = 0;

#100

rst_n = 1;

end

 always

begin

#10 clk = ~clk;

end

endmodule

 

posted on 2017-10-17 20:11  中国的孩子  阅读(2411)  评论(0编辑  收藏  举报