本文章探討一下FPGA的時(shí)序input delay約束,本文章內(nèi)容,來源于明德?lián)P時(shí)序約束專題課視頻。
《FPGA時(shí)序約束分享01_約束四大步驟》概括性地介紹 了時(shí)序約束的四個(gè)步驟,對(duì)時(shí)序約束進(jìn)行了分類,并得到了一個(gè)分類表。
《FPGA時(shí)序約束分享02_時(shí)鐘約束》詳細(xì)介紹了關(guān)于時(shí)鐘的約束,根據(jù)時(shí)鐘來源可以分成輸入時(shí)鐘約束、PLL等衍生時(shí)鐘約束和自己分頻的時(shí)鐘約束等三種類型。這三種類型的約束方法均有所不同,讀者需要掌握區(qū)分方法。
本文,筆者將詳細(xì)介紹輸入延時(shí)(input delay)的概念、場(chǎng)景分類、約束參數(shù)獲取方法以及約束方法。
大家好,歡迎大家收看明德?lián)P推出的至簡(jiǎn)設(shè)計(jì)法系列視頻教程。本節(jié)課我們繼續(xù)時(shí)序約束的第三個(gè)步驟,output delay 的一個(gè)設(shè)置。我是本人視頻主講潘老師。來講這個(gè)視頻這個(gè)步驟之前呢,我們來看一下我們的提供的步驟。這個(gè)圖片啊,我們第三大步驟就是output delay 的。那我們這個(gè)步驟呢要看的時(shí)候要看三種情況啊,一種是系統(tǒng)同步的情況,一種是源同步的情況。而源同步呢我們又分SDR和DDR這兩種啊,所以歸納起來我們有三種情況。這三種情況呢就會(huì)有不同的設(shè)置。我們這次需要參考的資料呢,仍然是我們這個(gè)PDF文檔啊,我們提供給大家一個(gè)PDF文檔。好,我們看一下啊標(biāo)題啊,我們這次課程我們呢會(huì)講這幾個(gè)步驟啊,第一個(gè)輸出原始的概念。第二個(gè)就是我們用兩種的測(cè)量方法去得到我們的時(shí)序參數(shù),然后去來進(jìn)行進(jìn)行約束。之后呢,我們看第三種呢就是我們的不同情況啊,第一個(gè)是系統(tǒng)同步,第二個(gè)是源同步。而源同步呢我們就分成SDR和DDR這兩種啊。
第1節(jié):輸出延時(shí)概念
目標(biāo):讓FPGA調(diào)整時(shí)序,使時(shí)序滿足下游器件要求。max用于考慮建立時(shí)間:跟著正數(shù),表示數(shù)據(jù)在時(shí)鐘采樣沿之前就到達(dá)。公式:最大板級(jí)延時(shí)+TSUmin用于考慮保持時(shí)間:后面負(fù)數(shù),表示數(shù)據(jù)在時(shí)鐘采樣沿之后還保持了一段時(shí)間 。公式:最小板級(jí)延時(shí)-TH假如板級(jí)延時(shí)為0,則max就是下游器件的“TSU”;min則是下游器件的“-Th”。
好,我們看第一個(gè)輸出延時(shí)的概念。首先我們?cè)O(shè)置輸出延時(shí),為什么要輸出延時(shí)呢?我們目標(biāo)是讓了為了讓fpga調(diào)整它自己的輸出的時(shí)序,使我們輸出的時(shí)序滿足下游器件的一個(gè)要求。這樣子呢我們下游器件呢就能夠正確的采集我們的時(shí)序了啊,所以目標(biāo)是這樣子。大家記住目標(biāo)是為了下游器件正確的采集,因此要保證自己輸出的是正確的啊,所以我們要自己去調(diào)整。那么我們同樣的就是告訴fpga,我們下游器件的要求是什么啊,我們告訴我們fpga下游期間要求是什么啊,我們就根據(jù)知道這個(gè)要求,我來自己調(diào)整這個(gè)時(shí)序的。這就是我們這個(gè)輸出延時(shí)這個(gè)目標(biāo)。啊,記住fpga是輸出啊,到這個(gè)下線是輸入。好,我們的這個(gè)呃輸出延時(shí)同樣有兩個(gè)參數(shù),一個(gè)是max,一個(gè)是min的,一個(gè)是最大,一個(gè)是最小的延時(shí),最大的延時(shí)。干嘛用呢?你可以用于這樣考慮,是用于考慮建立時(shí)間用的啊,他們一般是跟著正數(shù)啊,正數(shù)表示數(shù)據(jù)在時(shí)鐘采樣沿之前就到達(dá)了啊,我們公式呢這個(gè)值怎么來的,這種最大板延時(shí)加上這個(gè)TSU啊,TSU就是建立時(shí)間。誰的建立時(shí)間呢,是下游器件的建立時(shí)間啊,也就是說我的板的延時(shí)加上你下游期間他要求的鑒定時(shí)間就是我這個(gè)max 啊。而這min呢是什么?最小是用于考慮保持時(shí)間,誰的保持時(shí)間是下游期間保持時(shí)間啊,后面跟著負(fù)數(shù)表示數(shù)據(jù)在使用采樣沿之后還保持了一段時(shí)間啊,是這樣意思,而我們的公式是怎么樣呢?是最小的板級(jí)延時(shí)啊,就是延時(shí)減去TH啊,這個(gè)就保持時(shí)間。這個(gè)參數(shù)從哪里來呢?從下游器件這個(gè)要求里來啊,比如說我的板子延時(shí)在電路板子上延時(shí)減去你的這個(gè)要求,保持時(shí)間就是我的一個(gè)啊最min的一個(gè)最小延時(shí)就注意一般這個(gè)值是比較小,而這比較大一減去就成了負(fù)數(shù)了啊。例如啊例如我們板子延時(shí)是零啊,板子假如說一個(gè)很理想的情況下,就是我現(xiàn)在一直沒一點(diǎn)延遲都沒有,反正延遲為零,這也是很常見的一種情況啊,反正也是為零。而就是下游期間的這個(gè)TSU啊,這個(gè)就是下游期間的建立時(shí)間要求。而這個(gè)面呢則是下游器件的。保持時(shí)間這個(gè)負(fù)號(hào)啊,負(fù)點(diǎn)擊TH這也是。就是這個(gè)時(shí)候呢,這個(gè)最小的是一個(gè)負(fù)數(shù)啊是個(gè)負(fù)數(shù)。這就是我們的輸入延時(shí)概念。在這個(gè)里面要記住的是公式啊,最大板的延時(shí)加上你的鑒定時(shí)間要求,就是我的max 啊,最小板的延時(shí)減去TH就是你保持時(shí)間,,就是我的最小時(shí)間要求。
第2節(jié):約束語句
第3節(jié):輸出延時(shí)的目的
第4節(jié):參數(shù)獲取的兩種方法
好,第二個(gè)我們看一下兩種測(cè)量方法。對(duì)于。我們的output delay 呢也有兩種的一個(gè)測(cè)量方式。
4.1 下游器件的參數(shù)(推薦)
第一種呢是根據(jù)下游器件的參數(shù)啊,也就是說我們呃從下游器件它一定有數(shù)據(jù)手冊(cè)。它的數(shù)據(jù)手冊(cè)一定會(huì)告訴你這個(gè)建立時(shí)間和保持時(shí)間的要求。我們從在建立時(shí)間保時(shí)間里面得到它參數(shù)之后呢,就可以進(jìn)行設(shè)置了啊,就約束了。
4.2 示波器測(cè)量
第二種方法是用吸波器測(cè)量我們下游器件的一個(gè)輸入端口啊,去看到得到它的時(shí)序信息。得到什么時(shí)序信息呢?是得到它的一個(gè)啊,比如說它延時(shí)這種信息啊,但這種呢我們一般呢不常用。我們推薦的是利用這一種方法,這要求我們呢這個(gè)硬件呢就做的規(guī)范啊,這個(gè)很好一些啊,不要說延時(shí)來抖來抖去啊這種情況。所以一般我們之前講了也講下游器件這種參數(shù)的一個(gè)方式。
第5節(jié):各應(yīng)用場(chǎng)景下的約束方法
好,我們看一下啊,我們分不同情況來討論一下這種情呃怎么約束的問題啊。
5.1 系統(tǒng)同步

好,第三,我們就根據(jù)不同情況呢,我們要進(jìn)行配置的第一種呢叫系統(tǒng)同步。系統(tǒng)同步呢上節(jié)課已經(jīng)講過,就是fpga和下游器件呢都是共用一個(gè)時(shí)鐘的啊一個(gè)時(shí)鐘。我們可以認(rèn)為這個(gè)時(shí)鐘的延時(shí)是等于零的啊等于零的。好,而他fpga把這數(shù)據(jù)送出來啊,它是有一定的延時(shí)啊,送上給這個(gè)下游器件。那下游器件這里面它有自己的一個(gè)建立時(shí)間保持性要求。我們從數(shù)據(jù)手冊(cè)手冊(cè)里面會(huì)得到它這樣的參數(shù)不到它建時(shí)間是2萬秒,它的這個(gè)TH就是1納秒的,它的鑒定時(shí)間保持性要求。而這里呢就是可能我這個(gè)延時(shí)啊符合我的一個(gè)抖動(dòng)的情況啊。延時(shí)這里我們通過一個(gè)呃測(cè)量啊,或者說計(jì)算方式可以得到。比如說它的方式是哎不是它抖動(dòng)最大是0.5,有時(shí)候是0.3,最小是0.3。ok那你這樣得到之后呢,下一步呢我們就知道它進(jìn)行配置了。比如說它最大延時(shí)什么呀,就是我的最大的板級(jí)延時(shí),加上我的建立時(shí)間要求就是2加上0.5,就是我的最大的一個(gè)延時(shí)。啊,而最小的是什么呢?這是我最小的0.3,這也是減去我的保持時(shí)間要求啊,就是這個(gè)1納秒,那是0.3減去一,那就負(fù)的0.7,這個(gè)是這個(gè)要求啊。我們?cè)谶@PDF130頁呢也有講述這個(gè)過程的概念啊,請(qǐng)大家可以看一下啊,我們看到這約束方式。第一個(gè)是生成時(shí)鐘呢啊這個(gè)肯定是要有的,每個(gè)端口進(jìn)來都有個(gè)時(shí)鐘。然后呢,我們會(huì)告訴他這個(gè)時(shí)鐘啊,這個(gè)時(shí)鐘它的最大延時(shí)是多少呢?是2.5啊,它的對(duì)象是這個(gè)DOUT,就是這個(gè)DOUT。而它最小延時(shí)的是-0.7。好,這是系統(tǒng)同步的情況。系統(tǒng)同步就是時(shí)鐘呢是共用一個(gè)的是fpga跟下游器件共用一個(gè)的。
5.2 源同步SDR
好,接下來我們看一下源同步,就是說它的fpga送數(shù)據(jù)的同時(shí),也送時(shí)鐘給下一個(gè)模塊啊,時(shí)鐘和數(shù)據(jù)一起送的。其中我們要跟SDR和DDR。SDR是指邊沿上升沿去采樣,SDR是指上升點(diǎn)和下降點(diǎn)都去采樣。

因此我們先看一下SDR是吧?SDR就是上沿進(jìn)行采樣的方式。啊,同樣的方式呢,我們同樣呢也能得到它的一個(gè)結(jié)果。它跟是跟系統(tǒng)同步是一樣的啊,它它的方法也是一樣的,它也是通過查數(shù)據(jù)手冊(cè)得到我的鑒定時(shí)間,它保持的要求也能知道我的這個(gè)延時(shí)的抖動(dòng)是多少啊。比如說我們測(cè)量之后得到抖動(dòng)是多少,得到最大抖動(dòng)和最小抖動(dòng)之后呢,我就能配置啊。這公式也講了啊,最大的是指我的延時(shí)最大加上我的建立時(shí)間要求啊,而最小是指我的延遲最小減去我的這個(gè)呃保持時(shí)間要求,就是我的最小
5.3源同步-DDR(查手冊(cè)方法)

然后DDR呢,DDR是指上升沿下降沿都是同步,都是都采樣的。因此呢它是這樣子采樣啊,這邊和這邊都會(huì)采樣哈,都會(huì)采樣。我們可以通過一個(gè)方式是吧?例如說我們?nèi)ゲ檫@個(gè)手冊(cè)啊,我們通過同樣可以查手冊(cè)得到他這個(gè)要求。比如說他會(huì)要求你這個(gè)建立時(shí)間多少,保持時(shí)間多少,而這邊的建立時(shí)間多少,保時(shí)間多少。例如說我們這里有個(gè)例子啊,比如說他的商業(yè)鑒定時(shí)間要求是0.7。比如說這個(gè)是0.7,這個(gè)是0.3,這個(gè)是0.6和這是0.4啊。因此呢我們就要對(duì)它進(jìn)行配置約束啊,outlay啊我們可以看到時(shí)鐘生生成啊生成一個(gè)時(shí)鐘。好了,我們看一下它最大的一個(gè)延時(shí)就是啊零點(diǎn)7。對(duì)于它來講最大是0.7,最小是什么呢?啊,0減去0.3。我們這時(shí)候把那個(gè)板子驗(yàn)收啊,就考慮為零了啊。0減去0.3。而在這個(gè)時(shí)刻呢,我們是最大的是0.6,最小是零減去0.4,那就是。負(fù)的0.4啊,注意的是我們這個(gè)for下降沿的時(shí)候,要加上這個(gè)clock for啊加I杠ADD delay。好,加上這句話啊,這個(gè)是我們那個(gè)正確的方式。其中這個(gè)啊這個(gè)比如說這個(gè)可能是不一定要的啊,這個(gè)中間這個(gè)不一樣。我們這最主要在講的是這個(gè)后面這個(gè)四個(gè)部分,前面部分還是跟我們的時(shí)鐘的方式是一樣的。比如說我們?cè)谇懊鏁r(shí)鐘進(jìn)來,還有這個(gè)我們就要這個(gè)后面。假如說我們配置output delay 哈,再加上后面這四句話的啊。這是我們DDR的一個(gè)方式。
好了,有的同學(xué)說我們的input delay 有個(gè)什么叫邊緣呢?也叫叫中心對(duì)齊的。為什么我們這里就沒有了啊,因?yàn)榇蠹抑牢覀僫nput delay 那個(gè)是靠測(cè)量的方式去得到的啊,而我們這個(gè)呢是查數(shù)據(jù)手冊(cè)的方式,查數(shù)據(jù)手冊(cè)。那么他的邊緣這個(gè)點(diǎn)的時(shí)候,他就不不可能會(huì)抖動(dòng)的啊不可能會(huì)抖動(dòng)的。他一定會(huì)建立。你在下降沿的時(shí)候呢,你在之前會(huì)穩(wěn)定,穩(wěn)定多久,之后會(huì)穩(wěn)定多久,因此他一定是這么穩(wěn)這樣一個(gè)情況的啊,他會(huì)把這個(gè)實(shí)際參數(shù)要求給你啊,所以我們沒有什么邊緣對(duì)齊和中心對(duì)齊的一個(gè)情況。啊,我們從查數(shù)據(jù)手冊(cè)就會(huì)查到這幾個(gè)參數(shù),然后進(jìn)行配置就可以了啊。還有一點(diǎn)就是對(duì)于我們的板級(jí)延時(shí)的一般情況下呢,如果我們硬件做的好的板,這件事是不需要考慮的。也就是說我們的output delay 一般呢就是設(shè)置它的鑒定時(shí)間啊,就是從手冊(cè)里面得到它鑒定時(shí)間和保質(zhì)時(shí)間這兩個(gè)參數(shù)。然后根據(jù)它公式直接就是配置就可以了啊,所以它output delay 的方式相對(duì)比較簡(jiǎn)單。
第6節(jié):總結(jié)與建議
好,我們總結(jié)一下,我們還是按照根據(jù)根據(jù)我們的經(jīng)驗(yàn),就是按照前面的順序去索引,找到對(duì)應(yīng)的情況,按要求進(jìn)行約束啊。比如說我現(xiàn)在這個(gè)端口是屬于上面三種情況中的哪一種,如果是哪一種,你就按照那一種進(jìn)行配置啊進(jìn)行約束就可以了。
啊,第二個(gè)就是我們還是跟前面input delay 的時(shí)候強(qiáng)調(diào)過的input delay 、output delay就是告訴工具我現(xiàn)在的實(shí)際情況。比如說我告訴我fpga下游期間的情況是要求是什么啊,直接把這個(gè)結(jié)果告訴fpga就行了。你不用管fpga他怎么移啊,他要移多少,你都不用管,你就告訴他現(xiàn)實(shí)的情況啊。然后fpga他自動(dòng)會(huì)計(jì)算,最后決定我要偏移多少時(shí)序。然后后面有個(gè)相似的,就是假如說我們有一個(gè)叫offset in /out這種東西啊,就是告訴你之前你偏移多少哈,偏移多少啊,從而滿足時(shí)序這個(gè)這樣子的,我們就要自己去計(jì)算這個(gè)這一步呢就是不需要計(jì)算了。啊,這就是我們的output delay 一個(gè)配置方式啊,相對(duì)比較簡(jiǎn)單。好,本次視頻講這里,謝謝。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1663文章
22491瀏覽量
638893 -
延時(shí)
+關(guān)注
關(guān)注
0文章
110瀏覽量
26412 -
時(shí)序約束
+關(guān)注
關(guān)注
1文章
120瀏覽量
13996
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA的IO約束如何使用
FPGA的IO口時(shí)序約束分析
FPGA時(shí)序約束之衍生時(shí)鐘約束和時(shí)鐘分組約束
FPGA I/O口時(shí)序約束講解
FPGA靜態(tài)時(shí)序分析——IO口時(shí)序(Input Delay /output Delay)
華為內(nèi)部經(jīng)典FPGA時(shí)序資料---FPGA input delay約束的方法
FPGA中的時(shí)序約束設(shè)計(jì)
FPGA時(shí)序約束分析余量
時(shí)序約束中如何精確找到匹配的template?
FPGA設(shè)計(jì)之時(shí)序約束
詳解FPGA的時(shí)序input delay約束
時(shí)序約束的相關(guān)知識(shí)(二)
FPGA的時(shí)序input delay約束
評(píng)論