微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > modelsim仿真的问题

modelsim仿真的问题

时间:10-02 整理:3721RD 点击:
我编写了一个很小的文件,用modelsim仿真,发现输出始终为0,不知道为什么?代码如下:
被仿真代码:
module Devider(
clkout,
clkin,
fast,
slow
);
input clkin;
input fast;
input slow;
output clkout;
reg  clkout;
reg  [3:0] counter;
always @(posedge clkin)
begin
if(fast == 1)
  counter <= counter + 2;
  else
   if(slow == 1)
     counter <= counter;
     else
      counter <= counter + 1;
if(counter <= 4)
  clkout <= 1;
  else
   clkout <= 0;
end
endmodule
testbench:
`timescale 100ns/10ns
//`include "Devider.v"
module T_Devider;
  reg clkin;
  reg fast;
  reg slow;
  wire clkout;
  
  Devider dev(clkout,clkin,fast,slow);
  
  initial
    begin
      clkin = 0;
      forever #0.5 clkin = ~clkin;
    end
  
//  Devider dev(clkout,clkin,fast,slow);
   
//  always #0.5 clkin = ~clkin;
  initial
    begin
      fast = 0;
      slow = 0;
      #800 fast = 1;
      #100 fast = 0;
      #1000 slow = 1;
      #100 slow = 0;
    end
  initial
  begin
    $monitor($time,,,clkin,,,fast,,,slow,,,clkout);
    #10000 $stop;
  end
endmodule  
望高手帮帮忙看看,谢谢!

你的测试平台提供的时钟是不是产生出来了呢?看代码好像没有什么问题,就是不知道时间精度这个地方是否正确。

程序本身有问题。 没有复位信号,ALWAYS里面的语句没有执行。

4楼说得对,程序没有复位信号,reg  [3:0] counter的初始值不定,所以是不会有输出的
上电时给reg  [3:0] counter确定一个值应该就可以了

没有复位信号a!

各位高手,我在modelsim仿真编译时,报错
`timescale 100ns/10ns  说时间精度 syntax error  unexpected “base”,expecting“class”
请问是怎么回事啊 急问啊?



    我这边没有报错呀

没有初始状态!



    'timescale改为`timescale试试看

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top