ASIC 和FPGA芯片的內(nèi)核之間最大的不同莫過于時鐘結(jié)構(gòu)。ASIC設(shè)計需要采用諸如時鐘樹綜合、時鐘延遲匹配等方式對整個時鐘結(jié)構(gòu)進(jìn)行處理,但是 FPGA設(shè)計則完全不必。因?yàn)楹笳哂袃?nèi)建的時鐘資源:鎖相環(huán)、頻率綜合器、移相器,以及具有低延遲特性的專用時鐘布線網(wǎng)絡(luò)。ASIC芯片的時鐘設(shè)計具有更大的靈活性,但FPGA芯片內(nèi)建的時鐘資源則能簡化設(shè)計。正是因?yàn)閮烧叩牟煌瑤砹艘浦采系闹T多麻煩。
ASIC設(shè)計中的時鐘樹結(jié)構(gòu),需要映射到FPGA芯片的專用時鐘資源中,以及原型驗(yàn)證平臺的不同F(xiàn)PGA芯片中。
一顆FPGA芯片的專用時鐘資源是有限的,以Virtex-6LX760芯片也只有18個 MMCM時鐘資源模塊。這對于大部分FPGA設(shè)計來講已經(jīng)足夠了,但是對于具有大量時鐘樹資源的ASIC設(shè)計來講,往往還是不夠使用。FPGA芯片的另外一個限制是同一個時鐘域所能容納的全局時鐘資源有限。
門控時鐘
在ASIC設(shè)計中,常常采用門控時鐘技術(shù)來降低整個芯片的低耗。圖1顯示了使用門控時鐘技術(shù)的電路:時鐘clk通過信號en1和en2進(jìn)入組合邏輯后,驅(qū)動后續(xù)的兩個寄存器。
從上述電路可以看出,當(dāng)信號en1和en2的某種組合關(guān)系使得clk信號無法向后傳遞時,兩個寄存器將停止工作,因此也不會消費(fèi)功耗。
但是如果將ASIC設(shè)計中的門控時鐘電路直接映射到FPGA芯片中,則會帶來整體的性能甚至穩(wěn)定性的下降。其根本原因在于FPGA芯片采用的是專用的低延遲時鐘網(wǎng)絡(luò),只有整個時鐘系統(tǒng)運(yùn)行在該網(wǎng)絡(luò)時,才能達(dá)到最高的性能。而通過組合邏輯的門控時鐘信號運(yùn)行在普通的布線資源上,這將大大的降低其性能,甚至帶來建立保持時間的問題。因此必須將門控時鐘通過某種方式映射到FPGA芯片的專用時鐘資源上,而不是簡單得代碼移植。
門控時鐘的轉(zhuǎn)換
對門控時鐘進(jìn)行轉(zhuǎn)換,就是要把時鐘網(wǎng)絡(luò)上的組合邏輯“刪掉”,將所有時序邏輯的時鐘驅(qū)動端口直接鏈接在FPGA芯片的專用時鐘資源上。
其中一個方法就是將組合邏輯從時鐘通路‘搬移’到數(shù)據(jù)通路上,這種方式可以通過圖2中的多路選擇器來實(shí)現(xiàn)。
或者可以采用時鐘使能的結(jié)構(gòu)達(dá)到同樣的功能,如圖3所示。
設(shè)計工具對門控時鐘的轉(zhuǎn)換
Synopsys公司的Synplify Pro/Premier是高性能FPGA邏輯綜合工具,可以自動地進(jìn)行門控時鐘轉(zhuǎn)換。當(dāng)然轉(zhuǎn)換是有一定條件的:必須是帶有組合邏輯的門控時鐘結(jié)構(gòu);時鐘必須要有確定的約束條件;門控時鐘所驅(qū)動的時序邏輯電路不能是黑盒子。
前面提到的門控時鐘轉(zhuǎn)換電路都比較簡單,在實(shí)際的設(shè)計中,門控時鐘的組合邏輯也許會很復(fù)雜,所驅(qū)動的后續(xù)電路不僅僅有寄存器,還有 BRAM和DSP模塊等時序邏輯。因此即便是Synplify pro/Premier這樣的高性能綜合器也可能有無法自動處理的電路結(jié)構(gòu),仍然需要手動修改。
時刻使能
對于ASIC設(shè)計中的時鐘使能電路,沒有必要做任何的轉(zhuǎn)換工作。因此FPGA芯片內(nèi)部的各種時序邏輯電路(包括寄存器、BRAM和DSP48模塊)本身就帶有時鐘使能輸入端口,因此綜合工具可以做到完美的自動映射。
時鐘管理單元的映射
ASIC設(shè)計中的大部分時鐘管理模塊(如PLL),僅僅需要對端口的細(xì)微修改就可以直接映射到FPGA對應(yīng)的資源上。Xilinx的FPGA芯片提供了豐富的可配置時鐘資源:DCM,PLL,MMCM,BUFG/BUFR,BUFGMUX,等等。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<