Altera器件設計中的時間匹配問題的研究
發布時間:2008/6/5 0:00:00 訪問次數:612
美國altera公司生產的復雜可編程邏輯器件以其操作靈活、使用方便、開發迅速、投資風險低等特點成為集成電路設計的首選產品。altera的 max+plusⅱ可編程邏輯開發軟件,提供了一種與工作平臺、器件結構無關的設計環境,深受廣大電子設計人員的喜愛。但設計人員都會遇到altera器件設計中的時間匹配問題,本文對這個問題展開了討論,對電路中短時脈沖波形失真的所謂"毛刺"現象進行了研究,并提出了解決的辦法。
2 消除毛刺
某個事件成功的條件不分先后順序,只要滿足成功的組合需求,此事件就算成功,此種邏輯關系就是組合邏輯。我們在使用altera器件進行組合邏輯的設計時,常遇到短時脈沖波形失真,即毛刺問題(見圖1)。在組合電路中,兩輸入and門是最簡單的電路,從max+plusⅱ中的 timing analyzer的delay matrix 中可得知a=11.1ns,b=8. 1ns。假定and門內部的延時時間為0.2ns,那么 a的延時+ and內部的延時(0.2ns)=11.1ns,a的延時為10.9ns; b的延時+and內部的延時(0.2ns)=8.1ns,b的延時為7.9ns。由于 a和b的延時時間不相等,所以當a從1變為0,同時b從0變為1時,輸出結果c產生了毛刺。
altera器件結構有許多特點,使你在設計時具有較大的靈活性,但是,它可能會引入附加的時間延時。另外,復雜可編程邏輯器件中具有稱作邏輯陣列塊(lab)的小型、高性能、靈活陣列模塊,還有稱作可編程連線陣列(pia)的專用可編程網絡,max的結構通過pia來連接lab,保證其100%的內部連接布通率。每個lab中的邏輯擴展項都提供附加的邏輯資源給lab中的任何一個宏單元。但是,所有來自宏單元和擴展項的信號經過pia時都必然引入時間延時,從而可能在組合邏輯的輸出端產生毛刺。對于怎樣消除毛刺,我們作了以下探討。
2.1 軟件修改輸入端子的延時時間
一些軟件(如xilinx公司)提供的方法是通過修改輸入端子的延時時間,來解決毛刺問題的。如圖1中,我們用軟件把 b輸入端子的延時時間改為10.9ns,這樣a與 b的延時時間相等,就消除了輸出端c的毛刺。它的優點是能快速解決問題,這是設計中最簡單實用的方法。
2.2 修改電路
通過修改定義時鐘信號的復雜邏輯,將其轉換成同步時鐘方式就可以避免毛刺出現。同步時鐘是采用單一的引腳驅動的系統時鐘,而不是異步的(邏輯驅動的)時鐘,見圖2。只要可能就應盡量采用同步設計,可以避免定時關系發生問題。另外,同步設計也可以改善電路的在線性能,減少調試時間和提高電路的可靠性。在同步時鐘方式中 c信號是d觸發器輸入的一部分,而且時鐘是由引腳驅動。這個電路稱作寄存器使能電路, max+plusⅱttl宏功能庫中提供了一種可以實現這種類型電路的d觸發器dffe(見圖2)。
對于三到八譯碼器而言,用a、b、c表示輸入引腳,d0、d1、d2、d3、d4、d5、d6、d7 表示三到八譯碼器的輸出引腳。對該設計項目進行編譯后模擬仿真,這時非常容易從模擬仿真出來的波形上看到出現了毛刺。如采用同步時鐘(引腳驅動)方式,就可以消除毛刺。要注意的一點是建立和保持時間(setup/hold time )是測試芯片對輸入信號和時鐘信號之間的時間要求。建立時間是指觸發器的時鐘信號上升沿到來以前,數據穩定不變的時間。輸入信號應提前時鐘上升沿(如上升沿有效)t時間到達芯片,這個t就是建立時間set up time。如不滿足setup time,這個數據就不能被這一時鐘打入觸發器,只有在下一個時鐘上升沿,數據才能被打入觸發器。保持時間是指觸發器的時鐘信號上升沿到來以后,數據穩定不變的時間。hold time不夠,數據同樣不能被打入觸發器。我們選用a端的輸入脈沖寬度是時鐘脈沖的四倍,這樣d 觸發器就可以正常動作,輸出結果是正確的,見圖3、圖4。如果我們一定要使輸入脈沖等于輸出脈沖的寬度,就要使輸入脈沖的高電平與時鐘脈沖的高電平錯開,保證d觸發器能工作。
2.3 重新設計電路
毛刺是信號趨于穩定前不必要的開關動作,使每個時鐘沿改變了寄存器間組合邏輯的輸入。對每個節點而言,不同的輸入路徑有不同的延時,這將多次改變
美國altera公司生產的復雜可編程邏輯器件以其操作靈活、使用方便、開發迅速、投資風險低等特點成為集成電路設計的首選產品。altera的 max+plusⅱ可編程邏輯開發軟件,提供了一種與工作平臺、器件結構無關的設計環境,深受廣大電子設計人員的喜愛。但設計人員都會遇到altera器件設計中的時間匹配問題,本文對這個問題展開了討論,對電路中短時脈沖波形失真的所謂"毛刺"現象進行了研究,并提出了解決的辦法。
2 消除毛刺
某個事件成功的條件不分先后順序,只要滿足成功的組合需求,此事件就算成功,此種邏輯關系就是組合邏輯。我們在使用altera器件進行組合邏輯的設計時,常遇到短時脈沖波形失真,即毛刺問題(見圖1)。在組合電路中,兩輸入and門是最簡單的電路,從max+plusⅱ中的 timing analyzer的delay matrix 中可得知a=11.1ns,b=8. 1ns。假定and門內部的延時時間為0.2ns,那么 a的延時+ and內部的延時(0.2ns)=11.1ns,a的延時為10.9ns; b的延時+and內部的延時(0.2ns)=8.1ns,b的延時為7.9ns。由于 a和b的延時時間不相等,所以當a從1變為0,同時b從0變為1時,輸出結果c產生了毛刺。
altera器件結構有許多特點,使你在設計時具有較大的靈活性,但是,它可能會引入附加的時間延時。另外,復雜可編程邏輯器件中具有稱作邏輯陣列塊(lab)的小型、高性能、靈活陣列模塊,還有稱作可編程連線陣列(pia)的專用可編程網絡,max的結構通過pia來連接lab,保證其100%的內部連接布通率。每個lab中的邏輯擴展項都提供附加的邏輯資源給lab中的任何一個宏單元。但是,所有來自宏單元和擴展項的信號經過pia時都必然引入時間延時,從而可能在組合邏輯的輸出端產生毛刺。對于怎樣消除毛刺,我們作了以下探討。
2.1 軟件修改輸入端子的延時時間
一些軟件(如xilinx公司)提供的方法是通過修改輸入端子的延時時間,來解決毛刺問題的。如圖1中,我們用軟件把 b輸入端子的延時時間改為10.9ns,這樣a與 b的延時時間相等,就消除了輸出端c的毛刺。它的優點是能快速解決問題,這是設計中最簡單實用的方法。
2.2 修改電路
通過修改定義時鐘信號的復雜邏輯,將其轉換成同步時鐘方式就可以避免毛刺出現。同步時鐘是采用單一的引腳驅動的系統時鐘,而不是異步的(邏輯驅動的)時鐘,見圖2。只要可能就應盡量采用同步設計,可以避免定時關系發生問題。另外,同步設計也可以改善電路的在線性能,減少調試時間和提高電路的可靠性。在同步時鐘方式中 c信號是d觸發器輸入的一部分,而且時鐘是由引腳驅動。這個電路稱作寄存器使能電路, max+plusⅱttl宏功能庫中提供了一種可以實現這種類型電路的d觸發器dffe(見圖2)。
對于三到八譯碼器而言,用a、b、c表示輸入引腳,d0、d1、d2、d3、d4、d5、d6、d7 表示三到八譯碼器的輸出引腳。對該設計項目進行編譯后模擬仿真,這時非常容易從模擬仿真出來的波形上看到出現了毛刺。如采用同步時鐘(引腳驅動)方式,就可以消除毛刺。要注意的一點是建立和保持時間(setup/hold time )是測試芯片對輸入信號和時鐘信號之間的時間要求。建立時間是指觸發器的時鐘信號上升沿到來以前,數據穩定不變的時間。輸入信號應提前時鐘上升沿(如上升沿有效)t時間到達芯片,這個t就是建立時間set up time。如不滿足setup time,這個數據就不能被這一時鐘打入觸發器,只有在下一個時鐘上升沿,數據才能被打入觸發器。保持時間是指觸發器的時鐘信號上升沿到來以后,數據穩定不變的時間。hold time不夠,數據同樣不能被打入觸發器。我們選用a端的輸入脈沖寬度是時鐘脈沖的四倍,這樣d 觸發器就可以正常動作,輸出結果是正確的,見圖3、圖4。如果我們一定要使輸入脈沖等于輸出脈沖的寬度,就要使輸入脈沖的高電平與時鐘脈沖的高電平錯開,保證d觸發器能工作。
2.3 重新設計電路
毛刺是信號趨于穩定前不必要的開關動作,使每個時鐘沿改變了寄存器間組合邏輯的輸入。對每個節點而言,不同的輸入路徑有不同的延時,這將多次改變