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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9444|回复: 6

[求助] FDCE触发器的CE端亚稳态的问题

[复制链接]
发表于 2014-6-9 22:38:38 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 squirrel_216 于 2014-6-9 23:38 编辑

在FPGA的FDCE触发器中,若D端数据一直处于稳定状态,CE端接了一个异步逻辑。那么,若时钟沿到来时CE端处于亚稳态,Q端输出应该怎么分析?会不会输出一个不确定的值?
求大神帮解。
时序.png
图有点看不清,右上角那个时间是15ns。


其中,wr_en是由组合逻辑产生的异步信号,像这种情况会不会引起reg寄存器的写入错误?
相关语句:
always @(posedge clk or negedge rst_n)begin
    if(!rst_n) reg<=32‘d0;
    else if(wr_en) reg <=data[31:0];
end
发表于 2014-6-10 08:53:08 | 显示全部楼层
回复 1# squirrel_216


   从时序图上来看,WR_EN这个要持续好几个clk cycle,个人意见可以换一种做法,来尽量避免异步设计。用clk来采样wr_en,把这个信号当作一个data来sample,




  1. reg wr_en_f1;reg wr_en_f2;
  2. reg wr_en_f3;
  3. always @(posedge clk or negedge rst_n) begin
  4. if(!rst_n) begin
  5. ...
  6. end
  7. else begin
  8. wr_en_f1 <= wr_en;
  9. wr_en_f2 <= wr_en_f1;
  10. wr_en_f3 <= wr_en_f2;
  11. end
  12. wire wr_en_f3_pos = wr_en_f2 && wr_en_f3;


复制代码


然后用wr_en_f3_pos来触发data的sample。
发表于 2014-6-10 09:10:34 | 显示全部楼层
ff的输入端,包括D CE SR,如果不是与CLK同步的,都会产生问题。
多数情况下,有可能不会出现问题,但是问题一定是存在的,只是发生的概率问题。
我们之前做过的设计,SR端用了异步信号,产生了奇怪的上电错图问题,这个是很难debug的,因为复现频率太低。
发表于 2014-6-10 09:57:04 | 显示全部楼层
同意LS两位。
发表于 2014-6-10 16:00:53 | 显示全部楼层
只要是异步信号就必然存在亚稳态,只是概率的高低问题。典型的异步信号从慢速时钟域进入高速时钟域的处理。2楼是正解。但是wr_en_f3_pos应该是取wr上升沿,应该是2楼笔误。
发表于 2014-6-11 00:11:37 | 显示全部楼层
用写使能打2拍之后,判断其上升沿,然后写入,在该上升沿脉冲期间写使能和数据均稳定。如楼上几位所说。
发表于 2014-6-11 10:21:42 | 显示全部楼层
为什么这个写使能这么宽,数据跟这个clk也不是同步的吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 10:47 , Processed in 0.325698 second(s), 10 queries , Gzip On, Redis On.

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