找回密码
 注册
关于网站域名变更的通知
查看: 509|回复: 1
打印 上一主题 下一主题

[仿真讨论] Xilinx FIFO 仿真解决异步时钟源的问题

[复制链接]
  • TA的每日心情
    慵懒
    2020-8-28 15:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-12-9 11:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    用FIFO去解决异步时钟源的问题
    & {* S2 o: }) s: q, f( k
    ! ^  i+ h0 M4 i2 `$ b因为想用Spartan-6去从图像传感器采集图像,所以想直接用pclk做为FIFO的写时钟,传感器的行同步信号HS作为FIFO写是能输入,这样可以省去好多coding的工作。然而,事情往往不会那么顺利,我发现pclk的时钟是只有在有数据的时候才会从传感器输出,当传感器不输出数据时,pclk也就不会跳动了。具体时序可参考仿真图的wr_clk.
    + _, h, |  j" |# t5 x1 L9 j4 ]+ x% L1 c" G! {  b. W$ `
    Xilinx自带仿真器,仿真结果截图:" R( x* r& b5 K" Z4 {0 L, ~: u- L1 _( v
    FIFO复位后,经过两个wr_clk,Full 和almost_full信号才会复位,
    & C) N1 F9 ~8 h. w
    1 y; Z& S/ _; R) W8 \: B  \+ J2 s
    当初始不去reset时,会丢失第一个数据
    , {* ]) F  D, H# L% X

    下图为设置了Reset, 丢失了数据1,2,3

       
    从仿真结果看,这个写入过程,需要wr_clk比实际数据数要多1或跟多,不然,最后一个数据时写进不到FIFO里面的。
    1 E% c1 S0 h8 k7 b$ c从下图可以发现,实际写入的最后一个数为150,但是由于写时钟写完最后一个数后就停止跳动,当去读FIFO时,无论rd_en和rd_clk一直是有效状态,在FIFO中始终读不出来150这个数

    结论:对于只当有数据才会有数据始终跟随输出的传感器,如果用FPGA中的FIFO直接读取,会出现丢数据的情况


    4 M. h) n8 O( _9 D. g" i3 x! G
  • TA的每日心情
    开心
    2020-9-8 15:12
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-12-9 13:10 | 只看该作者
    用FIFO解决异步时钟源的问题
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-1 00:31 , Processed in 0.171875 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表