2601|2

367

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

初学者,被开发板的垃圾代码坑了一晚上 [复制链接]

       本人用的是黑金的AX309开发板,最近初学FPGA。今天仿真他们教程里面的串口例程,首先一个简单的时钟分频模块的仿真就出了问题。

首先这是他们的代码:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Module Name:    clkdiv
// 产生一个波特率9600的16倍频的时钟,9600*16= 153600
// 相当于50MHz的326分频,50000000/153600=326
//////////////////////////////////////////////////////////////////////////////////
module clkdiv(clk50, clkout);
input clk50;              //系统时钟
output clkout;          //采样时钟输出
reg clkout;
reg [15:0] cnt;

//分频进程,对50Mhz的时钟326分频
always @(posedge clk50)   
begin
  if(cnt == 16'd162)
  begin
    clkout <= 1'b1;
    cnt <= cnt + 16'd1;
  end
  else if(cnt == 16'd325)
  begin
    clkout <= 1'b0;
    cnt <= 16'd0;
  end
  else
  begin
    cnt <= cnt + 16'd1;
  end
end
endmodule

我写的测试代码:

`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Additional Comments:
// 
////////////////////////////////////////////////////////////////////////////////

module DIV_tb;

	// Inputs
	reg CLK_50M;
	// Outputs
	wire CLK_DIV;

	// Instantiate the Unit Under Test (UUT)
	clkdiv uut (
		.clk50(CLK_50M),
		.clkout(CLK_DIV)
	);

	initial begin
		// Initialize Inputs
		CLK_50M = 0;
	
		// Wait 100 ns for global reset to finish
		#100;
        
		// Add stimulus here
	end
	
		always
			begin
				#10	CLK_50M = ~CLK_50M;
			end 		  
	  
	  
endmodule

    代码上看是没有什么问题,可是一导进modelsim里面仿真就傻眼了,模块的输出始终是X,一条红线直至仿真结束。

 

        然后各种看书,对比代码也不知道哪里出了错,后来看到一个网页上有说到相关的东西,怀疑是不是计数器没有复位导致状态不确定所以才这样的。然后我去改了代码,模块和testbench上都加入了Reset复位信号,然后仿真的结果就对了,时钟的分频信号终于有了输出:

    从这个事情可以看出,写代码的严谨、仿真测试有多重要。这家的产品真是误人子弟啊。不过从客观上还是要感谢一下他们,如果不是这样,我也体会不到复位和初值的重要性

 

此帖出自FPGA/CPLD论坛

最新回复

很多的教程里面是不考虑仿真的,都是直接下板去做。   详情 回复 发表于 2019-7-14 14:02
点赞 关注
个人签名拿PADS和Allegro软件来吹牛的都是些土鳖
 

回复
举报

367

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

这个版块好冷这个版块好冷这个版块好冷这个版块好冷这个版块好冷这个版块好冷这个版块好冷

此帖出自FPGA/CPLD论坛
个人签名拿PADS和Allegro软件来吹牛的都是些土鳖
 
 

回复

122

帖子

0

TA的资源

版主

板凳
 

很多的教程里面是不考虑仿真的,都是直接下板去做。

此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表