日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
勇敢的芯伴你玩轉(zhuǎn)Altera FPGA圖書
人氣:25

勇敢的芯伴你玩轉(zhuǎn)Altera FPGA

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

內(nèi)容簡介

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

編輯推薦

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

作者簡介

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

目錄

目錄

Contents

第1章FPGA開發(fā)入門

1.1FPGA基礎(chǔ)入門

1.2FPGA的優(yōu)勢在哪里

1.3FPGA應用領(lǐng)域

1.4FPGA開發(fā)流程

第2章實驗平臺“勇敢的芯”板級電路詳解

2.1板級電路整體架構(gòu)

2.2電源電路

2.3復位與時鐘電路

2.3.1關(guān)于FPGA器件的時鐘

2.3.2關(guān)于FPGA器件的復位

2.3.3實驗平臺電路解析

2.4FPGA下載配置電路

2.5SRAM接口電路

2.6ADC/DAC芯片電路

2.7UART接口電路

2.8RTC接口電路

2.94×4矩陣按鍵電路

2.10VGA顯示接口電路

2.11蜂鳴器、流水燈、數(shù)碼管、撥碼開關(guān)電路

2.12超聲波接口、外擴LCD接口電路

第3章邏輯設計基

3.10和1——精彩世界由此開始

3.2表面現(xiàn)象揭秘——邏輯關(guān)系

3.3內(nèi)里本質(zhì)探索——器件結(jié)構(gòu)

第4章軟件安裝與配置

4.1軟件下載和license申請

4.2Quartus Ⅱ與ModelSimAltera的安裝

4.3文本編輯器Notepad 安裝

4.4QuartusⅡ中使用Notepad 的關(guān)聯(lián)設置

4.5USBBlaster的驅(qū)動安裝

4.5.1Windows XP系統(tǒng)USBBlaster安裝

4.5.2在Windows 7系統(tǒng)安裝USBBlaster

4.5.3在Windows 8系統(tǒng)安裝USBBlaster

4.6串口芯片驅(qū)動安裝

4.6.1驅(qū)動安裝

4.6.2設備識別

第5章Verilog語法概述

5.1語法學習的經(jīng)驗之談

5.2可綜合的語法子集

5.3代碼風格與書寫規(guī)范

勇敢的芯伴你玩轉(zhuǎn)Altera FPGA

第6章基于仿真的及時個工程實例

6.1新建工程

6.2Verilog源碼文件創(chuàng)建與編輯

6.2.1Verilog源碼文件創(chuàng)建

6.2.2Verilog源碼文件編輯

6.3Verilog語法檢查

6.4ModelSim仿真驗證

6.4.1Quartus Ⅱ基本設置

6.4.2測試腳本創(chuàng)建與編輯

6.4.3測試腳本關(guān)聯(lián)設置

6.4.4調(diào)用ModelSim仿真

第7章基于板級調(diào)試的第二個工程實例

7.1PWM蜂鳴器驅(qū)動——功能概述

7.2PWM蜂鳴器驅(qū)動——引腳分配

7.3PWM蜂鳴器驅(qū)動——綜合、映射與配置文件產(chǎn)生

7.4Altera FPGA配置方式

7.4.1概述

7.4.2配置方式

7.5PWM蜂鳴器驅(qū)動——FPGA在線下載配置

7.6PWM蜂鳴器驅(qū)動——FPGA配置芯片固化

7.7PWM蜂鳴器驅(qū)動——復位與FPGA重配置功能

第8章基礎(chǔ)入門實例

8.1蜂鳴器開關(guān)實例

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板級調(diào)試

8.4按鍵消抖與LED開關(guān)實例

8.4.1按鍵消抖原理

8.4.2功能簡介

8.4.3代碼解析

8.4.5板級調(diào)試

8.5經(jīng)典模式流水燈實例

8.5.1功能簡介

8.5.2代碼解析

8.5.3板級調(diào)試

8.6基于PLL分頻計數(shù)的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板級調(diào)試

8.7數(shù)碼管驅(qū)動實例

8.7.1數(shù)碼管驅(qū)動原理

8.7.2功能概述

8.7.3代碼解析

8.7.4板級調(diào)試

8.8SRAM讀寫測試實例

8.8.1SRAM讀寫時序解讀

8.8.2功能簡介

8.8.3代碼解析

8.8.4仿真設置

8.8.5功能仿真

8.8.6FPGA在線配置

8.8.7觸發(fā)采樣波形

8.9UART loopback測試

8.9.1功能概述

8.9.2代碼解析

8.9.3板級調(diào)試

8.10VGA驅(qū)動ColorBar顯示實例

8.10.1VGA概述

8.10.2功能簡介

8.10.3代碼解析

8.10.4板級調(diào)試

8.11LCD基本驅(qū)動實例

8.11.1LCD驅(qū)動時序

8.11.2功能簡介

8.11.3代碼解析

8.11.4裝配

8.11.5板級調(diào)試

8.12LCD字符顯示驅(qū)動實例

8.12.1字符取模

8.12.2ROM初始化文檔創(chuàng)建

8.12.3新建源文件

8.12.4ROM配置

8.12.5功能簡介

8.12.6代碼解析

8.12.7板級調(diào)試

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板級調(diào)試

第9章FPG內(nèi)資源應用實例

9.1基于SignalTap Ⅱ的超聲波測距調(diào)試實例

9.1.1超聲波測距原理

9.1.2功能簡介

9.1.3代碼解析

9.1.4硬件裝配

9.1.5SignalTap Ⅱ源文件創(chuàng)建

9.1.6SignalTap Ⅱ配置

9.1.7SignalTap Ⅱ調(diào)試

9.2FPG內(nèi)ROM實例

9.2.1功能概述

9.2.2代碼解析

9.2.3ROM初始化文檔創(chuàng)建

9.2.4新建IP核源文件

9.2.5ROM配置

9.2.6功能仿真

9.2.7FPGA在線調(diào)試

9.3FPG內(nèi)RAM實例

9.3.1功能概述

9.3.2代碼解析

9.3.3新建IP核源文件

9.3.4RAM配置

9.3.5功能仿真

9.3.6FPGA在線調(diào)試

9.4FPG內(nèi)FIFO實例

9.4.1功能概述

9.4.2代碼解析

9.4.3新建IP核源文件

9.4.4FIFO配置

9.4.5功能仿真

9.4.6FPGA在線調(diào)試

9.5FPG內(nèi)異步FIFO實例

9.5.1功能概述

9.5.2代碼解析

9.5.3新建IP核源文件

9.5.4FIFO配置

9.5.5功能仿真

9.5.6FPGA在線調(diào)試

9.6FPG內(nèi)ROM、FIFO、RAM聯(lián)合實例

9.6.1功能概述

9.6.2代碼解析

9.6.3功能仿真

9.6.4FPGA在線調(diào)試

第10章綜合進階實例

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

10.1.1功能簡介

10.1.2代碼解析

10.1.3板級調(diào)試

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

10.2.1功能簡介

10.2.2濾波算法與實現(xiàn)

10.2.3代碼解析

10.2.4板級調(diào)試

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

10.3.1功能簡介

10.3.2距離計算公式實現(xiàn)

10.3.3進制換算實現(xiàn)

10.3.4代碼解析

10.3.5乘法器IP核創(chuàng)建、配置與例化

10.3.6除法器IP核創(chuàng)建、配置與例化

10.3.7板級調(diào)試

10.4倒車雷達實例

10.4.1應用背景

10.4.2功能簡介

10.4.3代碼解析

10.4.4板級調(diào)試

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

10.5.1功能概述

10.5.2代碼解析

10.5.3板級調(diào)試

10.6基于數(shù)碼管顯示的RTC讀取實例

10.6.1RTC芯片解析

10.6.2功能簡介

10.6.3代碼解析

10.6.4板級調(diào)試

10.7基于UART發(fā)送的RTC讀取實例

10.7.1功能簡介

10.7.2代碼解析

10.7.3板級調(diào)試

10.8基于UART收發(fā)的RTC讀寫實例

10.8.1功能簡介

10.8.2代碼解析

10.8.3板級調(diào)試

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

10.9.1功能簡介

10.9.2代碼解析

10.9.3板級調(diào)試

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

10.10.1D/A芯片概述

10.10.2功能簡介

10.10.3代碼解析

10.10.4板級調(diào)試

10.11基于按鍵調(diào)整和數(shù)碼管顯示的D/A輸出實例

10.11.1功能簡介

10.11.2代碼解析

10.11.3板級調(diào)試

10.12波形發(fā)生器實例

10.12.1功能簡介

10.12.2代碼解析

10.12.3IP核CORDIC配置與例化

10.12.4板級調(diào)試

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

10.13.1A/D芯片接口概述

10.13.2功能簡介

10.13.3代碼解析

10.13.4板級調(diào)試

10.14A/D和D/A聯(lián)合測試實例

10.14.1功能簡介

10.14.2代碼解析

10.14.3板級調(diào)試

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

10.15.1功能簡介

10.15.2代碼解析

10.15.3板級調(diào)試

參考文獻

在線預覽

第5章Verilog語法概述

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

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

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

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

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

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

免責聲明

更多出版社