首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【转帖】CPLD使用经验

【转帖】CPLD使用经验

CPLD使用经验
使用EPM7128SLC84-15,其中主要的功能是移位寄存器,就是类似于74LS164或4518那样的功能。PCB加工好,元件装配,程序下载,一切顺利,但是系统开机后就发现麻烦了:不能正常移位。
    把本来相对复杂的功能全部去掉,最后只剩下一个最基本的移位寄存器:DATA,CLK,QOUT。但是就是无法移位。
    还在CPLD可以在线重复编程,就试用了几种模式,结果发现无论是用原理图画出来的,还是用VHDL写的,还是LPM调用的都是一样的结果。尝试了若干次后发现其实不是不能移位,而是移位数不对:100位的移位只移动了不到10位就到输出了。如果移位数小于几十就一下移出了。
    怀疑是CLK信号上有毛刺,但是用TEK210示波器看不出。
    换板,换芯片,换电脑,无效。
    因为此前已经用EPM7128S搞好一块板子,故实在想不出有什么问题。两天过去了,电话咨询骏龙科技,还是不知如何解决。决定把板子带到上海去让骏龙科技的技术支持人员看看。
    所有东西收拾好,到了骏龙,一位毛工程师接待。看了半天,说是时钟信号的质量可能有问题。天哪,我的时钟是用AT2051模拟的,P1口直接输出,如果这个还不行,那我那系统上的时钟质量还要差。
毛工提到以前遇到过一位宁波的也是一个类似的问题,不过是分频器,最后用施密特触发器对时钟进行整型后就好了。
    他如此一说,我好像也看到了答案。由于板上的输入信号很多是从比较远的一个机箱过来的,在上次做的那块板时就发现信号上会有杂波和毛刺,加一个RC低通就好了。所以我就把后设计的所有输入信号都加上了RC(信号经过一个1K的电阻到CPLD的输入,同时在CPLD的输入和地线之间接一个103的电容)。
    既然用示波器看不出毛刺,那是不是波形的上升太慢,导致在逻辑临界点出现了多个时钟,由于分立元件速度太慢,不会有太大的影响,用了快速的CPLD影响就很明显了。
    当场拆掉RC,好,移位正常。不,移位数还是不对,但是已经很接近实际数了。谢过毛工后回。
    回公司后,觉得是不是加一上拉电阻就可以提升上升沿的速度。加上后没有效果。
    加一74LS14,一个下午,所有功能都调试出来了。
    问题时是很简单,但是还是费了好大的周折。

返回列表