取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
367 次查看
注册日期: ‎04-11-2019

请教 selectio 解串行数据, 时序约束不通过问题

跳至解决方案

我使用zynq器件,select io 解码串行数据, data 和 clock 直接进入, 未进行其他处理, 综合有关于data保存时间的时序错误,请问什么问题? 实测接收功能基本正确.

 

器件时序, 约束采用的是其中的tframe = 1.3  - 1.9ns

1616466111(1).png

微信图片_20210323102108.png微信图片_20210323102120.png

set_input_delay -clock [get_clocks rxDco_p] -clock_fall -min -add_delay -1.300 [get_ports rxData_n]
set_input_delay -clock [get_clocks rxDco_p] -clock_fall -max -add_delay -1.900 [get_ports rxData_n]
set_input_delay -clock [get_clocks rxDco_p] -min -add_delay -1.300 [get_ports rxData_n]
set_input_delay -clock [get_clocks rxDco_p] -max -add_delay -1.900 [get_ports rxData_n]

set_input_delay -clock [get_clocks rxDco_p] -clock_fall -min -add_delay -1.300 [get_ports rxData_p]
set_input_delay -clock [get_clocks rxDco_p] -clock_fall -max -add_delay -1.900 [get_ports rxData_p]
set_input_delay -clock [get_clocks rxDco_p] -min -add_delay -1.300 [get_ports rxData_p]
set_input_delay -clock [get_clocks rxDco_p] -max -add_delay -1.900 [get_ports rxData_p]

 

谢谢.

标记 (1)
0 项奖励
1 解答

已接受的解答
viviany
Xilinx Employee
Xilinx Employee
318 次查看
注册日期: ‎05-15-2008

应该是set_input_delay约束写错了

如果参考vivado language template的话,你的这个data接口符合source synchronous --> center aligned --> DDR的模板

其中参数

dv_bre = dv_bfe = 1.3ns

dv_are = dv_afe = (1/2 period - 1.9)ns

所以约束里的

-max值是(1/2 period - 1.3)

-min值是(1/2 period - 1.9)

试试看

-vivian

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

4 回复数
viviany
Xilinx Employee
Xilinx Employee
319 次查看
注册日期: ‎05-15-2008

应该是set_input_delay约束写错了

如果参考vivado language template的话,你的这个data接口符合source synchronous --> center aligned --> DDR的模板

其中参数

dv_bre = dv_bfe = 1.3ns

dv_are = dv_afe = (1/2 period - 1.9)ns

所以约束里的

-max值是(1/2 period - 1.3)

-min值是(1/2 period - 1.9)

试试看

-vivian

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

261 次查看
注册日期: ‎04-11-2019

谢谢,解决, 但概念还不是很清晰, 请问这个信息的文档出处和template在那里? 谢谢.

0 项奖励
viviany
Xilinx Employee
Xilinx Employee
187 次查看
注册日期: ‎05-15-2008

language template在vivado图形界面tools菜单里。

关于template没有过多的文档介绍,还是要先学习input delay/output delay的理论基础,结合实践琢磨一下,这套template使用的方法还是有点巧妙的

我的经验是通过时序图对比,找到最匹配的template,确定里面对应参数的值,套用template里面的约束模板就可以。

你可以找出我说的这个source synchronous --> center aligned --> DDR 模板,看里面的时序图跟你这个用户手册里的时序图对比下

你的时序图里没有画出data有效数据跟无效数据(就是阴影部分)的范围,但tFRAME的值之所以是1.3~1.9,就是因为data有有效数据跟无效数据范围的原因,把你的时序图的有效数据和无效数据范围画出来,就容易跟template里的时序图匹配了

你的例子我可以拿来用吗?打算写一个template使用的blog

-vivian

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
184 次查看
注册日期: ‎04-11-2019

hi, 可以, 谢谢指导.

0 项奖励