日韩偷拍一区二区,国产香蕉久久精品综合网,亚洲激情五月婷婷,欧美日韩国产不卡

在線客服
勇敢的芯伴你玩轉Altera FPGA圖書
人氣:27

勇敢的芯伴你玩轉Altera FPGA

特權同學出品,適合Altera FPGA與Verilog HDL語言的入門學習,可配套量身定制的開發實驗平臺,理論和實踐相結合。
  • 所屬分類:圖書 >工業技術>電子 通信>一般性問題  
  • 作者:[吳厚航]
  • 產品參數:
  • 叢書名:電子設計與嵌入式開發實踐叢書
  • 國際刊號:9787302474210
  • 出版社:清華大學出版社
  • 出版時間:2017-10
  • 印刷時間:2017-08-01
  • 版次:1
  • 開本:16開
  • 頁數:--
  • 紙張:膠版紙
  • 包裝:平裝-膠訂
  • 套裝:

內容簡介

本書使用Altera公司的Cyclone Ⅳ FPGA器件,由淺入深地引領讀者從板級設計、基礎入門實例、FPG內資源應用實例和綜合進階實例等方面,玩轉FPGA邏輯設計。本書基于特定的FPGA實驗平臺,既有足夠的理論知識深度作支撐,也有豐富的例程供實踐學習,并且穿插了筆者在多年FPGA學習和開發過程中所積累的經驗和技巧。 無論對于希望快速掌握Verilog語言進行FPGA開發的初學者,還是希望快速掌握基于Altera Cyclone Ⅳ FPGA進行開發的設計者,本書都是很好的選擇。

編輯推薦

(1)本書由《深入淺出玩轉FPGA》一書的作者吳厚航(網名:特權同學)傾心打造。(2)供FPGA板級設計說明、工具安裝說明、入門實例、片內資源應用實例和綜合實例,由淺入深地掌握FPGA的開發設計。(3)使用Altera公司的Cyclone Ⅳ FPGA器件既有足夠的理論知識深度作支撐,也有豐富的例程進行實踐學習,并且穿插著筆者多年FPGA學習和開發過程中的各種經驗和技巧。

作者簡介

作者簡介吳厚航[網名:特權同學] 有近10年的FPGA工程實踐經歷,擅長記錄、分析并總結FPGA開發中的經驗與技巧,也非常樂于分享。活躍于各大電子技術網站的FPGA社區或版塊,多年來筆耕不輟、風雨無阻,不斷地發表FPGA相關文章,其總點擊量超過300萬。著有多本FPGA技術相關圖書,其詼諧的文字、貼近讀者實際需求的知識點與經驗技巧分享,贏得了廣大讀者的一致認可。

目錄

目錄

Contents

第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Altera的安裝

4.3文本編輯器Notepad 安裝

4.4QuartusⅡ中使用Notepad 的關聯設置

4.5USBBlaster的驅動安裝

4.5.1Windows XP系統USBBlaster安裝

4.5.2在Windows 7系統安裝USBBlaster

4.5.3在Windows 8系統安裝USBBlaster

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板級調試

第9章FPG內資源應用實例

9.1基于SignalTap Ⅱ的超聲波測距調試實例

9.1.1超聲波測距原理

9.1.2功能簡介

9.1.3代碼解析

9.1.4硬件裝配

9.1.5SignalTap Ⅱ源文件創建

9.1.6SignalTap Ⅱ配置

9.1.7SignalTap Ⅱ調試

9.2FPG內ROM實例

9.2.1功能概述

9.2.2代碼解析

9.2.3ROM初始化文檔創建

9.2.4新建IP核源文件

9.2.5ROM配置

9.2.6功能仿真

9.2.7FPGA在線調試

9.3FPG內RAM實例

9.3.1功能概述

9.3.2代碼解析

9.3.3新建IP核源文件

9.3.4RAM配置

9.3.5功能仿真

9.3.6FPGA在線調試

9.4FPG內FIFO實例

9.4.1功能概述

9.4.2代碼解析

9.4.3新建IP核源文件

9.4.4FIFO配置

9.4.5功能仿真

9.4.6FPGA在線調試

9.5FPG內異步FIFO實例

9.5.1功能概述

9.5.2代碼解析

9.5.3新建IP核源文件

9.5.4FIFO配置

9.5.5功能仿真

9.5.6FPGA在線調試

9.6FPG內ROM、FIFO、RAM聯合實例

9.6.1功能概述

9.6.2代碼解析

9.6.3功能仿真

9.6.4FPGA在線調試

第10章綜合進階實例

10.1基于數碼管顯示的超聲波測距回響脈寬計數實例

10.1.1功能簡介

10.1.2代碼解析

10.1.3板級調試

10.2基于均值濾波處理的超聲波測距回響脈寬計數實例

10.2.1功能簡介

10.2.2濾波算法與實現

10.2.3代碼解析

10.2.4板級調試

10.3基于進制換算的超聲波測距結果顯示實例

10.3.1功能簡介

10.3.2距離計算公式實現

10.3.3進制換算實現

10.3.4代碼解析

10.3.5乘法器IP核創建、配置與例化

10.3.6除法器IP核創建、配置與例化

10.3.7板級調試

10.4倒車雷達實例

10.4.1應用背景

10.4.2功能簡介

10.4.3代碼解析

10.4.4板級調試

10.5基于SRAM批量讀寫的UART bulk測試實例

10.5.1功能概述

10.5.2代碼解析

10.5.3板級調試

10.6基于數碼管顯示的RTC讀取實例

10.6.1RTC芯片解析

10.6.2功能簡介

10.6.3代碼解析

10.6.4板級調試

10.7基于UART發送的RTC讀取實例

10.7.1功能簡介

10.7.2代碼解析

10.7.3板級調試

10.8基于UART收發的RTC讀寫實例

10.8.1功能簡介

10.8.2代碼解析

10.8.3板級調試

10.9基于UART控制的VGA多模式顯示實例

10.9.1功能簡介

10.9.2代碼解析

10.9.3板級調試

10.10基于LED顯示的D/A輸出驅動實例

10.10.1D/A芯片概述

10.10.2功能簡介

10.10.3代碼解析

10.10.4板級調試

10.11基于按鍵調整和數碼管顯示的D/A輸出實例

10.11.1功能簡介

10.11.2代碼解析

10.11.3板級調試

10.12波形發生器實例

10.12.1功能簡介

10.12.2代碼解析

10.12.3IP核CORDIC配置與例化

10.12.4板級調試

10.13基于數碼管顯示的A/D采集實例

10.13.1A/D芯片接口概述

10.13.2功能簡介

10.13.3代碼解析

10.13.4板級調試

10.14A/D和D/A聯合測試實例

10.14.1功能簡介

10.14.2代碼解析

10.14.3板級調試

10.15RTC時間的LCD顯示和UART設置實例

10.15.1功能簡介

10.15.2代碼解析

10.15.3板級調試

參考文獻

在線預覽

第5章Verilog語法概述

本章導讀本章介紹學習Verilog語言的一些經驗和Verilog語言可綜合的基本語法,以及常見邏輯功能的代碼風格與書寫規范。5.1語法學習的經驗之談FPGA器件的設計輸入有多種方式,如繪制原理圖、編寫代碼或是調用IP核。早期的工程師對原理圖的設計方式情有獨鐘,這種輸入方式應付簡單的邏輯電路還湊合,應該算得上簡單實用,但隨著邏輯規模的不斷攀升,這種落后的設計方式已顯得力不從心。取而代之的是代碼輸入的方式,今天的絕大多數設計都是采用代碼來完成的。FPGA開發所使用的代碼,通常稱為硬件描述語言(Hardware Description Language),目前最主流的是VHDL和Verilog。VHDL發展較早,語法嚴謹; Verilog類似C語言,語法風格比較自由。IP核調用通常也是基于代碼設計輸入的基礎之上,現在很多EDA工具的供應商都在打FPGA的如意算盤,FPGA的設計也在朝著軟件化、平臺化的方向發展。也許在不久的將來,越來越多的工程只需要設計者從一個類似蘋果商店的IP核庫中索取組件進行配置,像搭積木一樣完成一個項目,或者整個設計都不需要見到一句代碼。當然,未來什么情況都有可能發生,但是底層的代碼邏輯編寫方式無論如何還是有其生存空間的,畢竟一個個IP核組件都是從代碼開始的,所以對于初入這個行業的新手而言,掌握基本代碼設計的技能是必需的。

這里不過多談論VHDL和Verilog語言孰優孰劣,總之這兩種語言是當前業內絕大多數開發設計者所使用的語言,從二者對電路的描述和實現上看,有許多相通之處。無論是VHDL還是Verilog,建議初學者先掌握其中一門,至于到底先下手哪一門,則需要讀者根據自身的情況做考量。對于沒有什么外部情況限制的朋友,若之前有一定的C語言基礎,不妨先學Verilog,這有助于加快對語法本身的理解。在將其中一門語言學精、用熟之后,好也能夠著手掌握另一門語言。雖然在單個項目中,很少需要“雙語齊下”,但在實際工作中,還是很有可能需要去接觸另一門語法所寫的工程。網絡上有很多很好的開源實例,若只會Verilog,而參考實例卻是VHDL的,那么就很尷尬了; 忽然有24小時A同事離職,老板把他寫了一半的Verilog工程扔給只會VHDL的你來維護,那可就被動難堪了……所以,對于VHDL和Verilog的取舍問題,建議先學精一門,也別忘了兼顧另一門,無論哪一種語言,至少需要具備看懂別人設計的基本能力。

HDL雖然和軟件語言有許多相似之處,但由于其實現對象是硬件電路,所以它們之間的設計思維存在較大差異。尤其是那些做過軟件編程的朋友,很喜歡用軟件的順序思維來駕驅HDL,豈不知HDL實現的硬件電路大都是并行處理的。也許就是這個大彎轉不過來,所以很多朋友在研究HDL所實現的功能時常常百思不得其解。對于初學者,尤其是軟件轉行過來的初學者,筆者的建議是不要拋開實際電路而研究語法,在一段代碼過后,多花些精力對比實際邏輯電路,必要時做一下仿真,好能再找一些直觀的外設在實驗板上看看結果。長此以往,若能達到代碼和電路都心中有數,那才證明是真真正正掌握HDL的精髓了。HDL的語法條目雖多,但并非所有的HDL語法都能夠實現最終的硬件電路。由此進行劃分,可實現為硬件電路的語法常稱為可綜合的語法; 而不能夠實現到硬件電路中,卻常常可作為仿真驗證的高層次語法則稱為行為級語法。很多朋友在初學語法時,抱著一本語法書暈頭轉向地看,實戰的時候卻常常碰到這種語法不能用、那種語法不支持的報錯信息,從而更加抱怨HDL不是好東西,學起來真困難。其實不然,可綜合的語法是一個很小的子集,對于初學者,建議先重點掌握好這個子集,實際設計中或許靠著十來條基本語法就可以打天下了。怎么樣?HDL一下變簡單了吧。這么說一點也不夸張,本書的重點就是要通過各種可實現到板級的例程讓讀者快速地掌握如何使用可綜合的語法子集完成一個設計。5.2節中會將常用的可綜合語法子集逐一羅列并簡單介紹。對于已入門的讀者,也不是說掌握了可綜合的語法子集就“萬事大吉”了。

行為級語法也非一無是處,都說“存在即是合理”,行為級語法也大有用處。一個稍微復雜的設計,若是在板級調試前不經過幾次三番的仿真測試,一次性成功的概率幾乎為零。而仿真驗證也有自己的一套高效便捷的語法,如果再像底層硬件電路一樣搭仿真平臺,恐怕就太浪費時間了。行為級語法最終的實現對象不是FPGA器件,而是手中的計算機,動輒上G甚至雙核、四核的CPU可不愿做“老牛拉破車”的活,所以行為級語法幫助設計者在仿真過程中利用好手中的資源,能夠快速、高效地完成設計的初期驗證平臺搭建。因此,掌握行為級語法,可以服務于設計的仿真驗證階段的工作。

對于HDL的學習,筆者根據自身的經驗,提幾點建議。首先,手中需要準備一本比較完整的語法書籍。這類書市場上已經是滿天飛了,內容相差無幾,初學者好能在開始FPGA的學習前花一些時間認真地看過一遍語法,盡可能地理解每條語法的基本功能和用法。當然,只需要認真看過、理解過,做到相關語法心中有數就行,這也不是為了應付考試,也沒必要去“死記硬背”任何東西。語法的理論學習是必需的,能夠為后面的實踐打下堅實的基礎。有些實在不好理解的語法,也不要強求,今后在實例中遇到類似語法的參考用法時再掌握也不遲。其次,參考一些簡單的例程,并且自己動手寫代碼實現相同或相近的電路功能。這個過程中,可能需要結合實際的FPGA開發工具和入門級學習套件。FPGA的開發工具前面章節已經有所介紹,主要是掌握Quartus Ⅱ(Altera公司的器件使用)或ISE(Xilinx公司的器件使用)的使用,學會使用這些工具新建一個工程、編寫代碼、分配引腳、進行編譯、下載配置文件到目標電路板中。入門級的學習套件,簡單地說,就是一塊板載FPGA器件的電路板。這塊電路板不需要有很多高級的外設,一些簡單的常見外設即可(如蜂鳴器、流水燈、數碼管、UART、IIC等)。通過開發工具可以進行工程的建立和管理; 而通過學習套件,就可以直觀地驗證工程是否實現了既定的功能。在實踐的過程中,一定要注意自己的代碼風格,當然,這在很大程度上取決于參考例程的代碼風格。至于什么樣的學習套件配套的參考例程是規范的,倒也沒有定論,建議在選擇口碑較好的學習套件的同時,推薦讀者多去讀讀FPGA原廠Altera(qts_qii5v1.pdf)或Xilinx(xst.pdf)公司的官方文檔,在它們的一些文檔手冊中有各種常見電路的實現代碼風格和參考實例。在練習的過程中,也要學會使用開發工具生成的各種視圖,尤其是RTL視圖。RTL視圖是用戶輸入代碼進行綜合后的邏輯功能視圖。這個視圖很好地將用戶的代碼用邏輯門的方式詮釋出來,初學者可以通過查看RTL視圖的方式來看看自己編寫的代碼所能實現的邏輯電路,以加深對語法的理解; 反之,也可以通過RTL視圖來檢驗當前所寫的代碼是否實現了期望的功能。

網友評論(不代表本站觀點)

免責聲明

更多出版社
主站蜘蛛池模板: 罗江县| 昌邑市| 扎鲁特旗| 金坛市| 敖汉旗| 清流县| 邮箱| 清流县| 十堰市| 枣庄市| 赞皇县| 林周县| 新蔡县| 保德县| 广饶县| 志丹县| 德清县| 墨玉县| 三门县| 上思县| 尼木县| 英德市| 龙胜| 华池县| 舟曲县| 雷波县| 郯城县| 济宁市| 静宁县| 镇安县| 南昌市| 大厂| 长泰县| 行唐县| 荆州市| 罗定市| 独山县| 桦川县| 江油市| 越西县| 巴塘县|