一个cpld的案例分析

[复制链接]
3434|10
 楼主| wyuanq 发表于 2008-3-17 10:44 | 显示全部楼层 |阅读模式
CPLD, ST, RS, pc, AD
本想将CLK信号分频1/256,然后去让一个LED等闪烁。可是示波器测出来的记过是只分频到了1/2。器件是XC9572XL。<br />今天把程序改了一下,让问题暴露得更明显些,并且拍下了波形,大家都来讨论一下,看看究竟是什么问题.时钟频率是50MHZ的.<br />好象内部信号的振铃相当严重.<br />相当困惑,哪位朋友遇到过类似问题,指点一下!!<br />module&nbsp;pcicfg72(pclk,rst,ad,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledr&nbsp;&nbsp;&nbsp;&nbsp;//to&nbsp;led<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />input&nbsp;pclk;<br />input&nbsp;rst;<br />output&nbsp;reg&nbsp;ledr;<br />output&nbsp;reg[31:0]&nbsp;ad;<br />wire&nbsp;clk;<br />wire&nbsp;n_rst;<br /><br />IBUF&nbsp;IBUF_inst(&nbsp;.O(n_rst),&nbsp;.I(rst)&nbsp;);<br />BUFG&nbsp;BUFG_inst(&nbsp;.O(clk),&nbsp;.I(pclk)&nbsp;);&nbsp;//Clock&nbsp;buffer&nbsp;input<br /><br />always&nbsp;@(posedge&nbsp;clk)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ad&nbsp;&lt=&nbsp;ad&nbsp;+&nbsp;1;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />endmodule&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />
 楼主| wyuanq 发表于 2008-3-17 10:52 | 显示全部楼层

附件是各个信号的实际波形

CLK&nbsp;:&nbsp;50MHZ<br />ad0&nbsp;:&nbsp;25M<br />ad1&nbsp;:&nbsp;12.5M<br />ad2&nbsp;:&nbsp;不稳定,大概是18.6M<br />ad3&nbsp;:&nbsp;25M<br />ad4&nbsp;:&nbsp;25M<br />ad5&nbsp;:&nbsp;25M<br />ad6&nbsp;:&nbsp;25M<br />ad7&nbsp;:&nbsp;25M<br /><br /><br /> <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20083/2008317104841237.rar'>https://bbs.21ic.com/upfiles/img/20083/2008317104841237.rar</a>
风中的舞者 发表于 2008-3-19 17:23 | 显示全部楼层

这个波形没什么问题吧?

  
风中的舞者 发表于 2008-3-19 17:38 | 显示全部楼层

接标准方波把探头调好再测

  
peiyuan1 发表于 2008-3-23 13:53 | 显示全部楼层

这是正常方波,如果还觉得不满意,则要调整输出和输入阻抗的

  
cyclonecy 发表于 2008-3-23 22:13 | 显示全部楼层

示波器探头的接地夹有没有良好接地?

  
 楼主| wyuanq 发表于 2008-3-24 10:55 | 显示全部楼层

感谢大家的回答

感谢大家的回答,这个波形好象是没什么问题,除了过冲和振铃有点大以外.<br />可能大家没有看哪个RAR附件,里面还有还几张照片,是一个8位counter的8个位.<br />按照逻辑来分析,这个counter的第0位的频率应该是CLK频率的1/2,第1位频率是clk频率的1/4,第2位是1/8,......,第7为是1/256.modelsim仿真的结果也是这样的.<br />但是,程序下载下去,运行的结果就不是这样了,第0位,第1位是正常的,第2,3位就呈现出不稳定的非周期信号,第4,5,6,7位信号稳定,频率都是CLK的1/2.<br />不知道究竟是什么问题?&nbsp;器件是好的,别人给我的一个JED文件可以正常工作.<br />我换了一个12MHZ的时钟也是如此.<br />?????????&nbsp;&nbsp;&nbsp;谢谢
jiang456 发表于 2008-3-24 20:57 | 显示全部楼层

关于这个程序

此程序上面有定义rest,但在应用中却没有rest,对其复位,<br />module&nbsp;inv1(ad,clk,n_rst&nbsp;);<br />input&nbsp;a,b;<br />output&nbsp;reg[31:0]&nbsp;c;<br />always@(posedge&nbsp;clk&nbsp;&nbsp;or&nbsp;&nbsp;negedge&nbsp;n_rst)<br />begin<br />&nbsp;&nbsp;if(n_rst==0)<br />&nbsp;&nbsp;ad=0;<br />&nbsp;else&nbsp;<br />&nbsp;&nbsp;ad=ad+1;<br />end<br />endmodule<br />
gentlegnat 发表于 2008-3-25 09:25 | 显示全部楼层

kankan

楼上的说的不错~~~reset信号需要加上,signal没有初始是很危险的<br />always@(posedge&nbsp;clk&nbsp;&nbsp;or&nbsp;&nbsp;negedge&nbsp;n_rst)
 楼主| wyuanq 发表于 2008-3-25 20:48 | 显示全部楼层

问题解决啦!!

问题解决啦!!<br />经过我的努力,终于找到问题的根源了,是软件的问题.<br />我用的是ISE7.1(**版),有朋友说,这个版本的软件相当不稳定,BUG很多.<br />我换了很就以前使用的ISE6.2就好了,什么问题也没有&nbsp;.<br />感谢那些热心回贴的朋友,也希望用Xilinx器件的朋友小心,不要用7.1版本的ISE.
hitajian 发表于 2008-3-26 08:51 | 显示全部楼层

现在ISE 10.1都出来了.

版本的更新真是快.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

29

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部