结绳法-跨时钟域.docx

结绳法-跨时钟域.docx

ID:52909658

大小:470.86 KB

页数:9页

时间:2020-03-31

结绳法-跨时钟域.docx_第1页
结绳法-跨时钟域.docx_第2页
结绳法-跨时钟域.docx_第3页
结绳法-跨时钟域.docx_第4页
结绳法-跨时钟域.docx_第5页
资源描述:

《结绳法-跨时钟域.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、关于FPGA异步时钟采样--结绳法的点点滴滴  2011-09-1619:12:05

2、  分类: Verilog

3、举报

4、字号 订阅一.典型方法  典型方法即双锁存器法,第一个锁存器可能出现亚稳态,但是第二个锁存器出现亚稳态的几率已经降到非常小,双锁存器虽然不能完全根除亚稳态的出现(事实上所有电路都无法根除,只能尽可能降低亚稳态的出现),但是基本能够在很大程度上减小这种几率。最后的一个D触发器和逻辑电路组成的是一个采沿(上升沿,修改一下就能采集下降沿)电路,即当第二个锁存器的输出中出现1个上升沿,那

5、么最后的逻辑输出就会产生1个clock的高电平脉冲二.结绳法 1.结绳法1:利用数据的边沿作时钟(例子中上升沿)。(可以将脉冲无限延长,直到可以采集到数据,然后复位,要考虑产生数据的频率)。  实例1 说明:这种结绳法的原理是,数据作为Din_clkA,即当数据有上升沿(0->1)时,寄存器1的输出将会稳定在高电平,此时等待clkB采样,     当clkB完成采样后,寄存器4会输出高电平,若此时Din_clkA为高(为低复位时候吧?)电平,那么即可完成复位,开始下一次采样等待。    这里需要注

6、意的是当数据来临(即上升沿)时,clkB域需要等待3个clkB才会在寄存器4输出并完成输入端的复位,所以Din如果变化较快即持续时间短于3个clkB,也就是clkA频率大于clkB的1/3,那么这时Din的变化将无法被采样到,因为clkB域需要3个clkB才能完成采样,并且此时Din必须是低电平才能复位,并且复位后的0也要延迟3个clkB才能到达输出端.    因此说,在慢时钟采样快时钟的时候,结绳法适合采样数据较少(即脉冲间隔较大)的控制信号。即脉冲间隔Ta>3Tb;即等待3个clkB时钟后,完

7、成复位,才允许下一个输入脉冲。实例2  说明:与实例1的区别是,这种复位更迅速,不需要等到clkA为低电平,即可完成复位。复位后,经过3个clkB,寄存器2~4相继复位 2结绳法2:利用数据作为异步复位,置位信号。(适合将不足时钟宽度的脉冲扩展1周期) 实例1:输入高脉冲(clka域),输出高脉冲(clkb域)   说明:当clkB因为太慢,没有采到din_clkA时,din_clkA的高电平脉冲会异步置位,即寄存器1从clkA的上升沿开始到clkB的下一个上升沿之间输出为高,寄存器2采样到高电平

8、,并持续1个clkB,高电平持续时间为1个clkB多一点;从而将不足一个始终宽度的脉冲扩展为一个周期.      当clkB足够快,其上升沿采到了din_clkA时,置位作用从clkA的上升沿开始,跨越了clkB的上升沿,那么输出高电平持续了2个clkB还多一点,因为寄存器1持续了1个周期多一点。实例2:输入高脉冲(clka域),输出低脉冲(clkb域)  说明:同上实例3:输入低脉冲(clka域),输出低脉冲(clkb域)  说明:同上实例4:输入低脉冲(clka域),输出高脉冲(clkb域) 

9、 说明:同上 3结绳法3:输入作为数据输入,同样也是检测高有效后,输出一直为高,异步时钟域可以采集到数据后再复位。因为没有将输入作为时钟,或者作为异步set,reset,所以这类方便比较常用。参考代码:modulesync_clk1_clk2(clk1,rst_n1,clk2,rst_n2,data_clk1_i,data_clk2_o);inputclk1;inputrst_n1;inputclk2;inputrst_n2;inputdata_clk1_i;outputdata_clk2_o;r

10、egdata_clk1_q1;regdata_clk1_q2;regdata_clk2_q1;regdata_clk2_q2;regdata_clk2_q3;regdata_clk2_q4;regdata_clk2_q5;wiredata_clk1;assigndata_clk1=data_clk1_i

11、(!data_clk2_q5&data_clk1_q1);always@(posedgeclk1ornegedgerst_n1)beginif(!rst_n1)begindata_clk1_q1<

12、=#1'b0;data_clk1_q2<=#1'b0;endelsebegindata_clk1_q1<=#1data_clk1;data_clk1_q2<=#1data_clk1_q1;endendalways@(posedgeclk2ornegedgerst_n2)beginif(!rst_n2)begindata_clk2_q1<=#1'b0;data_clk2_q2<=#1'b0;data_clk2_q3<=#1'b0;endelsebegindata_clk2_q1<=#

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。