modelsim输出没波形?

yy1015 2010-09-21 03:51:29
本人刚学Verilog,写了个很简单的滤波器,和它的激励,可是用modelsim仿真时,总出不了波形,真不知道为啥,求人指点!我直接粘出来,复制到modelsim里就ok了!

这是滤波器模块:
module fir_lp_8(out,in,clk,rst);
parameter size_in = 8;
parameter size_out = 2*size_in + 1;

parameter h0 = 8'd7;
parameter h1 = 8'd17;
parameter h2 = 8'd32;
parameter h3 = 8'd46;
parameter h4 = 8'd52;
parameter h5 = 8'd46;
parameter h6 = 8'd32;
parameter h7 = 8'd17;
parameter h8 = 8'd7;

input clk,rst;
output [size_out-1 : 0] out;
input [size_in-1 : 0] in;

reg [size_in-1 : 0] samples1;
reg [size_in-1 : 0] samples2;
reg [size_in-1 : 0] samples3;
reg [size_in-1 : 0] samples4;
reg [size_in-1 : 0] samples5;
reg [size_in-1 : 0] samples6;
reg [size_in-1 : 0] samples7;
reg [size_in-1 : 0] samples8;

assign out = in*h0 + samples1*h1 + samples2*h2 + samples3*h3 + samples4*h4
+ samples5*h5 + samples6*h6 + samples7*h7 + samples8*h8;

always @(posedge clk or negedge rst)
if (rst == 0)
begin
samples1 <= 0;
samples2 <= 0;
samples3 <= 0;
samples4 <= 0;
samples5 <= 0;
samples6 <= 0;
samples7 <= 0;
samples8 <= 0;
end
else
begin
samples1 <= in;
samples2 <= samples1;
samples3 <= samples2;
samples4 <= samples3;
samples5 <= samples4;
samples6 <= samples5;
samples7 <= samples6;
samples8 <= samples7;
end
endmodule

这是激励程序:
module stimu_fir_lp_8();
reg clk,rst;
reg [7:0] in;
wire [16:0] out;

initial
begin
clk = 1'b0;
rst = 1'b0;
in = 8'b00001010;

end

always #10 clk = ~clk;

fir_lp_8 test_fir_lp_8(.out(out),.in(in),.clk(clk),.rst(rst));

endmodule

滤波器估计没错,是抄书的,或许激励程序不对,因为是我写的~~~呜呜~~~~
...全文
1008 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
不吃鱼的才子 2010-10-12
  • 打赏
  • 举报
回复
前些时间,我也痛苦用modelsim仿真就是出来不了结果,很痛苦。反反复复,从最基本的开始不断的改进。。。。

后来可以了

很多时候,还是软件设置的问题。以及你的思路

最后,仿真建议还是用MATLAB,可以把数据导出,用MATLAB仿真
丰满 2010-09-22
  • 打赏
  • 举报
回复
呵呵,抄书籍的不一定对啊,自己慢慢查查资料,首先你的思路一定要清楚才能开始去做,慢慢自己查一下才能更快的进步,谢谢
ModelSim SE简明操作指南 第一章 介 绍 本指南是为ModelSim5.5f版本编写的,该版本运行于UNIX和Microsoft Windows 95/98/Me/NT/2000的操作系统环境中。本指南覆盖了VHDL和Verilog模拟仿真,但是你在学习过程中会发现对于单纯的HDL设计工作而言,它是一个很有用的参考。ModelSim具备强大的模拟仿真功能,在设计、编译、仿真、测试、调试开发过程中,有一整套工具供你使用,而且操作起来极其灵活,可以通过菜单、快捷键和命令行的方式进行工作。ModelSim的窗口管理界面让用户使用起来很方面,它能很好的与操作系统环境协调工作。ModelSim的一个很显著的特点就是它具备命令行的操作方式,类似于一个shell有很多操作指令供你使用,给人的感觉就像是工作在Unix环境下,这种命令行操作方式是基于Tcl/Tk的,其功能相当强大,这需要在以后的实际应用中慢慢体会。 ModelSim的功能侧重于编译、仿真,不能指定编译的器件,不具有编程下载能力。不象Synplify和MAX+PLUS II可以在编译前选择器件。而且ModelSim在时序仿真时无法编辑输入波形,不象MAX+PLUS II可以自行设置输入波形,仿真后自动产生输出波形,而是需要在源文件中就确定输入,如编写测试台程序来完成初始化、模块输入的工作,或者通过外部宏文件提供激励。这样才可以看到仿真模块的时序波形图。另外对于Synplify来说,也只具有编译能力,但是比MAX+PLUS II可编译的verilog的内容要多,所以常常可以现在Synplify下编译,生成编译文件再送到MAX+PLUS II中使用。 ModelSim还具有分析代码的能力,可以看出不同的代码段消耗资源的情况,从而可以对代码进行改善,以提高其效率。
Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比Quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。 ModelSim分几种不同的版本:SE、PE和OEM,其中 集成在 Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。比如为Altera提供的OEM版本是ModelSim-Altera,为Xilinx提供的版本为ModelSim XE. SE版本为最高级版本,在功能和性能方面比OEM版本强很多,比如仿真速度方面,还支持PC 、 UNIX 、 LIUNX混合平台. 为什么要学Modelsim? 1.Modelsim是专业的HDL语言仿真器,比 Quartus自带的仿真器功能强大的多. 2. Quartus simulator不支持Testbench ,只支持波形文件.vwf vwf文件全称是矢量波形文件(Vector Waveform File),是Quartus II中仿真输入、计算、输出数据的载体。一般设计者建立波形文件时,需要自行建立复位、时钟信号以及控制和输入数据、输出数据信号等。其中工作量最大的就是输入数据的波形录入。比如要仿真仅1KB的串行输入数据量,则手工输入信号的波形要画8000个周期,不仅费时费力而且容易出错 怎样入门? 对于初学者,modelsim自带的教程是一个很好的选择,在Help->SE PDF Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的各项功能的使用,简单易懂。

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧