FPGA工程師手記:FPGA系統設計黃金法則
不管你是一名邏輯設計師、硬件工程師或系統工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復雜系統中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號完整性和其他的一些關(guān)鍵設計問(wèn)題。
本文引用地址:http://dyxdggzs.com/article/189562.htm不過(guò),你不必獨自面對這些挑戰,因為在當前業(yè)內領(lǐng)先的FPGA公司里工作的應用工程師每天都會(huì )面對這些問(wèn)題,而且他們已經(jīng)提出了一些將令你的設計工作變得更輕松的設計指導原則和解決方案。掌握FPGA設計的三大黃金法則,讓你設計更輕松。
一.面積與速度的平衡互換原則
這里的面積指的是FPGA的芯片資源,包括邏輯資源和I/O資源等;這里的速度指的是FPGA工作的最高頻率(和DSP或者ARM不同,FPGA設計的工作頻率是不固定的,而是和設計本身的延遲緊密相連)。 在實(shí)際設計中,使用最小的面積設計出最高的速度是每一個(gè)開(kāi)發(fā)者追求的目標,但是“魚(yú)和熊掌不可兼得”,取舍之間展示了一個(gè)開(kāi)發(fā)者的智慧。
1.速度換面積
速度優(yōu)勢可以換取面積的節約。面積越小,就意味著(zhù)可以用更低的成本來(lái)實(shí)現產(chǎn)品的功能。速度換面積的原則在一些較復雜的算法設計中常常會(huì )用到。在這些算法設計中,流水線(xiàn)設計常常是必須用到的技術(shù)。在流水線(xiàn)的設計中,這些被重復使用但是使用次數不同的模塊將會(huì )占用大量的FPGA資源。對FPGA的設計技術(shù)進(jìn)行改造,將被重復使用的算法模塊提煉出最小的復用單元,并利用這個(gè)最小的高速代替原設計中被重復使用但次數不同的模塊。當然,在改造的過(guò)程中必然會(huì )增加一些其他的資源來(lái)實(shí)現這個(gè)代替的過(guò)程。但是只要速度具有優(yōu)勢,那么增加的這部分邏輯依然能夠實(shí)現降低面積提高速度的目的。
可以看到,速度換面積的關(guān)鍵是高速基本單元的復用。
2.面積換速度
在這種方法中面積的復制可以換取速度的提高。支持的速度越高,就意味著(zhù)可以實(shí)現更高的產(chǎn)品性能。一些注重產(chǎn)品性能的應用領(lǐng)域可以采用并行處理技術(shù),實(shí)現面積換速度。
二.硬件可實(shí)現原則
FPGA設計通常會(huì )使用HDL語(yǔ)言,比如Verilog HDL或者VHDL。當采用HDL語(yǔ)言來(lái)描述一個(gè)硬件電路功能的時(shí)候,一定要確保代碼描述的電路是硬件可實(shí)現的。
Verilog HDL語(yǔ)言的語(yǔ)法與C語(yǔ)言很相似,但是它們之間有著(zhù)本質(zhì)的區別。C語(yǔ)言是基于過(guò)程的高級語(yǔ)言,編譯后可以在CPU上運行。而Verilog HDL語(yǔ)言描述的本身就是硬件結構,編譯后是硬件電路。因此,有些語(yǔ)句在C語(yǔ)言的環(huán)境中應用是沒(méi)有問(wèn)題的,但是在HDL語(yǔ)言環(huán)境下就會(huì )導致結果不正確或者不理想。如:
for(i=0;i16;i++)
DoSomething();
在C語(yǔ)言中運行沒(méi)有任何問(wèn)題,但是在Verilog HDL的環(huán)境下編譯就會(huì )導致綜合后的資源嚴重浪費。
三.同步設計原則
同步電路和異步電路是FPGA設計的兩種基本電路結構形式。
異步電路的最大缺點(diǎn)是會(huì )產(chǎn)生毛刺。同步設計的核心電路是由各種觸發(fā)器構成的。這類(lèi)電路的任何輸出都是在某個(gè)時(shí)鐘的邊沿驅動(dòng)觸發(fā)器產(chǎn)生的。所以,同步設計可以很好地避免毛刺的產(chǎn)生。
評論