FPGA Fanout-Fanin(扇入扇出)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
扇入系數(shù)是指門電路允許的輸入端數(shù)目。一般門電路的扇入系數(shù)為1—5,最多不超過(guò)8。扇出系數(shù)是指一個(gè)門的輸出端所驅(qū)動(dòng)同類型門的個(gè)數(shù),或稱負(fù)載能力。一般門電路的扇出系數(shù)為8,驅(qū)動(dòng)器的扇出系數(shù)可達(dá)25。扇出系數(shù)體現(xiàn)了門電路的負(fù)載能力。
灌電流、拉電流
當(dāng)邏輯門輸出端是低電平時(shí),灌入邏輯門的電流稱為灌電流,灌電流越大,輸出端的低電平就越高。當(dāng)邏輯門輸出端是高電平時(shí),邏輯門輸出端的電流是從邏輯門中流出,這個(gè)電流稱為拉電流。簡(jiǎn)單的理解就是邏輯門的輸入(灌電流)和輸出電流(拉電流)。
上、下拉電阻
上拉電阻就是將不確定的信號(hào)通過(guò)一個(gè)電阻嵌位在高電平(即拉電流),來(lái)增加高電平輸出時(shí)的驅(qū)動(dòng)能力,以解決總線驅(qū)動(dòng)能力不足時(shí)提供電流;下拉電阻就是將不確定的信號(hào)通過(guò)一個(gè)電阻嵌位在低電平,是用來(lái)吸收電流的,也就是灌電流。
負(fù)載效應(yīng)
當(dāng)輸出負(fù)載大于它的扇出能力的時(shí)候,就會(huì)有如下的效應(yīng):
1、輸出低態(tài)時(shí),輸出電壓VOL可能高于VOLmax。
2、輸出高態(tài)時(shí),輸出電壓VOH可能高于VOLmin。
3、輸出的傳播延遲可能大于規(guī)格說(shuō)明的延遲值。
4、輸出的上升和下降時(shí)間可能大于規(guī)格說(shuō)明的延遲值。
5、器件工作溫度可能升高,從而降低其可靠性,最終引起器件失效。
前面已經(jīng)介紹了什么是扇出和扇出系數(shù)。多扇出問(wèn)題,通常是指用一個(gè)節(jié)點(diǎn)驅(qū)動(dòng)多個(gè)下級(jí)邏輯器件,此問(wèn)題會(huì)嚴(yán)重影響FPGA布線的穩(wěn)定性,設(shè)計(jì)的時(shí)候要多加注意,此時(shí)采用的是復(fù)制寄存器策略。
舉個(gè)例子: CLK為系統(tǒng)時(shí)鐘,M為1MHz方波信號(hào),由于M信號(hào)驅(qū)動(dòng)的模塊較多,所以M的扇出較多,為了減少扇出,用系統(tǒng)時(shí)鐘采樣,將M信號(hào)驅(qū)動(dòng)7個(gè)D觸發(fā)器,然后將7個(gè)D觸發(fā)器的輸出端分給7個(gè)模塊,這樣每個(gè)復(fù)制點(diǎn)(DUP0~DUP6)平均扇出變?yōu)樵瓉?lái)的1/7,M的信號(hào)扇出變?yōu)?,這樣就減少了每個(gè)信號(hào)的扇出,優(yōu)化了邏輯,也提高了設(shè)計(jì)的整體性能。簡(jiǎn)而言之,就是將一路信號(hào)用D觸發(fā)器和CLK將其分成兩路信號(hào),或者是更多路的信號(hào),再讓這些信號(hào)來(lái)驅(qū)動(dòng)下面的各個(gè)模塊。
如何判斷是系統(tǒng)的問(wèn)題是由于多扇出而導(dǎo)致的呢。我是這樣判斷的,因?yàn)槲业哪K是一個(gè)一個(gè)寫(xiě),一塊一塊的調(diào)試的,所以在分開(kāi)調(diào)試的時(shí)候沒(méi)有出任何問(wèn)題,當(dāng)所有的綜合在一起的時(shí)候,就出現(xiàn)了有一個(gè)模塊的信號(hào)總是不正常,單獨(dú)調(diào)試該模塊的時(shí)候又正常,然而這兩個(gè)模塊之間又沒(méi)有什么交互信號(hào),所以,就把問(wèn)題定位在這個(gè)共用信號(hào)的驅(qū)動(dòng)能力上了,最終曾加了D觸發(fā)器,解決了這個(gè)問(wèn)題。
另外經(jīng)高手指點(diǎn),還有一種方法是將這個(gè)頻率信號(hào)放在CLK的管腳上,因?yàn)闀r(shí)鐘管腳的驅(qū)動(dòng)能力比一般的IO口要大一些,所以也就能夠帶動(dòng)更多的邏輯門。
門控時(shí)鐘的問(wèn)題
最后添加一點(diǎn)關(guān)于門控時(shí)鐘的問(wèn)題。在編譯的時(shí)候,系統(tǒng)會(huì)報(bào)警告,F(xiàn)ound X node(s) in clock paths which may be acting as ripple and/or gated cloxks。這種情況是由于使用了門電路來(lái)產(chǎn)生時(shí)鐘,一般處理這個(gè)警告的方式都會(huì)說(shuō):“如果是這樣設(shè)計(jì)的,就不管這個(gè)警告了。”不過(guò)看了下面的一段文字也就能夠理解為什么會(huì)有這樣的警告了。如果想設(shè)計(jì)出更完美的產(chǎn)品,還是要考慮這個(gè)問(wèn)題的。
門控時(shí)鐘指的是不用FPGA內(nèi)部的全局時(shí)鐘資源BUFG來(lái)控制觸發(fā)器的時(shí)鐘沿輸入端而是采用組合邏輯和其它時(shí)序邏輯(如分頻器)產(chǎn)生的信號(hào)作為觸發(fā)器的時(shí)鐘沿輸入端。門控時(shí)鐘容易帶來(lái)時(shí)鐘漂移、毛刺等,使得觸發(fā)器誤動(dòng)作,通常,對(duì)于驅(qū)動(dòng)的觸發(fā)器數(shù)量較少的門控時(shí)鐘,編譯器可以自動(dòng)將分布時(shí)鐘緩沖器將其布線優(yōu)化,但是對(duì)于驅(qū)動(dòng)觸發(fā)器較多的門控時(shí)鐘,將會(huì)使布線不穩(wěn)定,重者造成設(shè)計(jì)混亂。門控時(shí)中較多,也會(huì)使得整個(gè)設(shè)計(jì)的最大工作速度下降,降低產(chǎn)品的性能。
對(duì)于門控時(shí)鐘問(wèn)題,通常的解決辦法是將分頻器做成與系統(tǒng)時(shí)鐘寬度一個(gè)周期寬度的脈沖信號(hào),所謂系統(tǒng)時(shí)鐘就是用全局時(shí)鐘資源BUFG驅(qū)動(dòng)的高扇出、零漂移、零畸變的時(shí)鐘資源,在FPGA內(nèi)部的布線結(jié)構(gòu)是樹(shù)形結(jié)構(gòu)。
將分頻器的輸出送入觸發(fā)器的ce端,當(dāng)系統(tǒng)時(shí)鐘到來(lái)時(shí),檢測(cè)ce信號(hào)的有效性,當(dāng)ce信號(hào)有效時(shí),將觸發(fā)器的輸出改變,和分頻器的作用完全一樣,而且這樣處理也使得布線更加優(yōu)化。
參考:http://blog.tianya.cn/blogger/post_read.asp?BlogID=4224308&PostID=41813272
在模塊化設(shè)計(jì)中
模塊的扇出是指模塊的直屬下層模塊的個(gè)數(shù),如圖7.8所示。圖7.8中,平均的扇出是2。一般認(rèn)為,設(shè)計(jì)得好的系統(tǒng)平均扇出是3或4。
圖7.8模塊的扇出
一個(gè)模塊的扇出數(shù)過(guò)大或過(guò)小都不理想,過(guò)大比過(guò)小更嚴(yán)重。一般認(rèn)為扇出的上限不超過(guò)7。扇出過(guò)大意味著管理模塊過(guò)于復(fù)雜,需要控制和協(xié)調(diào)過(guò)多的下級(jí)。解決的辦法是適當(dāng)增加中間層次。
一個(gè)模塊的扇入是指有多少個(gè)上級(jí)模塊調(diào)用它。扇人越大,表示該模塊被更多的上級(jí)模塊共享。這當(dāng)然是我們所希望的。但是不能為了獲得高扇人而不惜代價(jià),例如把彼此無(wú)關(guān)的功能湊在一起構(gòu)成一個(gè)模塊,雖然扇人數(shù)高了,但這樣的模塊內(nèi)聚程度必然低。這是我們應(yīng)避免的。
設(shè)計(jì)得好的系統(tǒng),上層模塊有較高的扇出,下層模塊有較高的扇人。其結(jié)構(gòu)圖像清真寺的塔,上面尖,中間寬,下面小。
1.門電路的扇入扇出
扇入系數(shù),是指門電路允許的輸入端數(shù)目。
一般TTL電路的扇入系數(shù) Nr為1~5,最多不超過(guò)8。若芯片輸入端數(shù)多于實(shí)際要求的數(shù)目,可將芯片多余輸入端接高電平(+5V)或接低電平(GND)。
扇出系數(shù),是指一個(gè)門的輸出端所驅(qū)動(dòng)同類型門的個(gè)數(shù),或稱負(fù)載能力。
NO=IOLMAX/IILMAX,這是一個(gè)通俗的定義一般用在TTL電路的定義中。其中IOLMAX為最大允許灌電流,IILMAX是一個(gè)負(fù)載門灌入本級(jí)的電流。
TTL電路的扇出系數(shù)Nc為8~10。
CMOS電路的扇出系數(shù)Nc可達(dá)20~25。
當(dāng)然LVTTL和LVCMOS都可進(jìn)一步驗(yàn)算獲得。
Nc表征了門電路的負(fù)載能力。
1.TTL電路
TTL的驗(yàn)算是比較好弄的,TTL與TTL之間如下圖所示:
由于本身晶體管的轉(zhuǎn)換速度有限,因此對(duì)于TTL來(lái)說(shuō),扇入扇出系數(shù)無(wú)所謂低頻和高頻而言。
2.CMOS
扇出系數(shù)實(shí)質(zhì)上是根據(jù)頻率有關(guān)的。
因此,扇出系數(shù)是根據(jù)輸出波形識(shí)別的時(shí)序而定的,隨著頻率的增加,扇出系數(shù)越來(lái)越小。
這是因?yàn)槔碚撋蟻?lái)說(shuō)Rdson和Ci都是確定的,根據(jù)充放電過(guò)程
注意Rdson的能力計(jì)算可參考前面的博文
通過(guò)計(jì)算時(shí)間常數(shù),我們可測(cè)算
1.10%=>90%的時(shí)間,并確認(rèn)高電平的時(shí)間。
2.90%=>10%的時(shí)間,并確認(rèn)低電平的時(shí)間。
如果這兩個(gè)都符合,則可接受。
當(dāng)然MOS管的輸出電容和PCB板的寄生電感和電容,這些因素都會(huì)影響實(shí)際的效果。