在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2489|回复: 0

[原创] FPGA实战演练逻辑篇56:VGA驱动接口时序设计之3时钟约束

[复制链接]
发表于 2015-7-30 21:59:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x

VGA驱动接口时序设计之3时钟约束

本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》

配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt


如图8.26所示,FPGA产生的数据data_out和时钟clk_out的理想波形是时钟上升沿锁存到稳定可靠的数据。(特权同学,版权所有)

1.jpg

8.26 源同步接口寄存器和时序波形关系

下面我们来探讨如何对这个设计进行约束。首先,对系统的输入时钟(25MHz)、PLL产生的时钟进行约束。约束脚本如下。(特权同学,版权所有)

create_clock -name {clk} -period 40.000 -waveform { 0.000 20.000} [get_ports {clk}]


derive_pll_clocks –use_tan_name

derive_pll_clocks语句将会自动且准确覆盖PLL产生的所有时钟路径。在本实例中,以上的约束将会覆盖如图8.27所示的时钟。(特权同学,版权所有)

2.jpg

8.27 时钟约束可覆盖路径

接着,对lcd_clk这个时钟进行约束,它需要约束为虚拟(virtul)时钟,将会被用于output port上的数据锁存时钟。因为我们这个工程可能会用到25MHzlcd_clk,也会用到50MHzlcd_clk,因此我们以频率更高的50MHz为例进行说明。系统的50MHzPLLclk[1]输出的,因此我们约束这个虚拟时钟如图8.28所示。(特权同学,版权所有)

3.jpg

8.28 虚拟时钟约束

对应的脚本如下。(特权同学,版权所有)

create_generated_clock -name LCD_CLK -source  [get_ports {vga_clk}]

这个虚拟时钟将会在FPGA内部对tx_datareg2pin进行时序分析时作为latch时钟。实际对于一般的reg2reg路径的分析,由于他们的launchlatch时钟都在FPGA内部,若像前面一样做过时钟的约束,那么FPGA对这些内部的时钟就已心知肚明,无需什么虚拟时钟。而对于pin2regreg2pin的路径分析,则一般都需要用户指定一个符合相关时钟要求的虚拟时钟,这个虚拟时钟就作为pin端的时钟来分析时序,我们这里所约束的虚拟时钟对应的路径如图8.29所示。(特权同学,版权所有)

4.jpg

8.29 虚拟时钟路径

如图8.30所示,有了时钟lcd_clk,我们才能对数据路径进行合适的约束。本例中,有两条关于时钟的路径延时,我们假设PLL输出的时钟是源和目的时钟的起点,以这个点为基准,时钟到达源寄存器,其路径延时为Tc2t;时钟到达目的寄存器,即ADV7123芯片的引脚输入端,其路径延时为Tc2r,这个延时包括了时钟从PLL输出到FPGA引脚的延时以及时钟从FPGA的引脚到ADV7123引脚的延时,后者的延时是PCB走线产生的延时。再来看数据路径,数据首先进入源寄存器的输入端口后,在源寄存器内部经过延时Tco,接着数据从源寄存器的输出端口到FPGA引脚上的延时Tr2p,还有就是数据在PCB上的延时Tdpcb,最后在计算ADV7123的时序时,我们必须将数据的建立时间Tsu和保持时间Th考虑在内。(特权同学,版权所有)

5.jpg

8.30 时序路径模型





您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-3 22:02 , Processed in 0.024555 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表