時序約束(二)
上一篇對時序約束原理做了概述,網上也有講的比較清楚的,或者網上小梅哥和尤凱元老師得視頻都講的很不錯,這里主要是講一下原理概述,重點是做一些實體演練,或者自己目前手頭的專案遇到的情況,
目前手頭的專案是高速的AD資料采集,300M的采樣時鐘,DDR的資料傳輸模式,也就是說時鐘周期3.33ns,上下沿采樣,相當于時鐘周期只有1.667ns,這里不進行正確的時序約束,很可能無法正常的采集資料,這里我們先看看沒有正確的約束,或者沒有約束情況下資料采集的情況,如下圖:
1.時序未約束或錯誤約束情況下,輸入信號5M正弦波和方波如下:


FPGA采樣后保存到ram中,由DSP采集后做顯示得到的結果如下:


我們可以看到輸入信號沒有毛刺,而采集到的信號卻有了明顯的毛刺,直接原因就是時序沒有正確約束,時鐘上升下降沿采集資料時,不能夠滿足建立保持時間,也就是說,時鐘采樣時,資料不穩定,正在進行交變,示意圖如下:

由圖可以直觀的看到,時序約束所要做的就是使時鐘的采樣沿落在資料的穩定區域,如何能讓時鐘采樣沿落在資料穩定區域呢?實際情況是時鐘與資料在電路中傳播都有延時,如果建立時間不滿足可以讓時鐘延時大一些,也可以讓資料延時小一些,如果保持時間不滿足,可以讓時鐘延時小一些,也可以讓資料延時大一些,具體情況具體分析,例如修改邏輯,增加流水,加鎖相環移相,input/output delay中還可以改變外部器件的時鐘資料相位關系等方法,所有的這些方法都是為了讓時鐘采樣沿落在資料穩定區,實際例子和操作我們后面再具體分析,
2.時序約束情況下,輸入信號10M正弦波和方波如下:


FPGA采樣后保存到ram中,由DSP采集后做顯示得到的結果如下:


FPGA采樣后ila直接抓取資料做顯示得到的結果如下:


可以看到正確的時序約束后波形的毛刺消失了,采集的信號與輸入的信號一致,基本還原了原始輸入信號,這是后續信號處理的前提,如果采集資料都不正確,后面也就談不上資料的計算處理,
這一篇主要通過一個時序約束實體顯示了時序約束的重要性,后面會通過vivado工程實體的操作來具體了解一下vivado工具是如何進行時序約束的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/214335.html
標籤:其他
