出版時間:2010-4 出版社:電子工業(yè) 作者:赫建國//倪德克//鄭燕 頁數(shù):273
前言
2004年春天,作為指導(dǎo)教師,作者首次參加了由Altera公司組織的EDA/SOPC電子設(shè)計競賽。Altera公司提出的數(shù)字系統(tǒng)SOPC(System On Programmable Chip)解決方案深深地吸引了我?! ≡诖酥?,作者雖然從事數(shù)字系統(tǒng)的教學(xué)和開發(fā)設(shè)計工作,并對用來實現(xiàn)數(shù)字系統(tǒng)的微控制器和可編程邏輯器件的使用也已多年,但是一直把它們看做是兩種各具特點的目標(biāo)器件。如果需要對信號進(jìn)行較復(fù)雜的處理,首選的目標(biāo)器件為微控制器;如果需要進(jìn)行高速信號傳送,首選的目標(biāo)器件為可編程邏輯器件;如果希望同時獲得復(fù)雜的信號處理和高速的信號傳送,那么將聯(lián)合使用微控制器和可編程邏輯器件。Altera公司提出的數(shù)字系統(tǒng)SOPC解決方案能夠在可編程邏輯器件中形成一個用戶可配置的軟核處理器——NiosⅡ軟核處理器,這樣就在一個芯片上同時實現(xiàn)了信號的復(fù)雜處理和信號的高速傳送?! ±脭?shù)字系統(tǒng)SOPC解決方案實現(xiàn)應(yīng)用系統(tǒng)設(shè)計需要掌握QuartusⅡ可編程邏輯器件開發(fā)軟件和NiosⅡ集成開發(fā)環(huán)境。利用開發(fā)軟件QuartusⅡ,使用者能夠創(chuàng)建以FPGA芯片為目標(biāo)器件的NiosⅡ軟核處理器系統(tǒng)及其他外圍模塊;利用NiosⅡ集成開發(fā)環(huán)境,使用者能夠完成NiosⅡ軟核處理器系統(tǒng)的c語言設(shè)計文件的編輯、編譯,并下載設(shè)計到NiosⅡ軟核處理器系統(tǒng)中進(jìn)行調(diào)試和運行?! ≌莆找环N技術(shù)需要大量的理論和實踐學(xué)習(xí),同時也需要一個好的學(xué)習(xí)方法,如果有一個好的學(xué)習(xí)指導(dǎo)是可以獲得事半功倍的效果的。通過這些年來對參加Altera公司的EDA/SOPC電子設(shè)計競賽和全國大學(xué)生電子設(shè)計競賽的學(xué)生的賽前訓(xùn)練的總結(jié),作者編寫了本書。本書在撰寫內(nèi)容上力求實用,并盡量做到理論和實踐相結(jié)合;在內(nèi)容編排上,盡量做到由易到難。對書中列舉的基礎(chǔ)實驗和應(yīng)用設(shè)計,作者努力做到不僅描述如何進(jìn)行,而且分析這樣做的原因,使讀者能夠比較容易地舉一反三?! ”緯膬?nèi)容包括3個部分。第一部分包括第1-4章,這部分描述的是可編程邏輯器件開發(fā)的基礎(chǔ)知識。如果讀者具有使用可編程邏輯器件的經(jīng)歷,這部分可以跳過去,直接從第二部分開始?! 〉?章介紹數(shù)字集成電路的基礎(chǔ)知識及NiosⅡ軟核處理器的特點。 第2章描述FPGA器件的基礎(chǔ)知識。包括FPGA器件和標(biāo)準(zhǔn)邏輯器件在功能上的對應(yīng)關(guān)系,F(xiàn)PGA器件的內(nèi)部結(jié)構(gòu),以及Ahera公司生產(chǎn)的FPGA器件的性能介紹。 第3章介紹可編程邏輯器件開發(fā)軟件QuartusⅡ的使用。內(nèi)容包括設(shè)計項目的創(chuàng)建,設(shè)計的輸入、編譯、模擬,以及向目標(biāo)器件的下載。
內(nèi)容概要
本書介紹了一種能夠在FPGA芯片中同時獲得數(shù)據(jù)傳送速度快和數(shù)據(jù)處理能力強(qiáng)兩個優(yōu)點的設(shè)計方案——在片可編程系統(tǒng)(System On Programmable Chip,SOPC)解決方案。該方案通過在FPGA芯片中置人一個軟核處理器系統(tǒng)(NiosⅡ軟核處理器系統(tǒng))來增強(qiáng)對信號的處理能力。 本書系統(tǒng)地描述了NiosⅡ軟核處理器系統(tǒng)的開發(fā)知識。內(nèi)容包括Altera公司FPGA芯片的介紹、可編程邏輯器件開發(fā)軟件QuartusⅡ的使用、硬件描述語言VHDL的簡介、NiosⅡ軟核處理器系統(tǒng)創(chuàng)建工具SOPCBuilder和NiosⅡ集成開發(fā)環(huán)境(NiosⅡIDE)的使用。書中還包括了大量的基礎(chǔ)實驗和應(yīng)用系統(tǒng)的設(shè)計實例,能夠幫助讀者更快、更容易地掌握及應(yīng)用這門技術(shù)。 本書適合從事Altera公司FPGA芯片開發(fā)設(shè)計的研究生和本科高年級學(xué)生使用,也適合從事該方面工作的工程師使用。
書籍目錄
第1章 引言 1.1 數(shù)字集成電路的分類 1.1.1 標(biāo)準(zhǔn)邏輯器件 1.1.2 微處理器 1.1.3 可編程邏輯器件 1.2 NiosⅡ軟核處理器 1.2.1 NiosⅡ軟核處理器系統(tǒng)簡介 1.2.2 可配置軟核處理器的優(yōu)點第2章 現(xiàn)場可編程門陣列器件 2.1 可編程邏輯器件概述 2.2 可編程邏輯器件的發(fā)展歷程 2.2.1 簡單PLD的基本結(jié)構(gòu) 2.2.2 FPGA的基本結(jié)構(gòu) 2.3 Altera公司CycloneⅡ器件的工作原理 2.4 CycloneⅡ系列器件的主要技術(shù)指標(biāo) 2.5 小結(jié)第3章 QuartusⅡ開發(fā)軟件的使用 3.1 簡介 3.2 創(chuàng)建工程 3.3 設(shè)計輸入 3.3.1 建立文本設(shè)計文件 3.3.2 建立圖形設(shè)計文件 3.3.3 層次化設(shè)計 3.4 設(shè)計的編譯 3.5 設(shè)計的仿真驗證 3.5.1 創(chuàng)建仿真波形文件 3.5.2 設(shè)計仿真 3.6 引腳分配 3.7 器件配置 3.8 小結(jié)第4章 VHDL語言基礎(chǔ) 4.1 VHDL的歷史 4.2 VHDL的程序結(jié)構(gòu) 4.2.1 VHDL程序的基本結(jié)構(gòu) 4.2.2 實體 4.2.3 結(jié)構(gòu)體 4.2.4 包集 4.2.5 庫 4.3 VHDL的語言元素 4.3.1 標(biāo)識符 4.3.2 對象類別與定義 4.3.3 數(shù)據(jù)類型 4.3.4 運算符 4.4 并行語句 4.4.1 并行信號賦值語句 4.4.2 進(jìn)程語句 4.5 順序語句 4.5.1 順序信號賦值語句 4.5.2 條件(IF)語句 4.5.3 選擇(CASE)語句 4.5.4 循環(huán)(LOOP)語句 4.5.5 空操作(NULL)語句 4.6 小結(jié)第5章 NiosⅡ軟核處理器系統(tǒng)的開發(fā)過程 5.1 概述 5.2 配置NiosⅡ軟核處理器系統(tǒng) 5.2.1 創(chuàng)建NiosⅡ軟核處理器系統(tǒng) 5.2.2 配置NiosⅡ軟核處理器系統(tǒng) 5.3 產(chǎn)生NiosⅡ軟核處理器系統(tǒng) 5.3.1 產(chǎn)生NiosⅡ軟核處理器系統(tǒng)模塊 5.3.2 NiosⅡ軟核處理器系統(tǒng)的產(chǎn)生 5.4 創(chuàng)建NiosⅡIDE環(huán)境下的應(yīng)用工程 5.4.1 NiosⅡIDE工程創(chuàng)建 5.4.2 C語言源文件的編輯 5.4.3 C語言源文件的編譯 5.5 C語言源程序的調(diào)試 5.5.1 在目標(biāo)電路板上運行程序 5.5.2 在目標(biāo)電路板上調(diào)試程序 5.5.3 配置目標(biāo)FPGA器件 5.6 小結(jié)第6章 NiosⅡ軟核處理器——程序運行時間的測量 6.1 NiosⅡ軟核處理器的結(jié)構(gòu) 6.2 NiosⅡ軟核處理器 6.2.1 “Core NiosⅡ”選項卡 6.2.2 “Caches and Memory Interfaces”選項卡 6.2.3 “Advanced Features”選項卡 6.2.4 “JTAG Debug Module”選項卡 6.2.5 “Custom Instructions”選項卡 6.3 程序運行時間的測量 6.3.1 程序運行時間的測量方法 6.3.2 Nios Ⅱ軟核處理器對程序運行時間的影響 6.4 浮點專用指令的使用 6.4.1 浮點專用指令的添加 6.4.2 浮點專用指令測試程序 6.4.3 浮點專用指令測試結(jié)果 6.5 小結(jié)第7章 8段數(shù)碼管顯示電路——并行輸入/輸出(PIO)內(nèi)核的使用 7.1 8段數(shù)碼管 7.2 并行輸入/輸出(PIO)內(nèi)核 7.2.1 并行輸入/輸出(PIO)內(nèi)核的寄存器 7.2.2 并行輸入/輸出(PIO)內(nèi)核的配置 7.2.3 C語言編程 7.3 1位數(shù)碼管的顯示實驗 7.3.1 產(chǎn)生數(shù)碼管的顯示控制電路 7.3.2 數(shù)碼管顯示控制程序 7.3.3 目標(biāo)芯片的配置 7.4 多位數(shù)碼管顯示實驗 7.4.1 多位數(shù)碼管顯示控制電路 7.4.2 4位數(shù)碼管顯示驅(qū)動函數(shù) 7.4.3 4位數(shù)據(jù)的分離 7.5 小結(jié)第8章 按鍵電路——中斷的應(yīng)用 8.1 按鍵電路 8.2 并行輸入/輸出(PIO)內(nèi)核的中斷 8.2.1 并行輸入/輸出(PIO)內(nèi)核涉及中斷的相關(guān)寄存器 8.2.2 并行輸入/輸出(PIO)內(nèi)核中斷的配置 8.2.3 C語言編程 8.3 NiosⅡ處理器的中斷 8.3.1 異常 8.3.2 C語言編程 8.4 1位按鍵電路的實驗 8.4.1 產(chǎn)生按鍵的控制電路 8.4.2 1位按鍵控制程序 8.4.3 數(shù)據(jù)類型 8.4.4 alt_main()和main()的區(qū)別 8.5 4位按鍵電路的實驗 8.5.1 4位按鍵控制電路 8.5.2 4位按鍵控制程序 8.6 小結(jié)第9章 Flash的編程——EPCS控制器、CFI 控制器的使用 9.1 EPCS控制器 9.1.1 EPCS控制器概述 9.1.2 EPCS控制器配置 9.2 CFI控制器 9.2.1 CFI控制器概述 9.2.2 CFI控制器配置選項 9.2.3 CFI控制器C語言編程 9.3 Flash的編程實例 9.3.1 硬件系統(tǒng)的SOPC設(shè)計——從EPCS引導(dǎo)程序方式 9.3.2 系統(tǒng)軟件設(shè)計——從EPCS引導(dǎo)程序方式 9.3.3 從CFI_FLASH引導(dǎo)程序方式 9.4 小結(jié)第10章 時鐘信號的產(chǎn)生與測量——定時器(Interval Timer)內(nèi)核的使用 10.1 定時器內(nèi)核 10.1.1 定時器內(nèi)核的組成 10.1.2 定時器內(nèi)核的寄存器 10.1.3 定時器(Interval Timer)內(nèi)核的配置 10.1.4 C語言編程 10.2 時鐘信號產(chǎn)生實驗 10.2.1 時鐘信號產(chǎn)生電路 10.2.2 時鐘信號產(chǎn)生電路控制程序 10.3 定時器(Interval Timer)內(nèi)核的中斷實驗 10.4 信號的周期測量 10.4.1 信號周期測量電路 10.4.2 周期測量控制程序 10.5 “看門狗”電路實驗 10.5.1 “看門狗”電路 10.5.2 “看門狗”電路控制程序 10.6 小結(jié)第11章 LCD12864液晶模塊的驅(qū)動設(shè)計——SDRAM控制器內(nèi)核的使用 11.1 LCD12864液晶模塊簡介 11.2 SDRAM控制器內(nèi)核 11.2.1 概述 11.2.2 SDRAM控制器內(nèi)核的配置選項 11.2.3 時鐘、PLL和時序 11.2.4 SDRAM內(nèi)核的C語言編程 11.3 LCD12864模塊的驅(qū)動實例 11.3.1 LCD12864模塊接口電路 11.3.2 硬件系統(tǒng)的SOPC設(shè)計 11.3.3 系統(tǒng)軟件設(shè)計 11.4 小結(jié)第12章 JTAG UART通信——JTAG UART內(nèi)核的使用 12.1 JTAG UART內(nèi)核 12.1.1 JTAG UART內(nèi)核概述 12.1.2 JTAG UART內(nèi)核配置選項 12.1.3 JTAG UART內(nèi)核的C語言編程 12.2 JTAG UART通信實例 12.2.1 硬件系統(tǒng)的SOPC設(shè)計 12.2.2 系統(tǒng)軟件設(shè)計 12.3 小結(jié)第13章 SD卡讀寫控制設(shè)計——SPI內(nèi)核的使用 13.1 SD卡簡介 13.2 SPI內(nèi)核 13.2.1 SPI內(nèi)核綜述 13.2.2 SPI內(nèi)核配置選項 13.2.3 SPI的C語言編程 13.3 SD卡讀寫實例 13.3.1 SD卡與FPGA接口電路 13.3.2 硬件系統(tǒng)的SOPC設(shè)計 13.3.3 系統(tǒng)軟件設(shè)計 13.4 小結(jié)第14章 數(shù)字信號頻率測量電路的設(shè)計 14.1 頻率測量原理和電路設(shè)計要求 14.2 頻率測量電路的系統(tǒng)設(shè)計 14.3 頻率測量電路的單元電路設(shè)計 14.3.1 計數(shù)器電路 14.3.2 計數(shù)器控制電路 14.3.3 NiosⅡ軟核處理器系統(tǒng) 14.4 頻率測量電路的系統(tǒng)調(diào)試 14.4.1 系統(tǒng)集成 14.4.2 測試方案和使用儀器 14.4.3 測量數(shù)據(jù)及數(shù)據(jù)分析 14.5 設(shè)計總結(jié)第15章 信號頻譜分析電路的設(shè)計 15.1 頻譜的概念 15.2 離散傅里葉變換 15.3 信號頻譜分析電路的系統(tǒng)設(shè)計 15.4 信號頻譜分析電路的單元電路設(shè)計 15.4.1 頻譜分析模塊 15.4.2 采樣速率控制電路 15.5 信號頻譜分析電路的系統(tǒng)調(diào)試 15.5.1 系統(tǒng)集成 15.5.2 信號頻譜分析程序框圖 15.5.3 系統(tǒng)測量和數(shù)據(jù)分析 15.6 設(shè)計總結(jié)參考文獻(xiàn)
章節(jié)摘錄
微處理器的每一條匯編指令對應(yīng)一個電路模塊,可編程邏輯器件可以認(rèn)為是對標(biāo)準(zhǔn)邏輯器件的直接升級。它在一塊芯片內(nèi)部集成了非常多的邏輯門和觸發(fā)器,使得一塊可編程邏輯器件芯片具有了實現(xiàn)一個應(yīng)用系統(tǒng)的邏輯資源,從而減少了系統(tǒng)中使用器件的數(shù)量,提高了系統(tǒng)的可靠性。芯片內(nèi)部的邏輯資源的連接不需要手工進(jìn)行,與微處理器一樣,用戶只需要編寫設(shè)計文件即可,從而使得設(shè)計靈活性得到了提高。 可編程邏輯器件在下載設(shè)計文件后,在它的內(nèi)部將形成對應(yīng)的硬件電路,這些電路是可 以同時工作的。例如,向兩個數(shù)碼管傳送顯示代碼,這時可以同時進(jìn)行,而在微處理器中, 這個工作是逐個傳送的??删幊踢壿嬈骷?nèi)部電路模塊中信號傳輸?shù)臅r間延遲只來源于硬件 電路產(chǎn)生的時間延遲,不存在指令讀取和執(zhí)行產(chǎn)生的時間延遲。上述工作特點使得可編程邏一輯器件的工作速度比微處理器芯片快。 可編程邏輯器件的開發(fā)設(shè)計語言有許多種,其中VHDL和Verilog HDL這兩種硬件描述 語言已經(jīng)獲得較為廣泛的應(yīng)用,并且成為IEEE的標(biāo)準(zhǔn)。以VHDL為例,創(chuàng)建VHDL的最初 目標(biāo)是用于標(biāo)準(zhǔn)文檔的建立和系統(tǒng)功能的模擬,基本想法是在高層次上描述系統(tǒng)或元件的行 為。到了20世紀(jì)90年代初,人們發(fā)現(xiàn)VHDL不僅可以作為系統(tǒng)模擬的建模工具,而且可以 作為電路和系統(tǒng)的設(shè)計工具,即可以利用軟件工具把’VHDL源代碼轉(zhuǎn)換為基本邏輯元件的連 接關(guān)系?! HDL沒有得到可編程邏輯器件開發(fā)軟件的全面支持。例如,Altera公司的QuartusⅡ可 編程邏輯器件開發(fā)軟件不支持浮點類型數(shù)據(jù),不支持乘法和除法算術(shù)運算等。這些不足限制 了可編程邏輯器件的應(yīng)用。不支持浮點類型數(shù)據(jù)減小了所處理信號的動態(tài)范圍,不支持乘、 除法算術(shù)運算使得一些信號處理功能不容易實現(xiàn)。在這方面,微處理器開發(fā)中大量使用的c 語言具有明顯的優(yōu)勢。
編輯推薦
掌握一種技術(shù)需要大量的理論和實踐學(xué)習(xí),同時也需要一個好的學(xué)習(xí)方法,如果有一個好的學(xué)習(xí)指導(dǎo)是可以獲得事半功倍的效果的。通過這些年來對參加Altera公司的EDA/SOPC電子設(shè)計競賽和全國大學(xué)生電子設(shè)計競賽的學(xué)生的賽前訓(xùn)練的總結(jié),作者編寫了本書。本書在撰寫內(nèi)容上力求實用,并盡量做到理論和實踐相結(jié)合;在內(nèi)容編排上,盡量做到由易到難。對書中列舉的基礎(chǔ)實驗和應(yīng)用設(shè)計,作者努力做到不僅描述如何進(jìn)行,而且分析這樣做的原因,使讀者能夠比較容易地舉一反三。
圖書封面
評論、評分、閱讀與下載
基于NiosII內(nèi)核的FPGA電路系統(tǒng)設(shè)計 PDF格式下載