关于 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.
内部时序不满足的时候, 尽量降低 组合逻辑.
关于 FPGA 和 外部芯片接口时序设计的更多相关文章
- 74HC595驱动(并转串,fpga与时钟匹配,fpga与外部芯片的连接注意事项)
上一次设计的动态扫描数码管显示电路模型如上,这是一个32位并行数据[31:0]disp_num选通输出并行数据[7:0]select和[7:0]段选的电路.因此需要输出16个信号 而在开发板上的电路与 ...
- 【转载】FPGA静态时序分析——IO口时序
转自:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束 ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)
1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛.因此,FPGA时序约束中IO口时序约束也是一个重点.只有约束正确 ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)
转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟 ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)
1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛.因此,FPGA时序约束中IO口时序约束也是一个重点.只有约束正确 ...
- 东芝线阵CCD芯片TCD1305DG驱动时序设计
最近在做微型光谱仪,用到了东芝的CCD芯片TCD1305DG,该芯片是单行3648像素,输出信号是时间上离散的模拟信号,典型输出速率为0.5M,即每2000ns输出一个像素值(模拟信号),芯片内部集成 ...
- VGA接口时序约束
SF-VGA模块板载VGA显示器DA转换驱动芯片AVD7123,FPGA通过OUPLLN连接器驱动ADV7123芯片产生供给VGA显示器的色彩以及同步信号.SF-CY3核心模块与SF-VGA子模块连接 ...
- 【接口时序】6、IIC总线的原理与Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE .ChipScope 硬件平台: 1. FPG ...
- 【接口时序】7、VGA接口原理与Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1. FPGA型号:Xilinx公 ...
随机推荐
- Delphi获取当前系统时间(使用API函数GetSystemTime)
在开发应用程序时往往需要获取当前系统时间.尽管Y2K似乎已经平安过去,但在我们新开发的应用程序中还是要谨慎处理“时间”问题. 在<融会贯通--Delphi4.0实战技巧>(以下简称“该书” ...
- 一个Windows C++的线程池的实现
此线程池所依赖的线程类,请参看<一个Windows C++的线程类实现>: http://blog.csdn.net/huyiyang2010/archive/2010/08/10/580 ...
- 04737_C++程序设计_第1章_认识C++的对象
例1.1 演示使用结构对象的示例程序. //功能:将结构对象的两个域值相加,乘以2再加50 #include <iostream>//包含头文件 using namespace std;/ ...
- 学习RAC小记-适合给新手看的RAC用法总结(转)
原文:http://www.jianshu.com/p/ff79a5ae0353 什么是RAC? 几乎每一篇介绍RAC的文章开头都是这么一个问题.我这篇文章是写给新手(包括我自己)看的,所以这个问题更 ...
- mongodb创建、更新、删除
1.插入操作 user = {"username":"lcq","sex":"man"} db.user.insert( ...
- wcf系列5天速成——第二天 binding的使用(2)
承接上一章,今天来讲MSMQ在实战项目中的应用.众所周知,放了防止订单丢失,我们都是采用Order过一下MSMQ. MSMQ的优点个人认为是:先天的异步消息发送和天生的自动负载均衡. 好了,看看MSM ...
- javascript高级知识分析——定义函数
代码信息来自于http://ejohn.org/apps/learn/. 可以使用哪些方式来声明函数? function isNimble(){ return true; } var canFly = ...
- Android源码学习(一) 数据集观察者
查看Android源码发现这个,决定记下下来. 1.在android.database这个包下面,存在这样一个抽象类DataSetObserver,里面包括onChanged()和onInvalida ...
- 20151120 jsp相关
jsp 声明表示.代码片段及引用 <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...
- EC读书笔记系列之6:条款11 在operator=中处理自我赋值
记住: ★确保当对象自我赋值时operator=有良好行为.有三种方法:比较“来源对象”和“目标对象”的地址.精心周到的语句顺序.以及copy-and-swap技术 ★确定任何函数若操作一个以上对象, ...