• 关于 FPGA 和 外部芯片接口时序设计


             在看这篇文章之前, 建议先好好读下这篇文章。http://download.csdn.net/detail/angelbosj/8013827。 

              因为我不太会用 VISio。要是哪位网友能告诉我。怎么能画出上面文档那么好的时序图来,请留言告诉我。

    拜谢~

             对于视频接口好多都是这种。 比方 bt1120, 16根数据线和 1根clock. 并行.

                   

        a、FPGA 输入时钟模型.

        我们能够要求layout的时候, clk 和 数据线之间等长。 这样分析起来会easy。

       假设外部芯片是上升沿发送数据, FPGA上升沿接受数据.

       请看以下这图:

        

    建立时间满足的情况:

            Setup Slack  =  (Tclk + Tclk2 ) - (Tclk1 + Tpcb + Tco + FTsu) >0.

              由于 Tclk2 = Tpcb, Tclk1 = 0. 所以。 Tclk - (Tco + FTsu) > 0 . 由此可知,建立时间肯定能满足.

    保持时间满足的情况:

            Hold Slack = (Tclk1 + Tco + Tpcb) -  (Tclk2  + FTh) >0 . 

           由于 Tclk2 = Tpcb, Tclk1 = 0. 所以 Tco - FTh > 0.  这样显然可能不合适.


    外部芯片是下降沿发送数据, FPGA上升沿接受数据,  

       请看以下这图:


    建立时间满足的情况:

            Setup Slack  =  (Tclk + Tclk2 ) - (Tclk1 + Tpcb + Tco + FTsu) >0.

            由于是下降沿发送数据。 则Tclk1 = Tclk/2. Tclk2 = Tpcb,所以。 Tclk - (Tclk/2 + Tco + FTsu) > 0 . 能够满足情况.

    保持时间满足的情况:

            Hold Slack = (Tclk1 + Tco + Tpcb) -  (Tclk2  + FTh) >0 . 

           由于 Tclk2 = Tpcb, Tclk1 = Tclk/2.. 所以 Tco + Tclk/2  - FTh > 0.  能够满足情况.


    外部芯片是上升沿发送数据, FPGA下降沿接受数据, 

    请看下图;


    建立时间满足的情况:

            Setup Slack  =  (Tclk + Tclk2 ) - (Tclk1 + Tpcb + Tco + FTsu) >0.

    由于是下降沿接受数据。 则Tclk1 = 0. Tclk2 = Tpcb - Tclk/2. 此时. Setup Slack  = Tclk/2 - (Tco + FTsu ) > 0 能够满足条件.

    保持时间满足的情况:

           Hold Slack = (Tclk1 + Tco + Tpcb) -  (Tclk2  + FTh) >0 . 

    由于是下降沿接受数据。 则Tclk1 = 0. Tclk2 = Tpcb - Tclk/2. 此时,Tco + Tclk/2  - FTh > 0 能够满足条件. 



    b、FPGA 输出时钟模型. 

    FPGA 输出时钟模型.和 FPGA输入模型情况类似.



    总结:

     对于FPGA 输入时钟模型, 有两个建议:

                 一、 数据 和 时钟线 等长.

                 二、 外部芯片下降沿发送数据,FPGA上升沿接受数据.

     对于FPGA 输出时钟模型, 有两个建议:

                 一、 数据 和 时钟线 等长.

                 二、 FPGA上升沿发送数据。外部芯片 下降沿接受数据.


    仅仅有这样再去进行FPGAport的约束才有意义.

    补充: PCB延时经验值为 600mil/ns, 1mm = 39.37mil.

                 内部时序不满足的时候, 尽量降低 组合逻辑.





                    

  • 相关阅读:
    Flink实战(八十):FLINK-SQL使用基础(七)Flink SQL Clien读取Kafka数据流式写入Hive(用hive 管理kafka元数据)
    离线电商数仓(六十九)之即席查询(二)kylin使用
    离线电商数仓(六十八)之即席查询(一)kylin简介与安装
    离线电商数仓(六十七)之数据质量监控(三)Griffin(四) 安装及使用(二)
    离线电商数仓(六十六)之数据质量监控(二)Griffin(三) 安装及使用(一)
    Virtio-fs介绍与性能优化
    overlayfs mount shared =+ kata + OCI bundle rootfs
    Getting started with containerd
    Container Runtime
    containerd
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5200681.html
Copyright © 2020-2023  润新知