使用Verilg HDL实现异步FIFO设计与实现FIFO读写 时序.docVIP

  • 11
  • 0
  • 约1.07万字
  • 约 11页
  • 2016-10-01 发布于贵州
  • 举报

使用Verilg HDL实现异步FIFO设计与实现FIFO读写 时序.doc

使用Verilg HDL实现异步FIFO设计与实现FIFO读写 时序

使用Verilog HDL实现异步FIFO设计与实现 FIFO 读写 时序 在现代IC设计中,特别是在模块与外围芯片的通信设计中,多时钟域的情况不可避免。当数据从一个时钟域传递到另一个域,并且目标时钟域与源时钟域不相关时,这些域中的动作是不相关的,从而消除了同步操作的可能性,并使系统重复地进入亚稳定状态[1]。在有大量的数据需要进行跨时钟域传输且对数据传输速度要求比较高的场合,异步FIFO是一种简单、快捷的解决方案。   异步FIFO用一种时钟写入数据,而用另外一种时钟读出数据。读写指针的变化动作由不同的时钟产生。因此,对FIFO空或满的判断是跨时钟域的。如何根据异步的指针信号产生正确的空、满标志,是异步FIFO设计成败的关键。本文提出一种新颖的异步FIFO设计方案,它通过先比较读写地址并结合象限检测法产生异步的空/满标志,再把异步的空/满标志同步到相应的时钟域。通过仿真验证,该方法是稳定有效的。   1异步信号传输问题的分析   在一个ASIC或FPGA库中,每种触发器都有时序要求。对于使用上升沿触发的触发器来说,建立时间(Setup Time)是在时钟上升沿到来之前,触发器数据保持稳定的最小时间;而保持时间(Hold Time)是在时钟上升沿到来之后,触发器数据还应该保持的最小时间[2]。如图1所示,在时钟上升沿前后的这个窗口内数据应该保持不变,否则会使触发器工作在一个不

文档评论(0)

1亿VIP精品文档

相关文档