Altera器件時(shí)間匹配問題的解決方案
2.3 重新設(shè)計(jì)電路
毛刺是信號(hào)趨于穩(wěn)定前不必要的開關(guān)動(dòng)作,使每個(gè)時(shí)鐘沿改變了寄存器間組合邏輯的輸入。對(duì)每個(gè)節(jié)點(diǎn)而言,不同的輸入路徑有不同的延時(shí),這將多次改變狀態(tài)。節(jié)點(diǎn)上的毛刺多少與該節(jié)點(diǎn)的邏輯深度,也就是節(jié)點(diǎn)至最初輸入的邏輯門個(gè)數(shù)有關(guān)。到達(dá)節(jié)點(diǎn)的邏輯錐體越深、越寬,毛刺也越多。降低邏輯深度,減少邏輯錐體的開關(guān)輸入可減少這類毛剌。時(shí)序驅(qū)動(dòng)合成以及邏輯單元的合理映射能減少邏輯級(jí)的數(shù)量。
如果一個(gè)計(jì)數(shù)器的輸出端接一個(gè)組合電路,這個(gè)組合電路的輸出端產(chǎn)生了毛刺,最好的解決方法是重新設(shè)計(jì)電路,只要在這一時(shí)刻改變計(jì)數(shù)器輸出端子的輸出順序,就可以消除下一級(jí)組合電路輸出端的毛刺。例如,在下面程序中,在這一時(shí)刻改變q0、q1、q2輸出順序,就能解決計(jì)數(shù)器輸出所接的組合電路輸出端毛刺的問題。
subdesign modcount
(clk,reset:input;
q[2..0]utput;
)
variable
counter3:machine of bits(rr[2..0])
with states(r0=B101, --換成r5的輸出
r1=B100, --換成r4的輸出
r2=B000, --換成r0的輸出
r3=B001, --換成r1的輸出
r4=B011, --換成r3的輸出
r5=B010, --換成r2的輸出
r6=B110,
r7=B111);
begin
q[ ]=rr[ ];
counter3.reset=reset;
counter3.clk=clk;
CASE counter3 IS
when r0=>counter3=r1;
when r1=>counter3=r2;
when r2=>counter3=r3;
when r3=>counter3=r4;
when r4=>counter3=r5;
when r5=>counter3=r6;
when r6=>counter3=r7;
when r7=>counter3=r0;
END CASE;
End ;
3 行波時(shí)鐘時(shí)間匹配問題
行波時(shí)鐘是計(jì)數(shù)器通常使用的一種時(shí)鐘方式,而使用行波時(shí)鐘是可能引起潛在時(shí)間匹配問題的另一個(gè)因素。所謂行波時(shí)鐘是指一個(gè)寄存器的輸出為另一個(gè)寄存器產(chǎn)生時(shí)鐘,而不是使用一個(gè)公共的系統(tǒng)時(shí)鐘。如果仔細(xì)設(shè)計(jì),行波時(shí)鐘可以像全局時(shí)鐘一樣可靠工作,但是行波時(shí)鐘使得與電路有關(guān)的定時(shí)計(jì)算變得很復(fù)雜。行波時(shí)鐘在行波鏈上各寄存器時(shí)鐘之間將產(chǎn)生較大的時(shí)間偏移,并且會(huì)超出最壞情況下的建立時(shí)間、保持時(shí)間和電路中時(shí)鐘到輸出的延時(shí),使系統(tǒng)的實(shí)際速度下降。在圖5(a)中使用行波時(shí)鐘所示電路的時(shí)鐘周期依賴于計(jì)數(shù)器最低位的變化沿計(jì)數(shù)器傳播到最高位所花的時(shí)間,這個(gè)周期與計(jì)數(shù)器的位數(shù)有關(guān)。隨著逐位進(jìn)位計(jì)數(shù)器的位數(shù)增加,系統(tǒng)的速度將下降,為此可使用同步電路來解決這個(gè)問題,如圖5(b)所示。當(dāng)把異步計(jì)數(shù)器改成同步操作時(shí),系統(tǒng)的速度由寄存器的建立和保持時(shí)間決定,而不是由計(jì)數(shù)器的位數(shù)決定。同步電路不需要使用附加的資源,就可以提高計(jì)數(shù)器的速度,并消除出現(xiàn)非法計(jì)數(shù)數(shù)值的可能性。
本文引用地址:http://2s4d.com/article/151258.htm |
還可以通過在MAX+PLUSII中仔細(xì)地分配資源,來提高設(shè)計(jì)的可靠性。在MAX器件中通過PIA的信號(hào)將會(huì)有時(shí)間延時(shí)。為消除這種延時(shí),可以在MAX+PLUSⅡ中進(jìn)行團(tuán)體分配,也就是將計(jì)數(shù)器鄰接的位安排在同一個(gè)LAB中的諸宏單元內(nèi)。
4 結(jié)束語
在組合電路中,從信號(hào)輸入到穩(wěn)定輸出需要一定的時(shí)間。由于從輸入到輸出的過程中,不同通路上門的級(jí)數(shù)不同,或者門電路平均延遲時(shí)間的差異,使信號(hào)從輸入經(jīng)不同通道傳輸?shù)捷敵黾?jí)的時(shí)間不同,由于這個(gè)原因,就產(chǎn)生了毛刺。這是一個(gè)普遍性的問題。本文對(duì)解決毛刺的方法作了一個(gè)總結(jié),有利于大家快速、準(zhǔn)確設(shè)計(jì)穩(wěn)定的集成電路。在這個(gè)問題上,AHDL語言比VHDL語言要直觀、易于理解。從宏觀上看,要解決Altera器件設(shè)計(jì)中的時(shí)間匹配問題,要使用同步設(shè)計(jì)。采用同步電路設(shè)計(jì)也可以使電路免受外部因素影響(如硅處理工藝和溫度變動(dòng))而造成的時(shí)間匹配問題。
評(píng)論