wyuanq 发表于 2008-3-17 10:44

一个cpld的案例分析

本想将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&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 />https://bbs.21ic.com/upfiles/img/20083/2008317104332102.jpg

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&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都出来了.

版本的更新真是快.
页: [1]
查看完整版本: 一个cpld的案例分析