新聞中心

FPGA時(shí)序收斂

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

  異步邏輯的劣勢

  異步代碼會(huì)產(chǎn)生難以約束、仿真及調(diào)試的邏輯。異步邏輯往往產(chǎn)生間歇性錯(cuò)誤,而且這些錯(cuò)誤幾乎無法重現(xiàn)。另外,無法生成用于檢測異步邏輯所導(dǎo)致的錯(cuò)誤的測試平臺(tái)。

  雖然異步邏輯看起來可能容易檢測,但是,事實(shí)上它經(jīng)常不經(jīng)檢測;因此,設(shè)計(jì)人員必須小心異步邏輯在設(shè)計(jì)中隱藏的許多方面。所有鐘控邏輯都需要一個(gè)最短建立與保持時(shí)間,而且這一點(diǎn)同樣適用于觸發(fā)器的復(fù)位輸入。以下代碼采用異步復(fù)位。在此無法為了滿足觸發(fā)器的建立與保持時(shí)間需求而應(yīng)用約束。

  

程序

  下列代碼采用同步復(fù)位。但是,大多數(shù)系統(tǒng)的復(fù)位信號(hào)都可能是按鍵開關(guān),或是與系統(tǒng)時(shí)鐘無關(guān)的其它信號(hào)源。盡管復(fù)位信號(hào)大部分情況是靜態(tài)的,而且長期處于斷言或解除斷言狀態(tài),不過其水平仍然會(huì)有所變化。相當(dāng)于系統(tǒng)時(shí)鐘上升沿,復(fù)位解除斷言可以違反觸發(fā)器的建立時(shí)間要求,而對此無法約束。

  

程序

  只要我們明白無法直接將異步信號(hào)饋送到我們的同步邏輯中,就很容易解決這個(gè)問題。以下代碼創(chuàng)建一個(gè)稱為 sys_reset 的新復(fù)位信號(hào),其已經(jīng)與我們的系統(tǒng)時(shí)鐘 sys_clk 同步化。在異步邏輯采樣時(shí)會(huì)產(chǎn)生亞穩(wěn)定性問題。我們可以采用與階梯的前幾級(jí)進(jìn)行了’與’運(yùn)算的梯形采樣降低此問題的發(fā)生幾率。

  

程序

  至此,假定您已經(jīng)慎重實(shí)現(xiàn)了所有邏輯的同步化。不過,如果您不小心,則您的邏輯很容易與系統(tǒng)時(shí)鐘脫節(jié)。切勿讓您的工具鏈?zhǔn)褂孟到y(tǒng)時(shí)鐘所用的本地布線資源。那樣做的話您就無法約束自己的邏輯。切記要明確定義所有的重要邏輯。

  以下 VHDL 代碼采用賽靈思 BUFG 原語強(qiáng)制 sys_clk 進(jìn)入驅(qū)動(dòng)低延遲網(wǎng)絡(luò) (low-skew net) 的專用高扇出緩沖器。



關(guān)鍵詞: 收斂 時(shí)序 FPGA

評論


相關(guān)推薦

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

關(guān)閉