kerenyang 发表于 2011-2-7 13:39:28

大家好,modelsimaltera仿真怎么没有输出波形,时钟和复位信号都有!!!

按照特权同学的教程写的一个蜂鸣器实验,仿真的输出信号怎么不对啊,请教高人解答,我是新手。。。
一下是verilog代码:

module ex3(clk, rst_n,fm);
input clk;
input rst_n;
output fm;

reg cnt;

always @(posedge clk or negedge rst_n)
   if(!rst_n) cnt <= 6'd0;
          else if(cnt < 6'd49) cnt <= cnt+1'b1;
          
          
assign fm = (cnt <= 6'd24) ? 1'b0 : 1'b1;


endmodule

kerenyang 发表于 2011-2-7 13:42:02

回复【楼主位】kerenyang
-----------------------------------------------------------------------

http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_614764FLYKEI.JPG
这是仿真的输出波形 (原文件名:00.JPG)

kerenyang 发表于 2011-2-7 13:44:01

回复【1楼】kerenyang
-----------------------------------------------------------------------

以下是testbench,请教高人解答,不胜感激

`timescale 1ps/1ps
module ex3_vlg_tst();
// constants                                          
// general purpose registers
reg eachvec;
// test vector input registers
reg clk;
reg rst_n;
// wires                                             
wire fm;

// assign statements (if any)                        
ex3 i1 (
// port map - connection between master ports and signals/registers   
        .clk(clk),
        .fm(fm),
        .rst_n(rst_n)
);
initial      begin

      clk=0;
                        forever
                        #10 clk=~clk;
end                                                   


initial      begin
               
                rst_n=0;
                #1000;
                rst_n=1;
                #5000;
                $stop;
end
                                                
endmodule

linuxpro 发表于 2011-2-8 11:37:05

没看出波形有什么不对。

楼主的逻辑,不就是复位后,cnt从0计数到49后就停止计数,保持为49嘛。

而fm在cnt为0~24期间保持为低电平,之后保持高电平,49当然大于24,所以之后一直保持为高。

而eachvec,在testbench里面定义后从来没有用过,自然一直都是不定态。

kerenyang 发表于 2011-2-8 11:48:49

回复【3楼】linuxpro
-----------------------------------------------------------------------
谢谢楼上的回答,cnt忘记清零了,刚刚搞着东西,非常感谢啊!

alteraFPGA 发表于 2011-2-8 18:38:06

红色的好像是没有初值,所以显示红色,赋初值就可以了。
页: [1]
查看完整版本: 大家好,modelsimaltera仿真怎么没有输出波形,时钟和复位信号都有!!!