社区导航

 

搜索
查看: 423|回复: 2

[分享] 初学者,被开发板的垃圾代码坑了一晚上

[复制链接]

401

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2019-7-4 23:37 | 显示全部楼层 |阅读模式

       本人用的是黑金的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,一条红线直至仿真结束。

image.png

 

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

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

 

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


回复

使用道具 举报

401

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 6 天前 | 显示全部楼层

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

拿PADS和Allegro软件来吹牛的都是些土鳖


回复

使用道具 举报

59

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 4 天前 | 显示全部楼层

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



回复

使用道具 举报

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

关闭

站长推荐上一条 /1 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-7-18 21:20 , Processed in 0.127052 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表