在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8952|回复: 21

关于IO口输出并行数据时的毛刺问题的解决方法?

[复制链接]
发表于 2005-10-9 12:41:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我在做一个高速DA时,数据率是50M,IO口在输出并行数据(D触发器输出端直接接IOPAD),会出现毛刺现象(在用modsim后仿时发现的),就是在数据发生改变时,每个bit改变时间不同步(我使用了全局时钟)。
观察发现,D触发器输入端数据并没有毛刺,所以可以肯定问题出在时钟上,请问这个问题该如何解决。
FPGA中,时钟的扇出数最多要多大为好?我的CLKP 扇出有72,是不是太多了!
部分代码如下:
module TOP(CLK, RESB, TRIG, CLKP, CLKN, DA, DA_PD,TRIG2);
    input CLK;
    input RESB;
    input TRIG;
    output CLKP;
    output CLKN;
    output [15:0] DA;
    output DA_PD;
    input TRIG2;

wire [15:0] DA_D;   //DDS输出数据
mydds dds10(
   .DATA(DATA),
   .WE_F(WE_F),
   .WE_R(WE_R),
   .CLKP(CLKP),
   .CE(DDS1_CE),
   .ACLR(RES),
   .SINE(SINE),
   .COSINE(COSINE),
   .COSOUT(DA_D)  
   );
//DA
reg [15:0] DA;
always @(negedge CLKP or posedge RES)  //CLKP主时钟
  if(RES)
     DA<=0;
else
     DA<=DA_D;
发表于 2005-10-9 16:47:55 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

脉冲间隔多少
是否会影响DA输出
不影响就算了
为什么是下降沿输出?
 楼主| 发表于 2005-10-9 17:00:59 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

脉冲间隔多少 ----你指出现的毛刺把,基本每个数据都有,我看了每个BIT,发现每个bit数据在CLK来时发生跳变不是同步的,有的bit快,有的bit慢,这样才出现了毛刺
是否会影响DA输出----板子还在做,没有上板上调过。
不影响就算了
为什么是下降沿输出?----下降沿和上升沿都试过,一样的结果。考虑到DA的时序要求才用下降沿的,应该没区别把
请问这个和时钟的扇出数有没有关系?
还有,我使用DCM产生的CLKP和CLKN,相差180度,
从DCM出来的信号很好,CLKP和CLKN都经过BUFG后,2个信号的相差不等于180了。(后仿中,实际没测过)
发表于 2005-10-9 17:10:22 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

发个图上来吧
你说的好像不是毛刺,只是数据没有同步变化
 楼主| 发表于 2005-10-10 09:03:11 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

对,是没有同步变化
看看图能发上来吗
5_2798_4.jpg
 楼主| 发表于 2005-10-10 09:07:14 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

上图下面的是[15:0]DA  的波形,在每次变化时都有不稳定的状态
上面是每位数据的波形,可以看到数据没有同步变化
可是我用的是全局时钟,理应到各个触发器的时间基本相同才对
CLKP 50M   
`timescale 1ns / 1ps
发表于 2005-10-10 09:08:37 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

[这个贴子最后由atuhappy在 2005/10/10 09:09am 第 1 次编辑]

这个毛刺不会有影响的
在PCB板上看不出来的,而且你的DAC输出后一定要有滤波器的
发表于 2005-10-10 09:11:07 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

奇怪的是都在时钟下降沿之前变化的
 楼主| 发表于 2005-10-10 09:19:53 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

[这个贴子最后由pxj4283在 2005/10/10 09:52am 第 1 次编辑]

哦,那就好
再看看这个
我发现数据延迟好大啊,我是在CLKP下降沿触发,基本要到一个周期后才改变哦
always @(negedge CLKP or posedge RES)  //CLKP主时钟
if(RES)
    DA<=0;
else
    DA<=DA_D;
 楼主| 发表于 2005-10-10 09:21:10 | 显示全部楼层

关于IO口输出并行数据时的毛刺问题的解决方法?

我怀疑不是在下降沿之前变,而可能是延迟太大把
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 17:38 , Processed in 0.029044 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表