0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FIFO为什么不能正常工作?

FPGA威廉希尔官方网站 驿站 来源: FPGA威廉希尔官方网站 驿站 2023-11-02 09:25 次阅读

FIFO为什么不能正常工作?复位信号有效长度不够,接口时序不匹配,可看下面这篇文章。

本文将介绍:

非DFX工程如何确保异步FIFO自带的set_max_delay生效?

DFX工程如何确保异步FIFO自带的set_max_delay生效?

对于异步FIFO,复位信号的使用要特别注意,如下图所示。复位信号必须和wr_clk同步,如果异步,要在wr_clk时钟下同步释放,否则会出现数据无法写入FIFO的情形。

wKgZomVC-o-ARuqCAACksOdaapA494.jpg

FPGA设计中,我们会经常用到异步FIFO进行跨时钟域隔离。作为已经非常成熟的设计,AMD提供了两种使用方式:一种是使用IP,一种是使用XPM_FIFO。无论是使用哪种方式,都会生成自带的约束,如下图所示。可以看到使用了set_max_delay和set_bus_skew,这是因为异步FIFO的控制逻辑涉及到二进制码和隔离码的转换,本质上是读/写指针的跨时钟域传递,这两个约束正是针对这部分逻辑电路。

wKgaomVC-o-AI9atAACFLvM6kF0368.jpg

从上图中还可以看到,图中红色方框标记的约束来自于xpm_cdc_gray.tcl文件。该文件可在Vivado安装目录下找到,这里我们给出该文件的部分内容,如下图所示。从图中代码第2行和第3行可以看到,该约束文件在执行前需要获取两个时钟src_clk和dest_clk,第5行和第6行则会分别获取这两个时钟的时钟周期。从这里我们可以判断该文件是在用户约束文件之后编译的。

wKgZomVC-o-AVYtQAAKLoZ8JhDg938.jpg

我们可以打开综合后的设计,通过命令report_compile_order -constraints查看约束文件的编译顺序,会生成如下图所示的报告,在其中的Processing_Order列可以看到用户约束文件的值为NORMAL,而FIFO自带约束文件的值为LATE,这就表明FIFO自带约束文件是在用户约束文件之后进行编译的。原因就是FIFO自带的约束文件依赖于用户约束文件提供的时钟周期。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603054
  • FPGA设计
    +关注

    关注

    9

    文章

    428

    浏览量

    26513
  • fifo
    +关注

    关注

    3

    文章

    387

    浏览量

    43655
  • 时序
    +关注

    关注

    5

    文章

    387

    浏览量

    37320
  • 异步FIFO
    +关注

    关注

    0

    文章

    20

    浏览量

    8354

原文标题:你的FIFO为什么不能正常工作?

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA威廉希尔官方网站 驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DRV103H为什么不能正常工作

    DRV103H为什么不能正常工作
    发表于 08-28 07:27

    VIPM不能正常工作

    Interfave for Arduino所以要这玩意,但是却不能正常工作。百度也没有找到解决的办法,希望熟悉这个包的同志帮帮忙,看下这个问题怎么解决,谢谢啦!
    发表于 07-23 13:34

    不能FIFO引脚获得输出数据

    )获得输出数据。FIFOADDR设置为“11”。国旗是信令数据正在经历。然后我们把事情颠倒过来,把EP2设为输出端点,EP8作为输入。数据出现在FIFO管脚上,所以一切都正常运行。这是否意味着我们不能
    发表于 03-01 14:21

    BurnRead函数不能正常工作

    目前,最新的SDK是VER 1.1.1,所以我用新的SDK(1.1.1.1)构建了FixLoad,但是它不能正常工作。BurnRead函数不能正常
    发表于 05-07 06:50

    Slave fifo无法正常工作

    嗨,大家好,我的奴隶FIFO项目在更新到最新SDK后不工作。有什么建议吗? 以上来自于百度翻译 以下为原文Hi All, My slave fifo project is not working after updating
    发表于 05-08 08:18

    ASCII不能正常工作

    的ASCII .txt文件没有格式化,只是字符.Notepad是直接ASCII,所以你不能做你想要的。与任何其他平面ascii编辑器相同,因为ASCII不能正常工作.Wordpad可以
    发表于 10-30 16:31

    仿真正常,下载后不能正常工作是什么原因?

    仿真正常,下载后不能正常工作是什么原因?
    发表于 06-13 09:41

    为什么ADG3308不能正常工作

    为什么我的ADG3308不能正常工作,以下是输入波形 以下是输出波形
    发表于 12-11 07:53

    如何处理电脑不能正常关机故障

    如何处理电脑不能正常关机故障   有朋友问我:电脑不能正常关机怎么办?首先谈谈Windows系统自动关机的条件。在Win98及更高版本
    发表于 03-01 10:31 1121次阅读

    氨泵不能正常工作_风机故障的现象及处理

    本文从氨泵不能正常工作的四种现象,原因及处理和风机四种故障,原因和处理方法进行了解释。
    发表于 08-04 09:27 2619次阅读
    氨泵<b class='flag-5'>不能</b><b class='flag-5'>正常</b><b class='flag-5'>工作</b>_风机故障的现象及处理

    单片机正常工作的三大条件

    供电电源是单片机工作的首要条件,如果电源都不正常,那单片机肯定不能正常工作,所以我们在测试任何产品之前首要的
    的头像 发表于 11-15 11:29 7945次阅读

    为什么有时候FIF不能正常工作

    同步控制信号 对于读/写时钟相互独立的FIFO(读/写时钟独立意味着这两个时钟是异步的,例如来自于不同的MMCM),要确保相应的控制信号只在与之对应的时钟域内被使用。如下图所示,除了rst对整个
    的头像 发表于 04-26 11:13 2542次阅读
    为什么有时候FIF<b class='flag-5'>不能</b><b class='flag-5'>正常</b><b class='flag-5'>工作</b>?

    IAR 的 Go to Definition of不能正常使用

    IAR 的 Go to Definition of不能正常使用使用IAR有一段时间了,困扰我时间最长的应该就是Go to Definition of不能正常使用,
    发表于 12-03 11:06 9次下载
    IAR 的 Go to Definition of<b class='flag-5'>不能</b><b class='flag-5'>正常</b>使用

    单片机不能正常工作的原因

    电压范围是否正常:若电压不在单片机的正常工作范围内,单片机肯定就不能正常工作。此时需要检查电源部
    的头像 发表于 06-20 09:47 1.3w次阅读

    同步FIFO和异步FIFO区别介绍

    1. FIFO简介 FIFO是一种先进先出数据缓存器,它与普通存储器的区别是没有外部读写地址线,使用起来非常简单,缺点是只能顺序读写,而不能随机读写。 2. 使用场景 数据缓冲:也就是数据写入过快
    的头像 发表于 06-04 14:27 1568次阅读
    同步<b class='flag-5'>FIFO</b>和异步<b class='flag-5'>FIFO</b>区别介绍