#1楼主:51单片机与FPGA之间的接口同步疑问:)
文章发表于:2008-05-10 10:30
看了你们的讨论,觉得同步确实很重要。我现在正在做一个项目,51单片机和FPGA之间有数据交换。在前面的设计中,没有注意同步的问题。可能需要对设计做些修改。看了《跨越鸿沟:同步世界中的异步信号》这篇文章,很多概念还是云里雾里的,呵呵。其中有个概念对我挺有用的,就是“为了使同步工作能正常进行,从某个时钟域传来的信号应先通过原时钟域上的一个触发器,然后不经过两个时钟域间的任何组合逻辑,直接进入同步器的第一个触发器中。”
如果我要将51单片机到FPGA之间的信号线(有P0[7..0],P2[7..0],ALE,RD,WR)在FPGA内进行同步,原时钟域的信号该如何选择呢?

注:原先我是在FPGA中做了一些假RAM,用这种方式实现了两者的数据交换,但是大部分是对单地址的读/写。在使用FIFO的时候,就会牵涉到信号同步的问题,“这种设计需要单时钟宽度脉冲以及用于读、写选通的脉冲同步器,因为当一个电平信号从一个时钟域跨越到
另一个更快的时钟域时,在较快时钟域中它能在更多的时钟周期中保持有效。由于只要读或写信号是有效的,每个计数器就会发生变化,因此较快的时钟域就检测到更多的读、写,超出较慢时钟域实际发生的数量。脉冲同步器可以将一个时钟域的时钟宽度脉冲转换为新时钟域的时钟宽度脉冲,每个脉冲都表示一次 FIFO 的读或写。”
以上只是我的一点想法,红色部分是文章里觉得挺有用的部分,里面的一些估计要多看几遍再加上实践才能体会了。