導航:首頁 > 源碼編譯 > fpga演算法書籍

fpga演算法書籍

發布時間:2023-08-20 08:28:18

㈠ FPGA現在學起來怎麼樣難不需要了解哪些基礎課程

FPGA學習重點

1. 看代碼,建模型

只有在腦海中建立了一個個邏運祥模輯模型,理解FPGA內部邏輯結構實現的基礎,才能明白為什麼寫Verilog和寫C整體思路是不一樣的,才能理解順序執行語言和並行執行語言的設計方法上的差異。在看到一段簡單程序的時候應該想到是什麼樣的功能電路。2. 用數學思維來簡化設計邏輯

學習FPGA不僅邏輯思維很重要,好的數學思維也能讓你的設計化繁為簡,所以啊,那些看見高數就頭疼的童鞋需要重視一下這門課哦。舉個簡單的例子,比如有兩個32bit的數據X[31:0]與Y[31:0]相乘。當然,無論Altera還是Xilinx都有現成的乘法器IP核可以調用,這也是最簡單的方法,但是兩個32bit的乘法器將耗費大量的資源。那麼有沒有節省資源,又不太復雜的方式來實現呢?我們可以稍做修改:將X[31:0]拆成兩部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],則X1左移16位後與X2相加可以得到X;同樣將Y[31:0]拆成兩部分宴者Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],則Y1左移16位後與Y2相加可以得到Y,則X與Y的相乘可以轉化為X1和X2 分別與Y1和Y2相乘,這樣一個32bit*32bit的乘法運算轉換成了四個16bit*16bit的乘法運算和三個32bit的加法運算。轉換後的佔用資源將會減少很多,有興趣的童鞋,不妨綜合一下看看,看看兩者差多少。3. 時鍾與觸發器的關系

「時鍾是時序電路的控制者」這句話太經典了,可以說是FPGA設計的聖言。FPGA的設計主要是以時序電路為主,因為組合邏輯電路再怎麼復雜也變不出太多花樣,理解起來也不沒太多困難。但是時序電路就不同了,它的所有動作都是在時鍾一拍一拍的節奏下轉變觸發,可以說時鍾就是整個電路的控制者,控制不好,電路功能就會混亂。打個比方,時鍾就相當於人體的心臟,它每一次的跳動就是觸發一個 CLK,向身體的各個器官供血,維持著機體的正常運作,每一個器官體統正常工作少不了組織細胞的構成,那麼觸發器就可以比作基本單元組織細胞。

時序邏輯電路的時鍾是控制時序邏輯電路旁緩狀態轉換的「發動機」,沒有它時序邏輯電路就不能正常工作。因為時序邏輯電路主要是利用觸發器存儲電路的狀態,而觸發器狀態變換需要時鍾的上升或下降沿,由此可見時鍾在時序電路中的核心作用。最後簡單說一下體會吧,歸結起來就是多實踐、多思考、多問。實踐出真知,看100遍別人的方案不如自己去實踐一下。實踐的動力一方面來自興趣,一方面來自壓力。有需求會容易形成壓力,也就是說最好能在實際的項目開發中鍛煉,而不是為了學習而學習。為什麼你會覺得FPGA難學?

1. 不熟悉FPGA的內部結構

FPGA為什麼是可以編程的?恐怕很多初學者不知道,他們也不想知道。因為他們覺得這是無關緊要的。他們潛意識的認為可編程嘛,肯定就是像寫軟體一樣啦。軟體編程的思想根深蒂固,看到Verilog或者VHDL就像看到C語言或者其它軟體編程語言一樣。一條條的讀,一條條的分析。

拒絕去了解為什麼FPGA是可以編程的,不去了解FPGA的內部結構,要想學會FPGA 恐怕是天方夜譚。那麼FPGA為什麼是可以「編程」的呢?首先來了解一下什麼叫「程」。其實 「程」只不過是一堆具有一定含義的01編碼而已。編程,其實就是編寫這些01編碼。只不過我們現在有了很多開發工具運算或者是其它操作。所以軟體是一條一條的,通常都不是直接編寫這些01編碼,而是以高級語言的形式來編寫,最後由開發工具轉換為這種01編碼而已。對於軟體編程而言,處理器會有一個專門的解碼電路逐條把這些01編碼翻譯為各種控制信號,然後控制其內部的電路完成一個個的讀,因為軟體的操作是一步一步完成的。

而FPGA的可編程,本質也是依靠這些01編碼實現其功能的改變,但不同的是FPGA之所以可以完成不同的功能,不是依靠像軟體那樣將01編碼翻譯出來再去控制一個運算電路,FPGA裡面沒有這些東西。FPGA內部主要三塊:可編程的邏輯單元、可編程的連線和可編程的IO模塊。

可編程的邏輯單元

其基本結構某種存儲器(SRAM、 FLASH等)製成的4輸入或6輸入1輸出的「真值表」加上一個D觸發器構成。任何一個4輸入1輸出組合邏輯電路,都有一張對應的「真值表」,同樣的如果用這么一個存儲器製成的4輸入1輸出的「真值表」,只需要修改其「真值表」內部值就可以等效出任意4輸入1輸出的組合邏輯,這些「真值表」內部值就是那些01編碼。

如果要實現時序邏輯電路怎麼辦?任何的時序邏輯都可以轉換為組合邏輯+D觸發器來完成。但這畢竟只實現了4輸入1輸出的邏輯電路而已,通常邏輯電路的規模那是相當的大。可編程連線

那怎麼辦呢?這個時候就需要用到可編程連線了。在這些連線上有很多用存儲器控制的鏈接點,通過改寫對應存儲器的值就可以確定哪些線是連上的而哪些線是斷開的。這就可以把很多可編程邏輯單元組合起來形成大型的邏輯電路。

可編程的IO

任何晶元都必然有輸入引腳和輸出引腳。有可編程的IO可以任意的定義某個非專用引腳(FPGA中有專門的非用戶可使用的測試、下載用引腳)為輸入還是輸出,還可以對IO的電平標准進行設置。

總歸一句話,FPGA之所以可編程是因為可以通過特殊的01代碼製作成一張張 「真值表」,並將這些「真值表」組合起來以實現大規模的邏輯功能。不了解FPGA內部結構,就不能明白最終代碼如何變到FPGA裡面去的,也就無法深入的了解如何能夠充分運用FPGA。現在的FPGA,不單單是有前面講的那三塊,還有很多專用的硬體功能單元,如何利用好這些單元實現復雜的邏輯電路設計,是從菜鳥邁向高手的路上必須要克服的障礙。而這一切,還是必須先從了解FPGA內部邏輯及其工作原理做起。

2. 錯誤理解HDL語言,怎麼看都看不出硬體結構

HDL語言的英語全稱是:Hardware Deion Language,注意這個單詞Deion,而不是Design。老外為什麼要用Deion這個詞而不是Design呢?因為HDL確實不是用用來設計硬體的,而僅僅是用來描述硬體的。

描述這個詞精確地反映了HDL語言的本質,HDL語言不過是已知硬體電路的文本表現形式而已,只是將以後的電路用文本的形式描述出來而已。而在編寫語言之前,硬體電路應該已經被設計出來了。語言只不過是將這種設計轉化為文字表達形式而已。

硬體設計也是有不同的抽象層次,每一個層次都需要設計。最高的抽象層次為演算法級、然後依次是體系結構級、寄存器傳輸級、門級、物理版圖級。

使用HDL的好處在於我們已經設計好了一個寄存器傳輸級的電路,那麼用HDL描述以後轉化為文本的形式,剩下的向更低層次的轉換就可以讓EDA工具去做了,這就大大的降低了工作量。這就是可綜合的概念,也就是說在對這一抽象層次上硬體單元進行描述可以被EDA工具理解並轉化為底層的門級電路或其他結構的電路。在FPGA設計中,就是在將這以抽象層級的意見描述成HDL語言,就可以通過FPGA開發軟體轉化為上一點中所述的FPGA內部邏輯功能實現形式。HDL也可以描述更高的抽象層級如演算法級或者是體系結構級,但目前受限於EDA軟體的發展,EDA軟體還無法理解這么高的抽象層次,所以HDL描述這樣抽象層級是無法被轉化為較低的抽象層級的,這也就是所謂的不可綜合。

所以在閱讀或編寫HDL語言,尤其是可綜合的HDL,不應該看到的是語言本身,而是要看到語言背後所對應的硬體電路結構。3. FPGA本身不算什麼,一切皆在FPGA之外

FPGA是給誰用的?很多學校是為給學微電子專業或者集成電路設計專業的學生用的,其實這不過是很多學校受資金限制,買不起專業的集成電路設計工具而用FPGA工具替代而已。其實FPGA是給設計電子系統的工程師使用的。這些工程師通常是使用已有的晶元搭配在一起完成一個電子設備,如基站、機頂盒、視頻監控設備等。當現有晶元無法滿足系統的需求時,就需要用FPGA來快速的定義一個能用的晶元。前面說了,FPGA裡面無法就是一些「真值表」、觸發器、各種連線以及一些硬體資源,電子系統工程師使用FPGA進行設計時無非就是考慮如何將這些以後資源組合起來實現一定的邏輯功能而已,而不必像IC設計工程師那樣一直要關注到最後晶元是不是能夠被製造出來。

本質上和利用現有晶元組合成不同的電子系統沒有區別,只是需要關注更底層的資源而已。要想把FPGA用起來還是簡單的,因為無非就是那些資源,在理解了前面兩點再搞個實驗板,跑跑實驗,做點簡單的東西是可以的。而真正要把FPGA用好,那光懂點FPGA知識就遠遠不夠了。因為最終要讓FPGA裡面的資源如何組合,實現何種功能才能滿足系統的需要,那就需要懂得更多更廣泛的知識。4. 數字邏輯知識是根本

無論是FPGA的哪個方向,都離不開數字邏輯知識的支撐。FPGA說白了是一種實現數字邏輯的方式而已。如果連最基本的數字邏輯的知識都有問題,學習FPGA的願望只是空中樓閣而已。數字邏輯是任何電子電氣類專業的專業基礎知識,也是必須要學好的一門課。

如果不能將數字邏輯知識爛熟於心,養成良好的設計習慣,學FPGA到最後仍然是霧里看花水中望月,始終是一場空的。以上四條只是我目前總結菜鳥們在學習FPGA時所最容易跑偏的地方,FPGA的學習其實就像學習圍棋一樣,學會如何在棋盤上落子很容易,成為一位高手卻是難上加難。要真成為李昌鎬那樣的神一般的選手,除了靠刻苦專研,恐怕還確實得要一點天賦。薦讀

1. 入門首先要掌握HDL(HDL=verilog+VHDL)

第一句話是:還沒學數電的先學數電。然後你可以選擇verilog或者VHDL,有C語言基礎的,建議選擇VHDL。因為verilog太像C了,很容易混淆,最後你會發現,你花了大量時間去區分這兩種語言,而不是在學習如何使用它。當然,你思維能轉得過來,也可以選verilog,畢竟在國內verilog用得比較多。接下來,首先找本實例抄代碼。抄代碼的意義在於熟悉語法規則和編譯器(這里的編譯器是硅編譯器又叫綜合器,常用的編譯器有:Quartus、ISE、Vivado、Design Compiler 、Synopsys的VCS、iverilog、Lattice的Diamond、Microsemi/Actel的Libero、Synplify pro),然後再模仿著寫,最後不看書也能寫出來。編譯完代碼,就打開RTL圖,看一下綜合出來是什麼樣的電路。HDL是硬體描述語言,突出硬體這一特點,所以要用數電的思維去思考HDL,而不是用C語言或者其它高級語言,如果不能理解這句話的,可以看《什麼是硬體以及什麼是軟體》。在這一階段,推薦的教材是《Verilog傳奇》、《Verilog HDL高級數字設計》或者是《用於邏輯綜合的VHDL》。不看書也能寫出個三段式狀態機就可以進入下一階段了。此外,你手上必須准備Verilog或者VHDL的官方文檔,《verilog_IEEE官方標准手冊-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些語法問題的時候能查一下。2. 獨立完成中小規模的數字電路設計

現在,你可以設計一些數字電路了,像交通燈、電子琴、DDS等等,推薦的教材是夏老《Verilog 數字系統設計教程》(第三版)。在這一階段,你要做到的是:給你一個指標要求或者時序圖,你能用HDL設計電路去實現它。這里你需要一塊開發板,可以選Altera的cyclone IV系列,或者Xilinx的Spantan 6。

還沒掌握HDL之前千萬不要買開發板,因為你買回來也沒用。這里你沒必要每次編譯通過就下載代碼,咱們用modelsim模擬(此外還有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等模擬工具),如果模擬都不能通過那就不用下載了,肯定不行的。在這里先掌握簡單的testbench就可以了。推薦的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。3. 掌握設計方法和設計原則

你可能發現你綜合出來的電路盡管沒錯,但有很多警告。這個時候,你得學會同步設計原則、優化電路,是速度優先還是面積優先,時鍾樹應該怎樣設計,怎樣同步兩個異頻時鍾等等。

推薦的教材是《FPGA權威指南》、《IP核芯志-數字邏輯設計思想》、《Altera FPGA/CPLD設計》第二版的基礎篇和高級篇兩本。學會加快編譯速度(增量式編譯、LogicLock),靜態時序分析(timequest),嵌入式邏輯分析儀(signaltap)就算是通關了。如果有不懂的地方可以暫時跳過,因為這部分還需要足量的實踐,才能有較深刻的理解。4. 學會提高開發效率

因為Quartus和ISE的編輯器功能太弱,影響了開發效率。所以建議使用Sublime text編輯器中代碼片段的功能,以減少重復性勞動。Modelsim也是常用的模擬工具,學會TCL/TK以編寫適合自己的DO文件,使得模擬變得自動化,推薦的教材是《TCL/TK入門經典》。

你可能會手動備份代碼,但是專業人士都是用版本控制器的,所以,為了提高工作效率,必須掌握GIT。文件比較器Beyond Compare也是個比較常用的工具。此外,你也可以使用System Verilog來替代testbench,這樣效率會更高一些。如果你是做IC驗證的,就必須掌握System Verilog和驗證方法學(UVM)。推薦的教材是《Writing Testbenches using SystemVerilog》、《The UVM Primer》、《System Verilog1800-2012語法手冊》。掌握了TCL/TK之後,可以學習虛擬Jtag(ISE也有類似的工具)製作屬於自己的調試工具,此外,有時間的話,最好再學個python。腳本,意味著一勞永逸。5. 增強理論基礎

這個時候,你已經會使用FPGA了,但是還有很多事情做不了(比如,FIR濾波器、PID演算法、OFDM等),因為理論沒學好。我大概地分幾個方向供大家參考,後面跟的是要掌握的理論課。信號處理 —— 信號與系統、數字信號處理、數字圖像處理、現代數字信號處理、盲信號處理、自適應濾波器原理、雷達信號處理

介面應用 —— 如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G乙太網介面)、SATA、光纖、DisplayPort

無線通信 —— 信號與系統、數字信號處理、通信原理、移動通信基礎、隨機過程、資訊理論與編碼

CPU設計 —— 計算機組成原理、單片機、計算機體系結構、編譯原理

儀器儀表 —— 模擬電子技術、高頻電子線路、電子測量技術、智能儀器原理及應用

控制系統 —— 自動控制原理、現代控制理論、過程式控制制工程、模糊控制器理論與應用

壓縮、編碼、加密 —— 數論、抽象代數、現代編碼技術、資訊理論與編碼、數據壓縮導論、應用密碼學、音頻信息處理技術、數字視頻編碼技術原理現在你發現,原來FPGA會涉及到那麼多知識,你可以選一個感興趣的方向,但是工作中很有可能用到其中幾個方向的知識,所以理論還是學得越多越好。如果你要更上一層,數學和英語是不可避免的。6. 學會使用MATLAB模擬

設計FPGA演算法的時候,多多少少都會用到MATLAB,比如CRC的系數矩陣、數字濾波器系數、各種表格和文本處理等。此外,MATLAB還能用於調試HDL(用MATLAB的計算結果跟用HDL算出來的一步步對照,可以知道哪裡出問題)。推薦的教材是《MATLAB寶典》和杜勇的《數字濾波器的MATLAB與FPGA實現》。7. 圖像處理

Photoshop

花一、兩周的時間學習PS,對圖像處理有個大概的了解,知道各種圖片格式、直方圖、色相、通道、濾鏡、拼接等基本概念,並能使用它。這部分是0基礎,目的讓大家對圖像處理有個感性的認識,而不是一上來就各種各樣的公式推導。推薦《Photoshop CS6完全自學教程》。基於MATLAB或OpenCV的圖像處理

有C/C++基礎的可以學習OpenCV,否則的話,建議學MATLAB。這個階段下,只要學會簡單的調用函數即可,暫時不用深究實現的細節。推薦《數字圖像處理matlab版》、《學習OpenCV》。圖像處理的基礎理論

這部分的理論是需要高數、復變、線性代數、信號與系統、數字信號處理等基礎,基礎不好的話,建議先補補基礎再來。看不懂的理論也可以暫時先放下,或許學到後面就自然而然地開竅了。推薦《數字圖像處理》。基於FPGA的圖像處理

把前面學到的理論運用到FPGA上面,如果這時你有前面第七個階段的水平,你將輕松地獨立完成圖像演算法設計(圖像處理是離不開介面的,上面第五個階段有講)。推薦《基於FPGA的嵌入式圖像處理系統設計》、《基於FPGA的數字圖像處理原理及應用》。進一步鑽研數學。要在演算法上更上一層,必然需要更多的數學,所以這里建議學習實分析、泛涵分析、小波分析等。

㈡ FPGA如何入門,看了Xilinx開發教程還是覺得很吃力

給你一條思路。首先FPGA的特點是易上手,不可能精通。很多搞了十幾年的FPGA工程師還不是遇到項目就卡殼。我見過一個華為工作了七年的做FPGA的,項目搞不出來辭職的(現在是我的頂頭上司),所以想搞FPGA還得沉得住心,吃得了苦。然後自學就剛開始學語法,學個兩周足以,語法實在太簡單了。然後開始買開發板,跟著常式跑程序,這個階段至少掌握整個FPGA開發流程和熟悉軟體,尤其是在線調試,建議VIVADO,因為這玩意還是有點復雜的,工作中要是讓你調介面你連這軟體怎麼抓信號都不會那可就尷尬了。至於SOC這些就不要學了,學了也沒用,工作中基本上用不到。然後軟體熟悉的差不多就開始自己寫代碼,這個階段最主要是注意形成自己的代碼風格,多看代碼多寫代碼多模擬,要是有實際項目的代碼就更好了,學習人家高手的代碼風格(建議別用開發板的代碼學習,寫的太搓了),然後多搜一些非同步設計的規范等等資料,等你知道給個你幾個時鍾你該用哪個時鍾寫哪個代碼的時候開始玩一些實際項目的東西,這個時候開始有選擇了,一般FPGA就是兩個方向-介面與演算法。這個階段出去找工作吧,剩下的都是工作中才會理解的東西。演算法門檻高,我就寫過中頻採集板的代碼,其他的也不懂,介面的話開始按照人家招聘公司的要求學習,一般要求你要懂PCIE,DDR這些高速介面,高速介面無非是IP核例化和控制,看起來難實則也難(不過是工作中難,要是學習這玩意是啥的話還是不那麼難的)。FPGA這玩意最忌諱的是手低眼高,也是很多學FPGA最容易犯的錯,覺得這玩意就那麼一回事。剩下的路就該你自己走了,FPGA是一個相對比較偏的行業,網上資源不太好搜集,信息收集也是一個需要學會的,但一般都是從人家賽家的官網下載的,所以英語底子得扎實。至於數電就不用再看了,本科基礎足夠了,心中有電路可不是指的是那種觸發器堆的電路,而是指的是數據流的傳輸與時鍾布局的大局觀以及整個項目的大局觀,所以看數電是沒用滴。不過對於信號處理的有些基礎知識,至少要知道啥是奈奎斯特采樣,啥是中頻采樣,啥是FIR,FFT,DDC,UDC。

㈢ FPGA/CPLD應用設計200例的目錄

上冊
第1篇FPGA/CPLD典型應用設計實例
1.1FFT(快速傅里葉變換)的FPGA設計與實現
1.2數字式存儲示波器
1.3汽車尾燈控制電路設計
1.4數字鍾電路設計
1.5數字調制(FSK)信號發生器
1.6電子數字鬧鍾
1.7函數發生器設計
1.8偽隨機序列發生器
1.9多功能點陣牌電路設計
1.10光通信PDH的標准偽隨機圖案發生器設計
1.11數字秒錶
1.12電子密碼鎖
1.13數字電壓表
1.14自動交通控制系統
1.15交通信號燈控制器
1.16交通控制燈邏輯電路系統設計
1.17十字路口交通管理信號燈系統設計
1.18交通燈控製程序設計
1.19交通燈電路設計
1.20無線通信中的全數字調制器設計
1.21無線通信中的全數字解調器設計
1.22採用VHDL語言設計的數字頻率計
1.23數字顯示頻率計
1.24簡易數字頻率計設計
1.254位數字頻率計
1.26採用VerilogHDL語言設計的頻率計
1.27簡易頻率計電路設計
1.28簡易頻率計設計
1.29電子數字鍾
1.30採用VerilogHDL語言設計的電子數字鍾
1.31採用VHDL語言設計的電子數字鍾
1.32電子時鍾電路設計
1.33計時器
1.34波形發生器電路設計
1.35LED數碼管動態顯示設計
1.36流水燈電路設計
1.37直流步進電機控制電路設計
1.38ADC電壓測量電路設計
1.39簡易電子鍾設計
1.40數字搶答器
1.41序列檢測器
1.42UART通用非同步串列口設計
1.43簡易周期信號測試儀
1.44序列信號發生器
1.45通信、雷達和遙測用序列檢測器的設計
1.46數字密碼鎖
1.47偽隨機序列信號發生器設計
1.48FIFO存儲器的VHDL描述
1.49採用VerilogHDL語言設計的UART通用非同步收發器.
1.50倍頻電路
1.51雙向數據轉換器
1.52鍵盤電路
1.53數碼LED顯示器
1.54多位加法器電路
1.556位數碼管動態掃描及解碼電路
1.56非2的冪次分頻電路
1.57非整數分頻電路
1.58常用電路的VHDL描述
1.59同步一百進制計數器的設計
1.60門電路設計
1.61時序電路設計
1.62組合邏輯電路設計
1.63頻率合成技術——基於FPGA的直接數字合成器(DDS)設計
1.64串列通信MAX232介面電路設計
1.652的冪次分頻電路
1.66環形計數器與扭環形計數器
1.678位可逆計數器和三角波發生器
1.68並/串轉換器
1.694選1數據選擇器
1.704位二進制數/8421BCD碼
1.71移位寄存器設計
1.72三進制計數器設計
1.73移位型控制器的設計與實現
1.74存儲器介面電路設計
1.754位加法器設計
1.76乘法器設計
1.77解碼器設計
1.78可變模計數器設計
1.79整數增益放大器設計與測試
1.80濾波器的設計與測試
1.81比較器的設計與測試
1.82帶阻有源濾波器設計
1.83線性反饋移位寄存器LFSR的FPGA設計與實現
1.84線性分析、循環碼編碼解碼器的FPGA設計與實現
1.85數據傳輸與I/O介面標准
1.86非同步收發器
1.87有限脈沖響應(FIR)數字濾波器的FPGA設計與實現
1.88逐次逼近型ADC
1.89乘法器的FPGA設計與實現
1.90匯流排仲裁電路的設計
1.91ALU(算術邏輯部件)設計
1.92脈沖分配器設計
1.93二進制碼/格雷碼的轉換
1.94直接序列擴頻通信系統設計
1.95並/串轉換模塊設計
1.96移位相加模塊設計
1.97時延環節模塊設計
1.98多波形發生器設計
1.99三位乘法器設計
1.100小信號測量系統
1.101單片電路設計
1.102簡易數字鎖
1.103交通燈控制器
1.104閃爍燈和流水燈設計與模擬
1.1053DES演算法的FPGA實現及其在3DES-PCI安全卡中的應用
1.106邊界掃描測試
1.107交通信號燈
1.108交通燈監視電路設計
1.109漢字顯示
1.110漢字顯示電路設計
1.111洗衣機控制電路設計
1.112籃球30s可控計時器設計
1.113悅耳的音響設計
1.114樂曲演奏電路設計
1.115多音階電子琴電路設計
1.116《友誼地久天長》樂曲演奏電路設計
1.117軟體無線電內插濾波器設計
1.118量程自動轉換的數字式頻率計
1.119游戲電路設計
1.120全自動電梯控制電路
1.1218位二進制乘法電路
1.122自動售郵票機
參考文獻
下冊
第2篇FPGA/CPLD產品設計、開發技巧與秘訣
2.1如何根據項目選擇器件
2.2可編程器件的選擇原則
2.3確定初步方案的方法與技巧
2.4基於可編程邏輯器件的數字系統的設計流程
2.5掌握常用FPGA/CPLD
2.6EDA技術的基本設計方法
2.7數字系統設計中的低功耗設計方法
2.8動態可編程重構技術
2.9多級邏輯的設計技巧
2.10VerilogHDL設計方法與技巧
2.11FPGA設計的穩定性探討
2.12同步電路設計技巧
2.13圖形設計法的實用技術
2.14狀態機設計技巧
2.15存儲器的VHDL實現方法與技巧
2.16存儲器設計典型實例
2.17隻讀存儲器
2.18比較器
2.19多路選擇器
2.20三態匯流排
2.21m序列的產生和性質
2.22對具體某一信號的連續存儲
2.23典型的時序邏輯電路分析與描述
2.24用VerilogHDL的時序邏輯電路設計
2.25時序邏輯電路的設計方法與技巧
2.26FPGA/CPLD的設計和優化
2.27CPLD典型器件ispPAC20的擴展應用技巧
2.28CPLD典型器件ispPAC的基本應用技巧
2.29VerilogHDL設計組合邏輯電路技巧
2.30VHDL設計組合邏輯電路技巧
2.31LED七段解碼器的分析與設計
2.32電路的模擬技巧
2.33宏器件及其調用
2.34ispPAC的增益調整方法
2.35數字系統的描述方法
2.36FPGA系統設計與調試技巧
2.37典型的下載/配置方式
2.38Xilinx器件的下載
2.39ByteBlaster並口下載電纜
2.40單個FLEX系列器件的PS配置(下載電纜連接與下載操作)
2.41多個FLEX器件的PS配置(下載電路連接與下載操作)
2.42單個MAX器件的JTAG方式編程(POF文件連接與編程)
2.43單個FLEX器件的JTAG方式配置(SOF文件連接與編程)
2.44多個MAX/FLEX器件的JTAG方式編程/配置(連接與編程)
2.45主動串列與被動串列配置模式
2.46門禁系統設計技巧
2.47兩種實際應用的計數器電路設計
2.48常用觸發器及其應用設計技巧
2.49加法器設計
2.50ispPAC的介面電路設計
2.51編程介面和編程--ISP方式和JTAG方式
2.52利用VerilogHDL設計狀態機的技巧
2.53系統級層次式設計
2.54邊界掃描測試技術
2.55在系統下載電纜與評估板
2.56用CPLD和單片機設計電子系統
2.57怎樣優化程序
2.58怎樣才能避免潛在的危險
2.59毛刺的產生及其消除技巧
2.60計數器設計與FPGA資源
2.61組合邏輯電路的競爭冒險及其消除技巧
2.62選擇器設計和FPGA資源
2.63基於FPGA/CPLD應用設計的23點經驗總結
第3篇FPGA/CPLD常用工具及軟體特性
3.1常用的FPGA開發工具
3.2常用EDA設計工具
3.3FPGA/CPLD數字邏輯實驗平台
3.4軟體資源
3.5典型常用的VerilogHDL語言(應用設計舉例)
3.6VerilogHDL的一般結構
3.719種常用電路的VerilogHDL描述
3.8典型常用的VHDL語言(應用設計舉例)
3.910種常用電路的VHDL描述.
第4篇FPGA/CPLD常用晶元結構及特點
4.1FPGA和CPLD的結構性能對照
4.2FPGA/CPLD的基本結構和原理
4.3Xilinx系列CPLD
4.4Altera系列CPLD
4.5現場可編程系統晶元FPSC
4.6無限可重構可編程門陣列ispXPGA
4.7ispXPLD器件
4.8在系統可編程通用數字開關ispGDS和互連器件ispGDX/V
4.9在系統可編程模擬器件的原理
4.10各種在系統可編程模擬器件的結構
4.11ispLSI系列器件的性能參數
4.12ispLSI系列器件的主要技術特性
4.13ispLSI系列器件的編程方法
4.14成熟器件與新型器件
4.15FPGA/CPLD器件的編程
附錄l現場可編程邏輯器件主流產品一覽
附錄2各種器件的下載電路(在系統可編程ispJTAGTM晶元設計指導)
附錄3Lattice系統宏(器件庫)
附錄4國內外常用二進制邏輯元件圖形符號對照表
附錄5世界著名的FPGA廠商及商標符號
附錄6實驗開發板電路原理圖
附錄7常用FPGA的埠資源
附錄8兩種CPLD實驗儀器面板圖及電路圖
附錄9CPLD主要器件引腳圖
附錄10縮略語詞彙表
參考文獻
……

閱讀全文

與fpga演算法書籍相關的資料

熱點內容
at89c51編程器 瀏覽:339
項目經理叫醒程序員 瀏覽:342
autocad旋轉命令 瀏覽:660
手機版wpsoffice怎麼打包文件夾 瀏覽:579
在成都學車用什麼app 瀏覽:818
grep命令管道 瀏覽:426
java修改重啟 瀏覽:567
單片機供電方案 瀏覽:770
airpodspro一代怎麼連接安卓 瀏覽:218
豌豆莢app上有什麼游戲 瀏覽:283
公路商店app標簽選什麼 瀏覽:338
linuxoracle命令行登錄 瀏覽:227
android深度休眠 瀏覽:172
php微信開發例子 瀏覽:845
醫得app登錄密碼是什麼 瀏覽:142
spring開發伺服器地址 瀏覽:411
伺服器上如何查看伺服器的埠 瀏覽:678
單片機伺服器編譯 瀏覽:770
單口usb列印機伺服器是什麼 瀏覽:859
戰地五開伺服器要什麼條件 瀏覽:956