發表於2024-11-26
(1)本書由《深入淺齣玩轉FPGA》一書的作者吳厚航(網名:特權同學)傾心打造。
(2)供FPGA闆級設計說明、工具安裝說明、入門實例、片內資源應用實例和綜閤實例,由淺入深地全麵掌握FPGA的開發設計。
(3)使用Altera公司的Cyclone Ⅳ FPGA器件既有足夠的理論知識深度作支撐,也有豐富的例程進行實踐學習,並且穿插著筆者多年FPGA學習和開發過程中的各種經驗和技巧。
本書使用Altera公司的CycloneⅣFPGA器件,由淺入深地引領讀者從闆級設計、基礎入門實例、FPGA片內資源應用實例和綜閤進階實例等方麵,玩轉FPGA邏輯設計。本書基於特定的FPGA實驗平颱,既有足夠的理論知識深度作支撐,也有豐富的例程供實踐學習,並且穿插瞭筆者在多年FPGA學習和開發過程中所積纍的經驗和技巧。
無論對於希望快速掌握Verilog語言進行FPGA開發的初學者,還是希望快速掌握基於AlteraCycloneⅣFPGA進行開發的設計者,本書都是很好的選擇。
作者簡介
吳厚航[網名:特權同學]有近10年的FPGA工程實踐經曆,擅長記錄、分析並總結FPGA開發中的經驗與技巧,也非常樂於分享。活躍於各大電子技術網站的FPGA社區或版塊,多年來筆耕不輟、風雨無阻,不斷地發錶FPGA相關文章,其總點擊量超過300萬。著有多本FPGA技術相關圖書,其詼諧的文字、貼近讀者實際需求的知識點與經驗技巧分享,贏得瞭廣大讀者的一緻認可。
第1章FPGA開發入門
1.1FPGA基礎入門
1.2FPGA的優勢在哪裏
1.3FPGA應用領域
1.4FPGA開發流程
第2章實驗平颱“勇敢的芯”闆級電路詳解
2.1闆級電路整體架構
2.2電源電路
2.3復位與時鍾電路
2.3.1關於FPGA器件的時鍾
2.3.2關於FPGA器件的復位
2.3.3實驗平颱電路解析
2.4FPGA下載配置電路
2.5SRAM接口電路
2.6ADC/DAC芯片電路
2.7UART接口電路
2.8RTC接口電路
2.94×4矩陣按鍵電路
2.10VGA顯示接口電路
2.11蜂鳴器、流水燈、數碼管、撥碼開關電路
2.12超聲波接口、外擴LCD接口電路
第3章邏輯設計基礎
3.10和1——精彩世界由此開始
3.2錶麵現象揭秘——邏輯關係
3.3內裏本質探索——器件結構
第4章軟件安裝與配置
4.1軟件下載和license申請
4.2Quartus Ⅱ與ModelSim�睞ltera的安裝
4.3文本編輯器Notepad++安裝
4.4QuartusⅡ中使用Notepad++的關聯設置
4.5USB�睟laster的驅動安裝
4.5.1Windows XP係統USB�睟laster安裝
4.5.2在Windows 7係統安裝USB�睟laster
4.5.3在Windows 8係統安裝USB�睟laster
4.6串口芯片驅動安裝
4.6.1驅動安裝
4.6.2設備識彆
第5章Verilog語法概述
5.1語法學習的經驗之談
5.2可綜閤的語法子集
5.3代碼風格與書寫規範
勇敢的芯伴你玩轉Altera FPGA
第6章基於仿真的第一個工程實例
6.1新建工程
6.2Verilog源碼文件創建與編輯
6.2.1Verilog源碼文件創建
6.2.2Verilog源碼文件編輯
6.3Verilog語法檢查
6.4ModelSim仿真驗證
6.4.1Quartus Ⅱ基本設置
6.4.2測試腳本創建與編輯
6.4.3測試腳本關聯設置
6.4.4調用ModelSim仿真
第7章基於闆級調試的第二個工程實例
7.1PWM蜂鳴器驅動——功能概述
7.2PWM蜂鳴器驅動——引腳分配
7.3PWM蜂鳴器驅動——綜閤、映射與配置文件産生
7.4Altera FPGA配置方式
7.4.1概述
7.4.2配置方式
7.5PWM蜂鳴器驅動——FPGA在綫下載配置
7.6PWM蜂鳴器驅動——FPGA配置芯片固化
7.7PWM蜂鳴器驅動——復位與FPGA重配置功能
第8章基礎入門實例
8.1蜂鳴器開關實例
8.1.1功能簡介
8.1.2代碼解析
8.1.3打開工程
8.1.4下載配置操作
8.2流水燈實例
8.2.1功能簡介
8.2.2代碼解析
8.2.3下載配置
8.33��8譯碼器實例
8.3.1功能簡介
8.3.2代碼解析
8.3.3闆級調試
8.4按鍵消抖與LED開關實例
8.4.1按鍵消抖原理
8.4.2功能簡介
8.4.3代碼解析
8.4.5闆級調試
8.5經典模式流水燈實例
8.5.1功能簡介
8.5.2代碼解析
8.5.3闆級調試
8.6基於PLL分頻計數的LED閃爍實例
8.6.1PLL概述
8.6.2功能簡介
8.6.3新建IP核文件
8.6.4PLL配置
8.6.5模塊化設計概述
8.6.6模塊化設計實踐
8.6.7代碼解析
8.6.8闆級調試
8.7數碼管驅動實例
8.7.1數碼管驅動原理
8.7.2功能概述
8.7.3代碼解析
8.7.4闆級調試
8.8SRAM讀寫測試實例
8.8.1SRAM讀寫時序解讀
8.8.2功能簡介
8.8.3代碼解析
8.8.4仿真設置
8.8.5功能仿真
8.8.6FPGA在綫配置
8.8.7觸發采樣波形
8.9UART loopback測試
8.9.1功能概述
8.9.2代碼解析
8.9.3闆級調試
8.10VGA驅動ColorBar顯示實例
8.10.1VGA概述
8.10.2功能簡介
8.10.3代碼解析
8.10.4闆級調試
8.11LCD基本驅動實例
8.11.1LCD驅動時序
8.11.2功能簡介
8.11.3代碼解析
8.11.4裝配
8.11.5闆級調試
8.12LCD字符顯示驅動實例
8.12.1字符取模
8.12.2ROM初始化文檔創建
8.12.3新建源文件
8.12.4ROM配置
8.12.5功能簡介
8.12.6代碼解析
8.12.7闆級調試
8.13矩陣按鍵掃描檢測實例
8.13.1鍵盤概述
8.13.2矩陣按鍵工作原理
8.13.3功能概述
8.13.4代碼解析
8.13.5RTL Viewer
8.13.6State Machine Viewer
8.13.7Technology Map Viewer
8.13.8闆級調試
第5章
Verilog語法概述
本章導讀
本章介紹學習Verilog語言的一些經驗和Verilog語言可綜閤的基本語法,以及常見邏輯功能的代碼風格與書寫規範。
5.1語法學習的經驗之談
FPGA器件的設計輸入有多種方式,如繪製原理圖、編寫代碼或是調用IP核。早期的工程師對原理圖的設計方式情有獨鍾,這種輸入方式應付簡單的邏輯電路還湊閤,應該算得上簡單實用,但隨著邏輯規模的不斷攀升,這種落後的設計方式已顯得力不從心。取而代之的是代碼輸入的方式,今天的絕大多數設計都是采用代碼來完成的。
FPGA開發所使用的代碼,通常稱為硬件描述語言(HardwareDescriptionLanguage),目前最主流的是VHDL和Verilog。VHDL發展較早,語法嚴謹;Verilog類似C語言,語法風格比較自由。IP核調用通常也是基於代碼設計輸入的基礎之上,現在很多EDA工具的供應商都在打FPGA的如意算盤,FPGA的設計也在朝著軟件化、平颱化的方嚮發展。也許在不久的將來,越來越多的工程隻需要設計者從一個類似蘋果商店的IP核庫中索取組件進行配置,最後像搭積木一樣完成一個項目,或者整個設計都不需要見到一句代碼。當然,未來什麼情況都有可能發生,但是底層的代碼邏輯編寫方式無論如何還是有其生存空間的,畢竟一個個IP核組件都是從代碼開始的,所以對於初入這個行業的新手而言,掌握基本代碼設計的技能是必需的。
這裏不過多談論VHDL和Verilog語言孰優孰劣,總之這兩種語言是當前業內絕大多數開發設計者所使用的語言,從二者對電路的描述和實現上看,有許多相通之處。無論是VHDL還是Verilog,建議初學者先掌握其中一門,至於到底先下手哪一門,則需要讀者根據自身的情況做考量。對於沒有什麼外部情況限製的朋友,若之前有一定的C語言基礎,不妨先學Verilog,這有助於加快對語法本身的理解。在將其中一門語言學精、用熟之後,最好也能夠著手掌握另一門語言。雖然在單個項目中,很少需要“雙語齊下”,但在實際工作中,還是很有可能需要去接觸另一門語法所寫的工程。網絡上有很多很好的開源實例,若隻會Verilog,而參考實例卻是VHDL的,那麼就很尷尬瞭;忽然有一天A同事離職,老闆把他寫瞭一半的Verilog工程扔給隻會VHDL的你來維護,那可就被動難堪瞭……所以,對於VHDL和Verilog的取捨問題,建議先學精一門,也彆忘瞭兼顧另一門,無論哪一種語言,至少需要具備看懂彆人設計的基本能力。
HDL雖然和軟件語言有許多相似之處,但由於其實現對象是硬件電路,所以它們之間的設計思維存在較大差異。尤其是那些做過軟件編程的朋友,很喜歡用軟件的順序思維來駕驅HDL,豈不知HDL實現的硬件電路大都是並行處理的。也許就是這個大彎轉不過來,所以很多朋友在研究HDL所實現的功能時常常百思不得其解。對於初學者,尤其是軟件轉行過來的初學者,筆者的建議是不要拋開實際電路而研究語法,在一段代碼過後,多花些精力對比實際邏輯電路,必要時做一下仿真,最好能再找一些直觀的外設在實驗闆上看看結果。長此以往,若能達到代碼和電路都心中有數,那纔證明是真真正正掌握HDL的精髓瞭。
HDL的語法條目雖多,但並非所有的HDL語法都能夠實現最終的硬件電路。由此進行劃分,可實現為硬件電路的語法常稱為可綜閤的語法;而不能夠實現到硬件電路中,卻常常可作為仿真驗證的高層次語法則稱為行為級語法。很多朋友在初學語法時,抱著一本語法書暈頭轉嚮地看,最後實戰的時候卻常常碰到這種語法不能用、那種語法不支持的報錯信息,從而更加抱怨HDL不是好東西,學起來真睏難。其實不然,可綜閤的語法是一個很小的子集,對於初學者,建議先重點掌握好這個子集,實際設計中或許靠著十來條基本語法就可以打天下瞭。怎麼樣?HDL一下變簡單瞭吧。這麼說一點也不誇張,本書的重點就是要通過各種可實現到闆級的例程讓讀者快速地掌握如何使用可綜閤的語法子集完成一個設計。5.2節中會將常用的可綜閤語法子集逐一羅列並簡單介紹。對於已入門的讀者,也不是說掌握瞭可綜閤的語法子集就“萬事大吉”瞭。
行為級語法也非一無是處,都說“存在即是閤理”,行為級語法也大有用處。一個稍微復雜的設計,若是在闆級調試前不經過幾次三番的仿真測試,一次性成功的概率幾乎為零。而仿真驗證也有自己的一套高效便捷的語法,如果再像底層硬件電路一樣搭仿真平颱,恐怕就太浪費時間瞭。行為級語法最終的實現對象不是FPGA器件,而是手中的計算機,動輒上G甚至雙核、四核的CPU可不願做“老牛拉破車”的活,所以行為級語法幫助設計者在仿真過程中利用好手中的資源,能夠快速、高效地完成設計的初期驗證平颱搭建。因此,掌握行為級語法,可以服務於設計的仿真驗證階段的工作。
前言
Foreword
FPGA技術在當前的電子設計領域越來越火熱。它的成本雖然還是高高在上,但是它給電子係統所帶來的不可限量的速度和帶寬及其在靈活性、小型性方麵的優勢,越來越為對性能要求高、偏重定製化需求的開發者所青睞。因此,越來越多的電子工程師和電子專業在校學生希望能夠掌握這門技術。而對一門電子技能的掌握,單憑讀幾本初級入門教材是很難達到的。筆者結閤自身的學習經曆,為廣大學習者量身打造瞭基於低成本、高性價比的AlteraCycloneⅣFPGA器件的硬件開發學習平颱。基於該平颱,配套本書的各種基本概念闡釋和例程講解,相信可以幫助大傢快速掌握這門新技術。
全書共10章,各章主要內容如下:
第1章是基礎中的基礎,講述可編程器件的基本概念及主要應用領域、相對傳統技術的優勢和開發流程。
第2章從FPGA開發平颱的電路闆設計入手,介紹FPGA闆級硬件電路設計要點,以及本書配套開發平颱的外圍電路設計。
第3章從最基礎的0和1開始迴顧數字電路的基礎,同時深入探討讀者所關心的可編程器件的內部架構和原理。
第4章講述開發環境的搭建,包括AlteraFPGA集成開發環境QuartusⅡ、仿真工具ModelSim、文本編輯器Notepad++以及下載器驅動和UART驅動安裝,幫助讀者快速解決學習路上遇到的最棘手的“軟”問題。
第5章講述Verilog的基本語法,包括語法的學習方法、可綜閤的語法子集以及代碼風格與書寫規範。
第6章和第7章完成最基本的工程創建、語法檢查、仿真驗證以及編譯,甚至在綫闆級調試和代碼固化,帶領讀者初步掌握基於AlteraCycloneⅣ的FPGA開發流程。
第8章介紹13個最基本的入門實例。
第9章通過6個實例幫助讀者熟悉FPGA除邏輯資源以外的其他豐富資源,如PLL和可配置為ROM、RAM、FIFO的內嵌存儲器,以及在綫邏輯分析儀SignalTapⅡ等。
第10章的15個例程,是對前麵一些實例的集成整閤,力圖通過大量的實例實踐,幫助讀者熟練掌握FPGA的基本開發設計。
本書既有對基礎理論知識的專門講解,也有非常詳細的實例演練和講解,更多的是在實
踐中傳遞實用的設計方法與技巧,非常適閤初學者。
本書配套例程的下載鏈接為http://pan.baidu.com/s/1i5LMUUD。
本書配套開發平颱的淘寶鏈接:https://myfpga.taobao.com/。
吳厚航(網名:特權同學)
2017年7月於上海
勇敢的芯伴你玩轉Altera FPGA(電子設計與嵌入式開發實踐叢書) 下載 mobi pdf epub txt 電子書 格式 2024
勇敢的芯伴你玩轉Altera FPGA(電子設計與嵌入式開發實踐叢書) 下載 mobi epub pdf 電子書勇敢的芯伴你玩轉Altera FPGA(電子設計與嵌入式開發實踐叢書) mobi epub pdf txt 電子書 格式下載 2024