新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 確保數據總線的信號偏移控制

        確保數據總線的信號偏移控制

        作者: 時間:2017-10-11 來源:網絡 收藏

        有時候我們想讓多個或多或少的出現在同一時刻(也就是說這些之間的時間差應該在某個界限之內)。

        本文引用地址:http://www.104case.com/article/201710/365504.htm

        一個經典的情況就是多位的數據總線,總線上的應該(幾乎)同時到達。

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

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

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

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

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

        但是使用這種方法來控制數據總線上信號之間的偏移需要非常嚴格的時序約束。

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

        因此我們需要設計延遲規范,比如定義最小和最大延遲,確保所有信號能在0.5ns偏差范圍內全部到達節點。

        這個要求不是對于某個具體的0.5ns節點來說的,而是需要滿足任意一個節點——在0.5ns的延遲范圍內所有信號都能到達。

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

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

        舉個例子:
        set_data_check –from A –to B 0.5

        也就是說AB之間的傳輸時間在0.5之內。

        下面讓我們來使用這個命令來規范一個32位總線的數據偏移問題。

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

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

        對于每個數據信號位,set_data_check命令后面都要加“-to”參數。

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

        舉個例子:
        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

        注意一定要將想定義的數值減半,因為定義的是雙向的。

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

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

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



        關鍵詞: 信號 偏移控制

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 巴楚县| 项城市| 固原市| 临漳县| 临城县| 施甸县| 安陆市| 肃北| 天全县| 无极县| 肥西县| 罗甸县| 秦皇岛市| 石城县| 肥城市| 钟祥市| 宁明县| 龙川县| 鲁山县| 襄樊市| 华容县| 鹤壁市| 诏安县| 石楼县| 伊金霍洛旗| 和田市| 陆川县| 华安县| 顺平县| 兴海县| 唐河县| 三都| 沂水县| 阿图什市| 九寨沟县| 凤阳县| 盐源县| 柏乡县| 延寿县| 光山县| 澄迈县|