论文部分内容阅读
随着科学技术的发展,在现代数字集成电路中,已经可以使设计规模达到千万门级甚至更大规模。同时,由于功能的复杂性,现代集成电路内部已经不可能只使用单一的时钟进行设计,通常一个系统中会涉及到多个时钟。如果在不同时钟域之间直接进行数据传输,将会导致亚稳态的产生和传播,会造成数据丢失或者功能错误,甚至可能会造成整个系统的崩溃。因此,设计人员必须在电路设计中加入相应的同步机制,以确保信号在不同的时钟域之间传输时能够正确可靠地进行。 本文从触发器的时序理论出发,分析数字电路设计中跨时钟域通信时亚稳态现象产生的原因和危害,然后系统地分析和研究了解决跨时钟域通信问题常用的各种同步技术,分析和比较它们在不同场合下的应用以及各自存在的优缺点。 然后,以一个跨时钟域通信的系统--SD卡控制器为项目背景,论述了整个系统的硬件架构设计,并针对其中的跨时钟域问题进行了具体的分析、设计和实现。其中,优化了系统中异步FIFO的设计,并对跨时钟域通信的缓存机制采用了DMA传输以及乒乓缓存的设计,有效提高了系统的通信速率。在实现同步的过程中采用了软硬件协同的机制和亚稳态屏蔽等策略。 最后,对跨时钟域系统的验证方法进行了研究,并对SD卡控制器项目进行了全面的功能验证和FPGA验证。 综上所述,本文先从理论上研究和分析了解决问题的方法,然后以SD卡控制器项目为例论述了具体的硬件设计和同步技术的应用,并经过实际流片证明了该项目的设计方法和验证方法的可行性,对同类跨时钟域通信系统的设计和验证具有一定的指导和借鉴意义。 鉴于跨时钟域通信目前尚无一套很完善的设计和验证机制,本文主要的难点和创新点在于: (1)SD卡控制器项目中补丁机制的设计,便于固件升级更新和调试; (2)异步FIFO、DMA传输、乒乓BUFFER在项目中的结合应用,有效地解决了项目中数据跨时钟域传输的问题; (3)在实现同步的过程中,采用了软硬件协同的机制和亚稳态屏蔽等策略; (4)在验证过程中,解决了FPGA板级时钟毛刺的问题; (5)设计了仿真平台的SD Reader和NAND-FLASH仿真模型,满足了仿真和调试的需求; (6)功能仿真、结构验证、FPGA原型验证,有效地验证了SD卡控制器项目中跨时钟域通信的可靠性。