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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4033|回复: 13

[求助] FPGA异步输入

[复制链接]
发表于 2014-4-19 11:07:59 | 显示全部楼层 |阅读模式

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

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

x
80M时钟监测输入脉冲信号的电平状态,输入脉冲信号的上升、下降时间的要求是什么?如果给一个1us上升时间的脉冲信号,工作的结果是什么?
发表于 2014-4-19 11:34:37 | 显示全部楼层
主要看你脉冲宽度是多少,只有宽度大于80MHz的时钟宽度,才能够采集到。
不知道楼主有没有搞错“上升时间”和”脉冲宽度“,如果是上升时间的话,1us也太大了吧?
触发器容易产生亚稳态,不过多用几级触发器进行同步的话,大概也可以。
 楼主| 发表于 2014-4-19 11:39:24 | 显示全部楼层
回复 2# huiyuanai3
1us是上升时间,我关心的其实也是亚稳态的问题。我可以将这个上升时间控制到400ns左右,但是12.5ns周期的时钟总是会在上升时间内采集到几个点,怎样的设计才能够保证一个上升沿的输入我能够且只能够采集到一次低到高的切换?
发表于 2014-4-19 11:46:23 | 显示全部楼层
你百度一下上升沿检测电路。另外多用几级触发器进行同步。
 楼主| 发表于 2014-4-19 11:49:45 | 显示全部楼层
降频采样是不是唯一的出路?……
发表于 2014-4-19 18:03:07 | 显示全部楼层
你百度一下上升沿检测电路。另外多用几级触发器进行同步。
发表于 2014-4-19 22:58:31 | 显示全部楼层
楼主,我也遇到同样的问题,我也觉得应该是降频来处理吧。
 楼主| 发表于 2014-4-20 08:10:25 | 显示全部楼层
嗯,多用几级同步触发器应该是对上升时间小于时钟周期的情况适用(即第一个触发器不会连续多次采集到亚稳态的输入)。有时间设计一个实验验证一下:多级同步触发器如果输入波形上升比较长,在上升时间的过程中,输出会有多次翻转。
发表于 2014-4-20 10:00:42 | 显示全部楼层
如果输入的电平信号不是异步信号(高有效),那么缓存一拍后去上升沿,比如输入的电平信号是sin, 时钟是clk, 复位信号是rstn,用如下方式可只以在第一个上升沿(start)采集数据
reg sin_q;
wire start;
always@(posedge clk or negedge rstn)begin
    if(!rstn)    sin_q <= 1'b0l;
   else sin_q <=  sin;
end
assign start = sin&(~sin_q);
如果是异步信号,那么把电平信号同步后采样
reg sin_q;
reg sin_2q;
wire start
always@(posedge clk or negedge rstn)begin
    if(!rstn)begin
       sin_q <= 1'b0l;
      sin_2q <= 1'b0;
   end
   else begin
      sin_q <=  sin;
      sin_2q <= sin_q;
end
assign start = sin_q&(~sin_2q);
发表于 2014-4-20 20:44:42 | 显示全部楼层
回复 3# cengzm07


   可以用移位寄存器进行脉冲宽度判断,在进行触发
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-5 19:39 , Processed in 0.026104 second(s), 8 queries , Gzip On, Redis On.

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