微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 程序通过了板级测试,但是modelsim仿真波形却不正确

程序通过了板级测试,但是modelsim仿真波形却不正确

时间:10-02 整理:3721RD 点击:

module test3(b,clk);
input clk;
output reg b=1'b0;
reg[22:0] count1;

always@(posedge clk)
begin
if(count1==3999999)      
  begin
  b<=~b;
  count1<=0;
  end
else
  begin
  count1<=count1+1;
  
  end
end
endmodule

这是一个控制LED 1秒亮1秒灭闪烁的试验 用4M HZ的有源晶振
我搭建了电路 用输出b控制的,试验效果和我预想的一样
但是我用modelsim进行仿真的时候输出b 是一个持续的低电平 ,没有任何的电平变化
不知道是为什么,有人知道其中的问题么?
`timescale 1 ns/ 1 ps
module test3_vlg_tst();
reg clk;
                                             
wire b;
                        
test3 i1 (
.b(b),
.clk(clk)
);
initial                                                
begin                                                  
clk=0;                    
end                                                   
always  #25  clk=~clk;                                               
                                                   
endmodule
以上是我的TEST BENCH 文件

  1. output reg b=1'b0;

复制代码


这个是什么……

count1到底是多少位的 为什么有count1<=2'b00;
output reg b=1'b0;是什么 是复位吗?
你说的原因可能是b没有上电复位导致的
不管怎么样 你得先把代码写规范啊

count1到底是多少位的 为什么有count1<=2'b00;
output reg b=1'b0;是什么 是复位吗?
你说的原因可能是b没有上电复位导致的
不管怎么样 你得先把代码写规范啊



    额。这是我后来试验别的东西的时候忘记改回来了



    上电复位的时候给一个初值啊,我也没见过,不过别人告诉我这么做的
没有设置这个的时候b输出一直是高组态  
这么写之后b就有电平了

如果猜得没错的话count1信号仿真应该是一条红线。



    CLK信号是有的
   输出B 是一根低电平的绿线
   板子上测试是对的

板子上测应该是正确的,但仿真就肯定不行了。如果没赋初值的话,就会是一条红线,count1信号你调出来看看就知道了。



    我也觉得是,count1没有赋初值的问题。仿真时count1是一组红线。板级验证时,count1默认就是0了。

明显是仿真需要的时间太长了,仿真时间要200000000ns,b才反转一次

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

网站地图

Top