打印

一个cpld的案例分析

[复制链接]
1904|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyuanq|  楼主 | 2008-3-17 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CPLD, ST, RS, pc, AD
本想将CLK信号分频1/256,然后去让一个LED等闪烁。可是示波器测出来的记过是只分频到了1/2。器件是XC9572XL。
今天把程序改了一下,让问题暴露得更明显些,并且拍下了波形,大家都来讨论一下,看看究竟是什么问题.时钟频率是50MHZ的.
好象内部信号的振铃相当严重.
相当困惑,哪位朋友遇到过类似问题,指点一下!!
module pcicfg72(pclk,rst,ad,
                     ledr    //to led
                     );
input pclk;
input rst;
output reg ledr;
output reg[31:0] ad;
wire clk;
wire n_rst;

IBUF IBUF_inst( .O(n_rst), .I(rst) );
BUFG BUFG_inst( .O(clk), .I(pclk) ); //Clock buffer input

always @(posedge clk)    
    begin
        ad <= ad + 1; 
    end                   

endmodule            

相关帖子

沙发
wyuanq|  楼主 | 2008-3-17 10:52 | 只看该作者

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

CLK : 50MHZ
ad0 : 25M
ad1 : 12.5M
ad2 : 不稳定,大概是18.6M
ad3 : 25M
ad4 : 25M
ad5 : 25M
ad6 : 25M
ad7 : 25M



相关链接:https://bbs.21ic.com/upfiles/img/20083/2008317104841237.rar

使用特权

评论回复
板凳
风中的舞者| | 2008-3-19 17:23 | 只看该作者

这个波形没什么问题吧?

使用特权

评论回复
地板
风中的舞者| | 2008-3-19 17:38 | 只看该作者

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

使用特权

评论回复
5
peiyuan1| | 2008-3-23 13:53 | 只看该作者

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

使用特权

评论回复
6
cyclonecy| | 2008-3-23 22:13 | 只看该作者

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

使用特权

评论回复
7
wyuanq|  楼主 | 2008-3-24 10:55 | 只看该作者

感谢大家的回答

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

使用特权

评论回复
8
jiang456| | 2008-3-24 20:57 | 只看该作者

关于这个程序

此程序上面有定义rest,但在应用中却没有rest,对其复位,
module inv1(ad,clk,n_rst );
input a,b;
output reg[31:0] c;
always@(posedge clk  or  negedge n_rst)
begin
  if(n_rst==0)
  ad=0;
 else 
  ad=ad+1;
end
endmodule

使用特权

评论回复
9
gentlegnat| | 2008-3-25 09:25 | 只看该作者

kankan

楼上的说的不错~~~reset信号需要加上,signal没有初始是很危险的
always@(posedge clk  or  negedge n_rst)

使用特权

评论回复
10
wyuanq|  楼主 | 2008-3-25 20:48 | 只看该作者

问题解决啦!!

问题解决啦!!
经过我的努力,终于找到问题的根源了,是软件的问题.
我用的是ISE7.1(**版),有朋友说,这个版本的软件相当不稳定,BUG很多.
我换了很就以前使用的ISE6.2就好了,什么问题也没有 .
感谢那些热心回贴的朋友,也希望用Xilinx器件的朋友小心,不要用7.1版本的ISE.

使用特权

评论回复
11
hitajian| | 2008-3-26 08:51 | 只看该作者

现在ISE 10.1都出来了.

版本的更新真是快.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

29

帖子

1

粉丝