欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: FPGA掃盲之:初學(xué)建議 [打印本頁]

作者: 51黑fan    時間: 2016-1-30 04:41
標(biāo)題: FPGA掃盲之:初學(xué)建議
:作為一個菜鳥,想學(xué)習(xí)FPGA,希望高手給些建議......



語言:verilog或者VHDL
書籍:初學(xué)用夏宇聞的《verilog數(shù)字系統(tǒng)設(shè)計教程》就可以了,他寫的很像C,應(yīng)該好入門。但是我不太推薦長期看,等有了一點基礎(chǔ),馬上看張雅琦翻譯的《veilog HDL高級數(shù)字設(shè)計》和紅寶書《IC設(shè)計基礎(chǔ)》

數(shù)字電路:就一本書就夠了——康華光的《電子技術(shù)基礎(chǔ)(數(shù)字部分)》

知識積累:多上論壇和別人討論(因為沒有同學(xué)和同事可以討論)

開發(fā)工具:ISE或者quartus作為環(huán)境,因為可能會用到IP CORE。或者不用IP,用ultraedit寫代碼,再用modelsim仿真,debussy分析波形,synplify綜合,都可以。

動手實踐:買一塊spartan或者starstartx,用ise或者quartus自帶的cdc或者signaltap下載看波形就可以了。

至于要是設(shè)計asic。。。DC就算了。。。雖然很有用,但是沒有服務(wù)器的話,跑起來很痛苦。

P.S.寫語言時最好形成自己的風(fēng)格,網(wǎng)上有很多coding style可以參考。推薦每個信號用單獨always塊和三層FSM的寫法,不要被夏宇聞教壞了~~~~





:

現(xiàn)在公司基本都用verilog
找夏宇文翻譯的關(guān)于verilog方面的書
CPLD跟FPGA沒有本質(zhì)的區(qū)別,所以無所謂先開始學(xué)哪個



:

不用,其實兩者差別不是很大,編寫程序都是一樣的。語言大多是VHDL或者V-log語言。至于教材太多了,到網(wǎng)上去看,一般的書店賣的書都不是很專業(yè)。才開始可以學(xué)學(xué)使用xilinx公司的芯片。編譯器網(wǎng)上也有(主要是軟件破解的比較多)。



:

我建議你買一塊防真板,做一些簡單的開發(fā),練習(xí)編程,要想從事電子方面的工作,不僅僅要懂HDL和C語言,還要懂一些硬件電路知識,EDA軟等等,硬件電路你可以看下模擬電子與數(shù)字電子.





:

毫無疑問, CPLD/FPGA.DSP和MCU是未來數(shù)字電路系統(tǒng)的三塊基石。本文將對CPLD/FPGA技術(shù)做初步的介紹.

首先簡單地介紹EDA技術(shù)的特點。EDA(Electronic Design Automation)就是利用計算機(jī)作為工作平臺進(jìn)行電子自動化設(shè)計的一項技術(shù)。是電子技術(shù).微電子技術(shù)和計算機(jī)技術(shù)進(jìn)步的共同產(chǎn)物近十年迅速發(fā)展,涵蓋設(shè)計.電子仿真驗證.制造全過程的所有技術(shù)。如:系統(tǒng)設(shè)計與仿真.印刷電路板(PCB Print Cricuit Board)設(shè)計與校驗.集成電路版圖設(shè)計驗證和測試.數(shù)字邏輯電路設(shè)計.模擬電路設(shè)計.數(shù)模混合設(shè)計.嵌入式系統(tǒng)設(shè)計.軟硬件系統(tǒng)協(xié)同設(shè)計.系統(tǒng)芯片(SOC)設(shè)計.PLD.SOPC.ASSP.ASIC設(shè)計技術(shù)等。大致可以分為兩類:一種是基于PCB的電路;另一種是集成電路(IC,含PLD.ASIC)。實現(xiàn)PCB和IC電路的思想方法過程,就是構(gòu)成EDA的全部內(nèi)容。

因此現(xiàn)代電路設(shè)計方法已經(jīng)由傳統(tǒng)設(shè)計方法轉(zhuǎn)變?yōu)槿碌腅DA設(shè)計方法:

一般是自頂向下的設(shè)計流程,并且這種設(shè)計是利用EDA軟件完成的,主要步驟:系統(tǒng)設(shè)計與仿真——電路級設(shè)計與仿真——版圖級設(shè)計.驗證等。

這與過去傳統(tǒng)意義的電子設(shè)計大不相同。尤其表現(xiàn)在:傳統(tǒng)設(shè)計是自底向上的設(shè)計,合格產(chǎn)品的設(shè)計總要反復(fù)多次試驗,次數(shù)主要取決于經(jīng)驗而且必須制成成品才能進(jìn)行儀器測量。因此現(xiàn)代EDA縮減了設(shè)計成本,縮短了設(shè)計周期,更接近于常規(guī)思維方式,標(biāo)準(zhǔn)產(chǎn)品方便測試,對設(shè)計者經(jīng)驗要求低,保密性強(qiáng)集成度高。使大規(guī)模電子設(shè)計成為可能。它帶來了電子設(shè)計領(lǐng)域一場革命。限于篇幅,本文對EDA技術(shù)發(fā)展歷程不再多述。

CPLD/FPGA正是EDA技術(shù)前沿分支之一。CPLD(Complex Programmable Logic Device)是一種較為復(fù)雜的可編程邏輯器件;FPGA(Field Programmable Gate Arrary)是現(xiàn)場可編程邏輯門陣列。兩者基本功能相同,只是實現(xiàn)原理不同,在此可以忽略兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或CPLD/FPGA。

CPLD/FPGA是電子設(shè)計領(lǐng)域中最具活力和發(fā)展前途的一項技術(shù),那么它能做什么呢?CPLD/FPGA可以完成任何數(shù)字器件功能,設(shè)計者可以通過傳統(tǒng)原理圖輸入法(GDF)或硬件描述語言(VHDL,AHDL)設(shè)計一個數(shù)字系統(tǒng)通過軟件仿真我們可以事先驗證設(shè)計正確性,在PCB完成后還可以利用CPLD在線修改能力隨時修改設(shè)計而不必改動硬件電路。

如何使用呢?很簡單,只要有數(shù)字電路基礎(chǔ),會使用計算機(jī),一個實踐者很快會發(fā)現(xiàn)在PC機(jī).試驗箱和EDA軟件的環(huán)境下跟隨指導(dǎo)書就可以發(fā)揮自己的聰明才智進(jìn)行主動學(xué)習(xí)。而數(shù)字電路理論知識則能迅速得到直觀認(rèn)識和應(yīng)用。大致設(shè)計流程為:通過傳統(tǒng)原理圖輸入法(GDF)或硬件描述語言(VHDL,AHDL)設(shè)計一個數(shù)字系統(tǒng)——生成相應(yīng)的目標(biāo)文件程序,通過下載電纜將代碼下載到目標(biāo)芯片。

具體為:

1、電路設(shè)計與輸入

   電路設(shè)計與輸入是指通過某些規(guī)范的描述方式,將工程師電路構(gòu)思輸入給EDA工具。常用的設(shè)計方法有硬件描述語言(HDL)和原理圖設(shè)計輸入方法等。原理圖設(shè)計輸入法在早期應(yīng)用得比較廣泛,它根據(jù)設(shè)計要求,選用器件、繪制原理圖、完成輸入過程。這種方法的有點是直觀、便于理解、元器件庫資源豐富。但是在大型設(shè)計中,這種方法的可維護(hù)性較差,不利于模塊構(gòu)造與重用。更主要的缺點就是當(dāng)所選用芯片升級換代后,所有的原理圖都要做相應(yīng)的改動。目前進(jìn)行大型工程設(shè)計時,最常用的設(shè)計方法是HDL設(shè)計輸入法,其中影響最為廣泛的HDL語言是VHDL和Verilog HDL。他們的共同特點是利用由頂向下設(shè)計,利于模塊的劃分與復(fù)用,可移植性好,通用性好,設(shè)計不因芯片的工藝與結(jié)構(gòu)不同而變化,更利于向ASIC的移植。波形輸入和狀態(tài)機(jī)輸入方法是兩種常用的輔助設(shè)計輸入方法:使用波形輸入時,志耘愛繪制出激勵波形與輸出波形,EDA軟件就能自動地根據(jù)響應(yīng)關(guān)系進(jìn)行設(shè)計;使用狀態(tài)機(jī)輸入法時,設(shè)計者只需要畫出狀態(tài)轉(zhuǎn)移圖,EDA軟件就能生成相應(yīng)的HDL代碼或原理圖,使用十分方便。但是需要指出的是,波形輸入和狀態(tài)機(jī)輸入方法只能在某些特殊情況下緩解設(shè)計者的工作量,并不適合所有的設(shè)計。

2、功能仿真

   電路設(shè)計完成以后,要用專用的仿真工具對設(shè)計進(jìn)行功能仿真,驗證電路功能是否符合設(shè)計要求。功能仿真有時也稱為前仿真。通過仿真能及時發(fā)現(xiàn)設(shè)計中的錯誤,加快設(shè)計進(jìn)度,提高設(shè)計的可靠性。

3、綜合優(yōu)化

   綜合優(yōu)化(Synthesize)是指將HDL語言、原理圖等設(shè)計輸入翻譯成由與、或、非門,RAM,觸發(fā)器等基本邏輯單元組成的邏輯連接(網(wǎng)表),并根據(jù)目標(biāo)與要求(約束條件)優(yōu)化所生成的邏輯連接,輸出edf和edn等標(biāo)準(zhǔn)格式的網(wǎng)表文件,供FPGA/CPLD廠家的布局布線器進(jìn)行實現(xiàn)。

4、綜合后仿真

   綜合完成后需要檢查綜合結(jié)果是否與設(shè)計一致,做綜合后仿真。在仿真時,把綜合生成的標(biāo)準(zhǔn)延時文件反標(biāo)志到綜合仿真模型中去,可估計門延時帶來的影響。綜合后仿真雖然比功能仿真精確一些,但是只能估計門延時,不能估計線延時,仿真結(jié)果與布線后的實際情況還有一定的差距,并不十分準(zhǔn)確。這種仿真的主要目的在于檢查綜合器的綜合結(jié)果是否與設(shè)計輸入一致。目前主流綜合工具日益成熟,對于一般性的設(shè)計,如果設(shè)計者確信自己標(biāo)注明確,沒有綜合歧義發(fā)生,則可省略該步驟。但是如果在布局布線后仿真時發(fā)現(xiàn)有電路結(jié)構(gòu)與設(shè)計意圖不符的現(xiàn)象,則常常需要回溯到綜合后仿真以確認(rèn)是否時由于綜合歧義造成的問題。

5、實現(xiàn)與布局布線

   綜合結(jié)果的本質(zhì)是一些由與、或、非門,觸發(fā)器,RAM等基本邏輯單元組成的邏輯網(wǎng)表,它與芯片的實際的配置情況還有較大的差距。此時應(yīng)該使用 FPGA/CPLD廠商提供的軟件工具,根據(jù)所選芯片的型號將綜合輸出的網(wǎng)表適配到具體FPGA/CPLD器件上,這個過程就叫做實現(xiàn)過程。因為只有器件的開發(fā)商最了解器件的內(nèi)部結(jié)構(gòu),所以實現(xiàn)步驟必須選用器件開發(fā)商提供的工具。在實現(xiàn)過程中最主要的過程是布局布線(PAR)。所謂布局(Place),就是指將邏輯網(wǎng)表中的硬件原語或者底層單元合理地適配到FPGA內(nèi)部的固有硬件結(jié)構(gòu)上,布局的優(yōu)劣對設(shè)計的最終結(jié)果(在速度和面積兩個方面)影響很大。所謂布線(Route),是指根據(jù)布局的拓?fù)浣Y(jié)構(gòu),利用FPGA內(nèi)部的各種連線資源,合理正確連接各個元件的過程。FPGA的結(jié)構(gòu)相對復(fù)雜,為了獲得更好的實現(xiàn)結(jié)果,特別是保證能夠滿足設(shè)計的時序條件,一般采用時序驅(qū)動的引擎進(jìn)行布局布線,所以對于不同的設(shè)計輸入,特別是不同的時序約束,獲得的布局布線結(jié)果一般有較大的差異。CPLD結(jié)構(gòu)相對簡單得多,其資源有限而且布線資源一般為交叉連接矩陣,故CPLD的布局布線過程相對簡單明朗的多,一般稱為適配過程。一般情況下,用戶可以通過設(shè)置參數(shù)指定布局布線的優(yōu)化準(zhǔn)則,總的來說優(yōu)化目標(biāo)主要有兩個方面,面積和速度。一般根據(jù)設(shè)計的主要矛盾,選擇面積或者速度或者是兩者平衡等優(yōu)化目標(biāo),但是當(dāng)兩者沖突時,一般滿足時序約束要求更重要一些,此時選擇速度或時序優(yōu)化目標(biāo)更佳。

6、時序仿真與驗證

   將布局布線的延時信息反標(biāo)注到設(shè)計網(wǎng)表中,所進(jìn)行的仿真就叫時序仿真或布局布線后仿真,也叫后仿真。該仿真的仿真延時文件包含的延時信息最全,不僅包含了門延時,還包含了實際布線延時,所以布局布線后仿真最準(zhǔn)確,能夠較好的反映芯片的實際工作情況。一般來說,布線后仿真步驟必須進(jìn)行,通過布局布線后仿真能檢查設(shè)計時序與FPGA實際運行情況是否一致,確保設(shè)計的可靠性和穩(wěn)定性。

<3個不同階段的仿真小結(jié)>:

--功能仿真主要目的在于驗證語言設(shè)計的電路結(jié)構(gòu)和功能是否和設(shè)計意圖相符。

--綜合后仿真主要目的在于驗證綜合后電路結(jié)構(gòu)是否與設(shè)計意圖相符,是否存在歧義綜合結(jié)果。

--布局布線后仿真主要目的是驗證是否存在時序違規(guī)。

7、板級仿真與驗證

   有些高速設(shè)計情況下還需要使用第三方的板級驗證工具進(jìn)行仿真與驗證。這些工具通過對設(shè)計的IBIS、HSPICE等模型的仿真,能較好地分析高速設(shè)計的信號完整性、電磁干擾等電路特性。

8、調(diào)試與加載配置

   設(shè)計開發(fā)的最后步驟就是在線調(diào)試或者將生成的配置文件寫入芯片中進(jìn)行測試。示波器和邏輯分析儀是邏輯設(shè)計的主要調(diào)試工具。傳統(tǒng)的邏輯功能板級驗證手段是用邏輯分析儀分析信號,設(shè)計時要求FPGA和PCB設(shè)計人員保留一定數(shù)量FPGA管腳作為測試管腳,編寫FPGA代碼時將需要觀測的信號作為模塊的輸出信號,在綜合實現(xiàn)時在把這些輸出信號鎖定到測試管腳上,然后連接邏輯分析儀的探頭到這些測試管腳,設(shè)定觸發(fā)條件,進(jìn)行觀測。

任何仿真或驗證步驟出現(xiàn)問題,就需要根據(jù)錯誤定位返回到相應(yīng)的步驟更改或者重新設(shè)計



在明確了CPLD/FPGA的設(shè)計流程后,簡單介紹一下FPGA的優(yōu)勢:自從FPGA問世以來,就以強(qiáng)大的靈活性著稱。FPGA最大的特點就是可以反復(fù)的編程.擦寫.使用或者在外圍電路不變的情況下用不同的硬件電路實現(xiàn)各異的功能,并且,隨著技術(shù)的進(jìn)步。功耗也不斷下降,速度逐漸提高,成本不斷降低。此外CPLD/FPGA又很強(qiáng)的融合力,新的應(yīng)用領(lǐng)域顯示,與DSP有一定的互補(bǔ)能力,它可以非常自然地實現(xiàn)大部分的數(shù)字信號處理的算法,可以根據(jù)任務(wù)要求分配資源。更大膽的講FPGA和DSP處理器的平臺將可能產(chǎn)生。由于CPLD/FPGA的種種優(yōu)點,它非常適合原型產(chǎn)品的開發(fā)。





:

書籍,   <基于FPGA入門>   非常詳細(xì)的書






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1