- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于FPGA异步时钟采样--结绳法的点点滴滴??
2011-09-16 19:12:05|??分类:? \o Verilog Verilog|举报|字号?订阅
一.典型方法
? ?典型方法即双锁存器法,第一个锁存器可能出现亚稳态,但是第二个锁存器出现亚稳态的几率已经降到非常小,双锁存器虽然不能完全根除亚稳态的出现(事实上所有电路都无法根除,只能尽可能降低亚稳态的出现),但是基本能够在很大程度上减小这种几率。最后的一个D触发器和逻辑电路组成的是一个采沿(上升沿,修改一下就能采集下降沿)电路,即当第二个锁存器的输出中出现1个上升沿,那么最后的逻辑输出就会产生1个clock的高电平脉冲
二.结绳法
?1.结绳法1:利用数据的边沿作时钟(例子中上升沿)。(可以将脉冲无限延长,直到可以采集到数据,然后复位,要考虑产生数据的频率)。
??实例1
?说明:这种结绳法的原理是,数据作为Din_clkA,即当数据有上升沿(0-1)时,寄存器1的输出将会稳定在高电平,此时等待clkB采样, ? ? ? ? ?当clkB完成采样后,寄存器4会输出高电平,若此时Din_clkA为高(为低复位时候吧?)电平,那么即可完成复位,开始下一次采样等待。
? ? ? ?这里需要注意的是当数据来临(即上升沿)时,clkB域需要等待3个clkB才会在寄存器4输出并完成输入端的复位,所以Din如果变化较快即持续时间短于3个clkB,也就是clkA频率大于clkB的1/3,那么这时Din的变化将无法被采样到,因为clkB域需要3个clkB才能完成采样,并且此时Din必须是低电平才能复位,并且复位后的0也要延迟3个clkB才能到达输出端.
? ? ? ?因此说,在慢时钟采样快时钟的时候,结绳法适合采样数据较少(即脉冲间隔较大)的控制信号。即脉冲间隔Ta3Tb;即等待3个clkB时钟后,完成复位,才允许下一个输入脉冲。
实例2
? ? 说明:与实例1的区别是,这种复位更迅速,不需要等到clkA为低电平,即可完成复位。复位后,经过3个clkB,寄存器2~4相继复位
?2结绳法2:利用数据作为异步复位,置位信号。(适合将不足时钟宽度的脉冲扩展1周期)
?实例1:输入高脉冲(clka域),输出高脉冲(clkb域)
? ? ?说明:当clkB因为太慢,没有采到din_clkA时,din_clkA的高电平脉冲会异步置位,即寄存器1从clkA的上升沿开始到clkB的下一个上升沿之间输出为高,寄存器2采样到高电平,并持续1个clkB,高电平持续时间为1个clkB多一点;从而将不足一个始终宽度的脉冲扩展为一个周期.
? ? ? ? ? ?当clkB足够快,其上升沿采到了din_clkA时,置位作用从clkA的上升沿开始,跨越了clkB的上升沿,那么输出高电平持续了2个clkB还多一点,因为寄存器1持续了1个周期多一点。
实例2:输入高脉冲(clka域),输出低脉冲(clkb域)
? ? 说明:同上
实例3:输入低脉冲(clka域),输出低脉冲(clkb域)
? ? 说明:同上
实例4:输入低脉冲(clka域),输出高脉冲(clkb域)
? ? 说明:同上?
3结绳法3:输入作为数据输入,同样也是检测高有效后,输出一直为高,异步时钟域可以采集到数据后再复位。因为没有将输入作为时钟,或者作为异步set,reset,所以这类方便比较常用。
参考代码:
module sync_clk1_clk2(
clk1 ,
rst_n1 ,
clk2 ,
rst_n2 ,
data_clk1_i ,
data_clk2_o
);
input clk1 ;
input rst_n1 ;
input clk2 ;
input rst_n2 ;
input data_clk1_i ;
output data_clk2_o ;
reg data_clk1_q1 ;
reg data_clk1_q2 ;
reg data_clk2_q1 ;
reg data_clk2_q2 ;
reg data_clk2_q3 ;
reg data_clk2_q4
您可能关注的文档
- 临床生物化学检验重点.doc
- 角平分线的应用.doc
- 角色游戏:超市.doc
- 绞吸船挖泥导航系统配套方案.doc
- 临海复杂地质条件旋喷桩止水帷幕工法.doc
- 脚手架及贝雷桥项目环评-建设项目环境影响报告表.doc
- 脚手架技术交底(有附图).doc
- 临离高速公路某隧道施工组织设计投标分离式隧道.doc
- 临时脚手架搭设方案.doc
- 脚手架作业安全管理规定.doc
- 人工智能助力小学语文教学资源内容构建与学生文学素养匹配策略教学研究课题报告.docx
- 文创盲盒市场消费者购买决策心理研究.docx
- 5G时代数据中心绿色节能技术布局与挑战报告.docx
- 医疗行业2025:在线医疗平台医生资源配置与行业风险管理.docx
- 2025年跨境电商办公用品电商供应链跨境电商供应链金融风险管理创新与实践案例.docx
- 基于认知心理学的高中英语教学策略创新与实践教学研究课题报告.docx
- 高三毕业感言致辞稿2024(31篇).docx
- 分布式储能领域2025年氢能源应用案例分析及发展趋势研究报告.docx
- 宠物社交平台用户行为与宠物用品消费趋势研究报告.docx
- 2025年在线医疗平台服务质量与患者健康知识普及报告.docx
文档评论(0)