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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 259|回复: 3

[求助] 关于set input_delay的约束问题

[复制链接]
发表于 2024-8-13 18:04:58 | 显示全部楼层 |阅读模式
20资产
小弟最近接了个任务,要调试FPGA跟外部PHY板子的通信,目前测试是FPGA输出的数据外部芯片能正常收到解析,但外部芯片发送来的数据FPGA接收会出现错误,看了一些资料,设置了以下的set input delay约束,大佬们帮我看下计算是否正确

示意图如下:


                               
登录/注册后可看大图



约束的是FPGA的 input IO接口,也就是图中A点
具体时间参数如下:
外部PMA芯片:
Tclk1:        0.3ns
Tco:          0.238ns
Tdly_pma: 0.4ns
Tdly1:       0.3ns

PCB走线延时:
Tpcb_data: 0.5ns
Tpcb_clk:   0.36ns

FPGA内部:
Tdly_net:   0.918ns
Tdly_bufg: 6.251ns

时钟频率是T是8ns, 我是假定FPGA内部触发器的Tsetup为4ns, Thold为2ns,约束时没有考虑FPGA内部走线,只考虑setup和hold,所以计算公式如下:
计算input max:
Tarrive    = Tclk1+Tco+Tdly1+Tpcb_data+Tinput_max = 1.338+Tinput_max
Trequest = T+Tdly_pma+Tpcb_clk - Tsetup = 4.76ns
因为Tarrive <= Trequest, 所以计算出Tinput_max <= 3.422ns
计算input min:
Tarrive    = Tclk1+Tco+Tdly1+Tpcb_data+Tinput_min = 1.338+Tinput_min
Trequest  = Tdly_pma+Tpcb_clk + Thold = 2.76
因为保持时间需要Tarrive >= Trequest, 所以Tinput_min >= 1.422ns
因此我设置的约束是set_input_delay -max 3.422,  set_input_delay -min 1.422ns (此处不知道计算是否正确,求大佬指出错误)

后面看了一些资料,验证设置的约束是否正确还要计算FPGA内部这些延时,看了书上列的计算公式, setup检查时:
Tarrive    = Tclk1+Tco+Tdly1+Tpcb_data+Tinput_max + Tdly_net = 2.256 + Tinput_max
Trequest = T+Tdly_pma+Tpcb_clk + Tdly_fpga - Tsetup = 11.011ns (这都超过了一个CYCLE)
按之前的公式,算出的Tinput_max是8.755(大于一个周期)这个结果让我非常疑惑,恳求大佬们指出错误
hold检查:
Tarrive    = Tclk1+Tco+Tdly1+Tpcb_data+Tinput_min + Tdly_net = 2.256 + Tinput_min
Trequest = Tdly_pma+Tpcb_clk + Tdly_fpga + Thold = 9.011ns (大于一个周期)
按之前的公式,算出的Tinput_min是6.755ns (接近1个周期) 这个结果也让我非常疑惑,恳求大佬们指出错误

目前疑问是对于这种计算都超过一个周期是正常的吗,还是因为我的整个计算流程有问题,看了下数值,主要是因为fpga内部bufg走线延迟过大,但不知道要如何正确约束

最佳答案

查看完整内容

你对fpga设置input delay可能有些误解。input delay 指的是在端口时,时钟与数据的延迟关系,所以需要考虑的参数是 外部PMA芯片: Tclk1: 0.3ns Tco: 0.238ns Tdly_pma: 0.4ns Tdly1: 0.3ns PCB走线延时: Tpcb_data: 0.5ns Tpcb_clk: 0.36ns 这些参数有些会有最大值与最小值,不会是定值。当fpga知道约束条件后,会分析内部逻辑的建立和保持时间。 ...
发表于 2024-8-13 18:04:59 | 显示全部楼层
你对fpga设置input delay可能有些误解。input delay 指的是在端口时,时钟与数据的延迟关系,所以需要考虑的参数是
外部PMA芯片:
Tclk1:        0.3ns
Tco:          0.238ns
Tdly_pma: 0.4ns
Tdly1:       0.3ns

PCB走线延时:
Tpcb_data: 0.5ns
Tpcb_clk:   0.36ns

这些参数有些会有最大值与最小值,不会是定值。当fpga知道约束条件后,会分析内部逻辑的建立和保持时间。
 楼主| 发表于 2024-8-19 16:56:08 | 显示全部楼层


拾冠 发表于 2024-8-19 15:46
你对fpga设置input delay可能有些误解。input delay 指的是在端口时,时钟与数据的延迟关系,所以需要考虑 ...


是不是说input delay只跟IO外部有关系,跟FPGA内部是无关的,FPGA会根据设置的input delay来布置IO到内部寄存器的路径满足时序要求
发表于 2024-8-20 11:59:16 | 显示全部楼层


zjq125478 发表于 2024-8-19 16:56
是不是说input delay只跟IO外部有关系,跟FPGA内部是无关的,FPGA会根据设置的input delay来布置IO到内部 ...


可以这么说,但是fpga做的更多是分析能否满足,布局布线能调整的有限,得自己根据分析报告修改逻辑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-9-17 03:46 , Processed in 0.017713 second(s), 7 queries , Gzip On, Redis On.

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