面積和速度這兩個(gè)指標(biāo)貫穿著FPGA設(shè)計(jì)的始終,是設(shè)計(jì)質(zhì)量評(píng)價(jià)的終極標(biāo)準(zhǔn)。
“面積”:指一個(gè)設(shè)計(jì)所消耗的FPGA的邏輯資源數(shù)量。FPGA中的邏輯資源,也就是觸發(fā)器( FF)和查找表(LUT) 。
“速度”:是指設(shè)計(jì)結(jié)果在芯片上穩(wěn)定運(yùn)行時(shí)所能達(dá)到的最高頻率,這個(gè)頻率由設(shè)計(jì)的時(shí)序狀況決定。與設(shè)計(jì)滿足的時(shí)鐘周期、PAD to PAD Time、建立時(shí)間、保持時(shí)間和時(shí)鐘到輸出延時(shí)等眾多時(shí)序特征向量密切相關(guān)。
邏輯復(fù)制
邏輯復(fù)制是一種最基本的通過(guò)增加面積改善時(shí)序條件的優(yōu)化手段。這種方法最常用的場(chǎng)合是調(diào)整信號(hào)的扇出。當(dāng)一個(gè)信號(hào)要驅(qū)動(dòng)后級(jí)的許多單元時(shí),也就是有多級(jí)扇出時(shí),可能會(huì)出現(xiàn)如圖1中左圖所示的一些扇出路徑的長(zhǎng)延時(shí)。此時(shí)的解決方法就是通過(guò)信號(hào)邏輯的復(fù)制來(lái)減少路徑延時(shí)。
串并轉(zhuǎn)換
串并轉(zhuǎn)換是面積與速度互換思想的另一種體現(xiàn)。假設(shè)FPGA 上處理模塊的處理速度最大為100Mbits/ s,如果輸入數(shù)據(jù)流的速率是300 Mbits/ s。在這種情況下,如圖2所示,首先將輸入數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,然后利用這3個(gè)模塊并行處理分配的數(shù)據(jù),最后將處理結(jié)果“并串轉(zhuǎn)換”,完成數(shù)據(jù)速率的要求。
布爾邏輯擴(kuò)展運(yùn)算-超前進(jìn)位加法器
在數(shù)字信號(hào)處理的快速運(yùn)算電路中常常用到多位數(shù)字量的加法運(yùn)算,這時(shí)需要用到并行加法器?,F(xiàn)在普遍采用的超前進(jìn)位加法器,只是在幾個(gè)全加器的基礎(chǔ)上增加了一個(gè)超前進(jìn)位形成邏輯,以減少由于逐位進(jìn)位信號(hào)的傳遞所造成的延遲。下面的邏輯圖表示了一個(gè)四位二進(jìn)制超前進(jìn)位加法電路。
布爾邏輯擴(kuò)展運(yùn)算-流水線技術(shù)
所謂流水線設(shè)計(jì)實(shí)際上就是把規(guī)模較大、層次較多的組合邏輯電路分為幾個(gè)級(jí),在每一級(jí)插入寄存器組暫存中間數(shù)據(jù)。K級(jí)的流水線就是從組合邏輯的輸入到輸出恰好有K個(gè)寄存器組(分為K級(jí),每一級(jí)都有一個(gè)寄存器組)上一級(jí)的輸出是下一級(jí)的輸入而又無(wú)反饋的電路。
使用EDA工具提高工作時(shí)序
工具優(yōu)化設(shè)計(jì)的工作時(shí)序主要是通過(guò)給設(shè)計(jì)添加各種各樣的時(shí)序約束,時(shí)序約束可以規(guī)范設(shè)計(jì)的時(shí)序行為,表達(dá)設(shè)計(jì)者期望滿足的時(shí)序條件。通過(guò)附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時(shí),從而提高工作頻率。
面積的優(yōu)化—邏輯資源的共享
例如:使用數(shù)據(jù)選擇器實(shí)現(xiàn)加法器(運(yùn)算器)的共享。