帮忙看下此电路

[复制链接]
2800|7
 楼主| wxfxwk1986 发表于 2011-3-17 16:15 | 显示全部楼层 |阅读模式
在看赛林思官网上一个同步模块的代码时,有点看不懂,请问如下的一个process代表什么电路?谢谢
--
--  Synchronize the INCREMENT_BUFFER_COUNT signal to the READ clock and one shot it
--
process (RD_CLK, RESET)
begin
   if RESET='1' then
      INCREMENT_BCOUNT_METASTABLE <= '0';
      INCREMENT <= '0';
   elsif RD_CLK='1' and RD_CLK'event then
      INCREMENT_BCOUNT_METASTABLE <= (INCREMENT_BCOUNT_CAPTURED and (not INCREMENT));
      INCREMENT <= (INCREMENT_BCOUNT_METASTABLE and (not INCREMENT));
   end if;
end process;
 楼主| wxfxwk1986 发表于 2011-3-17 17:09 | 显示全部楼层
这样的电路如何能达到同步的目的的?
sxhhhjicbb 发表于 2011-3-20 15:36 | 显示全部楼层
INCREMENT_BCOUNT_METASTABLE 的序列是:INCREMENT_BCOUNT_CAPTURED ,INCREMENT_BCOUNT_CAPTURED ,0
INCREMENT:的序列是:0,INCREMENT_BCOUNT_CAPTURED ,0
不明白有什么作用,但这种方法好像很巧妙。比用状态机节约了不少资源。
sxhhhjicbb 发表于 2011-3-20 15:39 | 显示全部楼层
如果INCREMENT_BCOUNT_CAPTURED 为1,好像是个不错的三分频电路呀。好强。明天回公司研究研究。
a3213211353 发表于 2011-3-23 14:52 | 显示全部楼层
看得不大明白
ttkz 发表于 2011-3-28 22:48 | 显示全部楼层
x = INCREMENT_BCOUNT_CAPTURED
y0 = INCREMENT_BCOUNT_METASTABLE
y1 = INCREMENT

那么
y0 <= x and not y1
y1 <= y0 and not y1
x 是输入
y1是输出
当x连续为L时,输出y1=L
当x出现1~2个周期宽度的H电平时,y1也会输出1个周期宽度的H电平。y1的拉低是自动完成的,与x无关。
总体来说,处理步骤为:
首先,这个同步电路对输入进行2周期延迟。这是同步电路通常的做法。可以减弱亚稳态影响。
然后,输出维持1周期H电平之后自动拉低。有一点巧妙,将亚稳态出现的几率大致降低了1半。

评分

参与人数 1威望 +1 收起 理由
sxhhhjicbb + 1 分析得真好

查看全部评分

 楼主| wxfxwk1986 发表于 2011-3-31 19:48 | 显示全部楼层
x = INCREMENT_BCOUNT_CAPTURED
y0 = INCREMENT_BCOUNT_METASTABLE
y1 = INCREMENT

那么
y0
ttkz 发表于 2011-3-28 22:48

最后一句怎么理解,求解释,谢谢。
ttkz 发表于 2011-4-1 22:53 | 显示全部楼层
呵呵,跟亚稳态原理有关系。我可是被这类问题折磨了大半年的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

250

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部