Q:使用 zynq 器件, select io 解碼串行數據, data 和 clock 直接進入, 未進行其他處理, 綜合有關于 data 保存時間的時序錯誤, 請問什么問題? 實測接收功能基本正確
器件時序, 約束采用的是其中的 tframe = 1.3 - 1.9ns
約束:
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]
A:應該是 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)
Language template在 vivado 圖形界面 tools 菜單里。
關于 template 的介紹,可以先學習 inputdelay/output delay 的理論基礎,結合實踐琢磨一下,這套 template 使用的方法還是有點巧妙的
經驗是通過時序圖對比,找到最匹配的 template,確定里面對應參數的值,套用 template里面的約束模板就可以。
可以找出這個 source synchronous --> centeraligned --> DDR 模板,看里面的時序圖跟用戶手冊里的時序圖對比下
時序圖里沒有畫出 data 有效數據跟無效數據(就是陰影部分)的范圍,但 tFRAME 的值之所以是 1.3~1.9,就是因為 data 有有效數據跟無效數據范圍的原因,把時序圖的有效數據和無效數據范圍畫出來,就容易跟 template 里的時序圖進行匹配了。
審核編輯 :李倩
-
串行
+關注
關注
0文章
237瀏覽量
34226 -
Data
+關注
關注
0文章
63瀏覽量
38540 -
模板
+關注
關注
0文章
108瀏覽量
20785
原文標題:本周一問 | Select io 解串行數據, 時序約束不通過問題
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
一文詳解Vivado時序約束

求助,關于ADC124S021的時序疑問求解
dac7624 data output timing是做什么用的?
EEPROM編程常見錯誤及解決方案
求助,關于STM32H7 FMC模式1的NADV時序問題求解
DDR4時序參數介紹
服務器錯誤是怎么回事?常見錯誤原因及解決方法匯總
電源時序器常見故障維修
FPGA 高級設計:時序分析和收斂
歐姆龍plc斷電程序能保存多長時間?
示波器如何保存波形數據?
關于STM8S103K3的數據保存問題求解
FPGA工程的時序約束實踐案例

評論