新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 確保數(shù)據(jù)總線的信號偏移控制

確保數(shù)據(jù)總線的信號偏移控制

作者: 時(shí)間:2017-10-11 來源:網(wǎng)絡(luò) 收藏

有時(shí)候我們想讓多個(gè)或多或少的出現(xiàn)在同一時(shí)刻(也就是說這些之間的時(shí)間差應(yīng)該在某個(gè)界限之內(nèi))。

本文引用地址:http://2s4d.com/article/201710/365504.htm

一個(gè)經(jīng)典的情況就是多位的數(shù)據(jù)總線,總線上的應(yīng)該(幾乎)同時(shí)到達(dá)。

如果其它信號均由其中一個(gè)信號生成,那么要滿足上面的要求,我們可以通過設(shè)置set_min_delay約束來實(shí)現(xiàn)。

但是如果這些信號都是互相獨(dú)立生成的呢?

或者說,大多數(shù)情況下,這些信號可能都是由同一個(gè)信號源生成的(例如同一個(gè)時(shí)鐘源)?

確保小的信號傳輸偏移的一個(gè)方式就是相對共同的源約束每個(gè)信號。

舉個(gè)例子,一個(gè)32位的數(shù)據(jù)信號,相對同一個(gè)時(shí)鐘源(用于生成這些信號)我們可以對每個(gè)信號進(jìn)行約束。

但是使用這種方法來控制數(shù)據(jù)總線上信號之間的偏移需要非常嚴(yán)格的時(shí)序約束。

例如我們需要確保不同信號之間的偏移差在0.5ns范圍內(nèi)。

因此我們需要設(shè)計(jì)延遲規(guī)范,比如定義最小和最大延遲,確保所有信號能在0.5ns偏差范圍內(nèi)全部到達(dá)節(jié)點(diǎn)。

這個(gè)要求不是對于某個(gè)具體的0.5ns節(jié)點(diǎn)來說的,而是需要滿足任意一個(gè)節(jié)點(diǎn)——在0.5ns的延遲范圍內(nèi)所有信號都能到達(dá)。

XDC可以通過set_data_check命令來規(guī)定這樣的偏差控制要求。

我們可以使用這個(gè)命令來定義兩個(gè)數(shù)據(jù)信號之間所能接受的最大偏差值。

舉個(gè)例子:
set_data_check –from A –to B 0.5

也就是說AB之間的傳輸時(shí)間在0.5之內(nèi)。

下面讓我們來使用這個(gè)命令來規(guī)范一個(gè)32位總線的數(shù)據(jù)偏移問題。

這需要31*32/2條命令來定義任意數(shù)據(jù)信號之間的組合。

另一個(gè)簡單的方法(只是稍微加一些限制)是取其中一位數(shù)據(jù)信號作為參照,根據(jù)這個(gè)信號來規(guī)范其它數(shù)據(jù)信號。

對于每個(gè)數(shù)據(jù)信號位,set_data_check命令后面都要加“-to”參數(shù)。

這樣將僅需要32條這樣的命令。

舉個(gè)例子:
set_data_check –from A[0] - to A[15] 0.25
set_data_check –from A[1] –to A[15] 0.25
….
set_data_check –from A[31] –to A[15] 0.25

注意一定要將想定義的數(shù)值減半,因?yàn)槎x的是雙向的。

因此考慮到的極端情況就是一個(gè)信號可能早些到達(dá),另一個(gè)信號可能晚些到達(dá)。

因此所有要約束的信號之間的最大時(shí)間偏移將是具體值的兩倍。

上面的命令設(shè)置可以確保任意的信號組合都能夠使用,信號之間的最大時(shí)間偏移為0.5ns。



關(guān)鍵詞: 信號 偏移控制

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉