FPGA四大設計要點(diǎn)解析及應用方案集錦
本文敘述概括了FPGA應用設計中的要點(diǎn),包括,時(shí)鐘樹(shù)、FSM、latch、邏輯仿真四個(gè)部分。
本文引用地址:http://dyxdggzs.com/article/270305.htmFPGA的用處比我們平時(shí)想象的用處更廣泛,原因在于其中集成的模塊種類(lèi)更多,而不僅僅是原來(lái)的簡(jiǎn)單邏輯單元(LE)。早期的FPGA相對比較簡(jiǎn)單,所有的功能單元僅僅由管腳、內部buffer、LE、RAM構建而成,LE由LUT(查找表)和D觸發(fā)器構成,RAM也往往容量非常小?,F在的FPGA不僅包含以前的LE,RAM也更大更快更靈活,管教IOB也更加的復雜,支持的IO類(lèi)型也更多,而且內部還集成了一些特殊功能單元,包括:
DSP:實(shí)際上就是乘加器,FPGA內部可以集成多個(gè)乘加器,而一般的DSP芯片往往每個(gè)core只有一個(gè)。換言之,FPGA可以更容易實(shí)現多個(gè)DSP core功能。在某些需要大量乘加計算的場(chǎng)合,往往多個(gè)乘加器并行工作的速度可以遠遠超過(guò)一個(gè)高速乘加器。
SERDES:高速串行接口。將來(lái)PCI-E、XAUI、HT、S-ATA等高速串行接口會(huì )越來(lái)越多。有了SERDES模塊,FPGA可以很容易將這些高速串行接口集成進(jìn)來(lái),無(wú)需再購買(mǎi)專(zhuān)門(mén)的接口芯片。
CPU core:分為2種,軟core和硬core。軟core是用邏輯代碼寫(xiě)的CPU模塊,可以在任何資源足夠的FPGA中實(shí)現,使用非常靈活。而且在大容量的FPGA中還可以集成多個(gè)軟core,實(shí)現多核并行處理。硬core是在特定的FPGA內部做好的CPU core,優(yōu)點(diǎn)是速度快、性能好,缺點(diǎn)是不夠靈活。
不過(guò),FPGA還是有缺點(diǎn)。對于某些高主頻的應用,FPGA就無(wú)能為力了?,F在雖然理論上FPGA可以支持的500MHz,但在實(shí)際設計中,往往200MHz以上工作頻率就很難實(shí)現了。

FPGA設計要點(diǎn)之一:時(shí)鐘樹(shù)
對于FPGA來(lái)說(shuō),要盡可能避免異步設計,盡可能采用同步設計。同步設計的第一個(gè)關(guān)鍵,也是關(guān)鍵中的關(guān)鍵,就是時(shí)鐘樹(shù)。一個(gè)糟糕的時(shí)鐘樹(shù),對FPGA設計來(lái)說(shuō),是一場(chǎng)無(wú)法彌補的災難,是一個(gè)沒(méi)有打好地基的大樓,崩潰是必然的。
具體一些的設計細則:
1)盡可能采用單一時(shí)鐘;
2)如果有多個(gè)時(shí)鐘域,一定要仔細劃分,千萬(wàn)小心;
3)跨時(shí)鐘域的信號一定要做同步處理。對于控制信號,可以采用雙采樣;對于數據信號,可以采用異步fifo。需要注意的是,異步fifo不是萬(wàn)能的,一個(gè)異步fifo也只能解決一定范圍內的頻差問(wèn)題。
4)盡可能將FPGA內部的PLL、DLL利用起來(lái),這會(huì )給你的設計帶來(lái)大量的好處。
5)對于特殊的IO接口,需要仔細計算Tsu、Tco、Th,并利用PLL、DLL、DDIO、管腳可設置的delay等多種工具來(lái)實(shí)現。簡(jiǎn)單對管腳進(jìn)行Tsu、Tco、Th的約束往往是不行的。
可能說(shuō)的不是很確切。這里的時(shí)鐘樹(shù)實(shí)際上泛指時(shí)鐘方案,主要是時(shí)鐘域和PLL等的規劃,一般情況下不牽扯到走線(xiàn)時(shí)延的詳細計算(一般都走全局時(shí)鐘網(wǎng)絡(luò )和局部時(shí)鐘網(wǎng)絡(luò ),時(shí)延固定),和ASIC中的時(shí)鐘樹(shù)不一樣。對于A(yíng)SIC,就必須對時(shí)鐘網(wǎng)絡(luò )的設計、布線(xiàn)、時(shí)延計算進(jìn)行仔細的分析計算才行。
fpga相關(guān)文章:fpga是什么
評論