跨越鸿沟——异步信号的跨时钟域处理

2007-8-22 22:21 6298 0 2 分类: FPGA/CPLD

    前些天在网上查找资料时,找到了一篇EDN杂志2003年7月号上的文章:Crossing the abyss: asynchronous signals in a synchronous world。这篇文章是EDN 14th Annual Innovation Awards (2003)的获奖文章,是当年的BEST CONTRIBUTED ARTICLE OF 2003。


    文章的作者是Mike Stein,Paradigm Works公司的工程师。


    这篇文章系统地介绍了跨时钟域信号处理的各种方法,可谓经典。


    这些天总结了先前遇到的几个接口时序问题,跨时钟域信号处理都是其中的难点和易错点。在小组里也遇到一个朋友对这种处理方法存在疑惑,所以把这篇文章整理出来,供大家参考。


    中文版的在这里,从日期上看整整晚了一年,出现在EDN China 2004年7月号上。从这一点上看,学好英文还是很有必要的。


 


    相关文章:ASIC中的异步时序设计

广告

文章评论 2条评论)

登录后参与讨论

htbadboy_451650020 2014-10-15 11:34

看到这篇博文,有点相见恨晚,现在只能在网上找到英文版的了,上面中文版链接失效了啊

ash_riple_768180695 2007-8-23 22:35

具体是哪个处理方式呢?

“采用一个保持寄存器和握手方式”与我在FPGA时序问题一例——异步接口和毛刺敏感电路保护中提到的“先暂存,再写入”方式本质上是同一电路。只不过作者描述的是一个可靠的握手电路,而我处理的是一个单方面发送数据的电路,需要在FPGA内部实现数据的保持,然后再用同步方式写入。

这篇文章的这种处理方式真正解决了跨时钟域总线传输的问题,比某些文章中把总线跨时钟域问题简单归结为使用FIFO解决的方法清晰明确了许多,这一点是一些经典的印刷出版物里都不曾提出的。

这种方法真正是作者思考的结果,而不是生搬硬套教条的结论。

相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
2
0
广告