兼容ARM9的軟核處理器設(shè)計

出版時間:2012-4  出版社:機械工業(yè)出版社  作者:李新兵  頁數(shù):401  
Tag標簽:無  

內(nèi)容概要

  本書介紹如何使用硬件描述語言Verilog進行FPGA設(shè)計。通過閱讀本書,讀者可以自行設(shè)計一個32位的RISC架構(gòu)處理器—兼容市面上流行的ARM9微處理器。本書不僅詳細介紹了Verilog
HDL的語法,而且獨具匠心地介紹了如何使用這種精簡的語言進行成熟作品的設(shè)計。這也是本書相對于其他類似圖書的首次嘗試。本書以Verilog
RTL設(shè)計為核心,從第1章建立Verilog
RTL設(shè)計模型開始,到最后一章能夠?qū)inux操作系統(tǒng)進行仿真。讀者通過本書可以切實掌握基于ARM9的數(shù)字電路設(shè)計流程,并能夠利用成熟的MCU軟件設(shè)計工具生成BIN文件,通過BIN文件和一個只有1800行的兼容ARM9處理器內(nèi)核,快速完成FPGA設(shè)計。
  本書理論結(jié)合實際,圖文并茂,由淺入深地介紹了如何使用Verilog語言進行FPGA設(shè)計,可作為機電控制、信息家電、工業(yè)控制、手持儀器、醫(yī)療器械、機器人技術(shù)等方面FPGA與嵌入式系統(tǒng)開發(fā)與應(yīng)用參考書,適合對FPGA與嵌入式系統(tǒng)開發(fā)感興趣的讀者以及從事ARM嵌入式系統(tǒng)應(yīng)用開發(fā)工程師閱讀。

作者簡介

李新兵,資深芯片設(shè)計數(shù)字電路工程師,長期專注于數(shù)字集成電路設(shè)計,并在FPGA原型驗證上積累了大量的經(jīng)驗。一直以提升中國處理器設(shè)計能力為己任,是開源處理器的實踐者和推動者。2009年年初在Socvista社區(qū)上發(fā)布了兼容ARM7的FreeARM7 IP核,一經(jīng)推出就深受網(wǎng)友追捧,每次帖子上線,都能吸引成千上萬的點擊量和回復(fù)。FreeARM7開源項目從在開源硬件社區(qū)(www.openhw.org)上發(fā)布開始,就一直盤踞優(yōu)秀推薦項目的第一位。在RT-Tread嵌入式社區(qū)中,F(xiàn)reeARM7項目也深受嵌入式開發(fā)者追捧。FreeARM7 IP核已經(jīng)被某信息工程學(xué)院教師用于課題研究。本書作者熟諳數(shù)字電路設(shè)計理論與方法,在長期的設(shè)計實踐中,摸索總結(jié)出了一套設(shè)計RISC處理器的簡易方法,可以使用較簡短的代碼實現(xiàn)復(fù)雜處理器設(shè)計?;谶@些設(shè)計方法與技巧,作者在FPGA上實現(xiàn)并運行了兼容主流32位處理器的實現(xiàn),如ARM9、cortexmO、MIPS等RISC處理器。

書籍目錄

前言
第1章 數(shù)字電路設(shè)計模型
1.1 最初的模型——帶有輸入輸出的模塊
1.2 組合邏輯
1.3 時序邏輯
1.4 同步電路
1.5 同步電路時序路徑
1.6 RTL描述
1.7 綜合生成電路
結(jié)束語
第2章 Verilog RTL編程
2.1 Verilog語言與RTL描述
2.2 Verilog描述語句對應(yīng)電路
2.3 如何進行RTL設(shè)計
2.4 RTL設(shè)計要點
2.5 UART串口通信設(shè)計實例
結(jié)束語
第3章 Modelsim仿真
3.1 仿真的意義
3.2 testbench文件
3.3 Modelsim仿真工具
3.4 UART串口仿真實例
結(jié)束語
第4章 FPGA開發(fā)板原型驗證
4.1 FPGA內(nèi)部結(jié)構(gòu)
4.2 FPGA開發(fā)板
4.3 FPGA設(shè)計開發(fā)流程
4.4 FPGA設(shè)計內(nèi)部單元
4.5 UART設(shè)計在Altera FPGA的下載執(zhí)行
4.6 UART設(shè)計在Xilinx FPGA的下載執(zhí)行
結(jié)束語
第5章 ARM9微處理器編程模型
5.1 ARM公司歷史
5.2 ARM處理器架構(gòu)
5.3 微處理器基本模型
5.4 ARMv4架構(gòu)模式
5.5 ARMv4架構(gòu)內(nèi)部寄存器
5.6 ARMv4架構(gòu)的異常中斷
5.7 ARMv4架構(gòu)支持的ARM指令集
5.8 ARM指令與中斷分析
結(jié)束語
第6章 兼容ARM9微處理器Verilog RTL設(shè)計
6.1 確定RTL設(shè)計的輸入輸出端口
6.2 經(jīng)典的三級流水線架構(gòu)
6.3 經(jīng)典的五級流水線架構(gòu)
6.4 三級流水線改進架構(gòu)
6.5 適于兼容ARM9微處理器的三級架構(gòu)
6.6 影響流水線架構(gòu)執(zhí)行的四種狀況
6.7 第一級:取指階段的Verilog RTL實現(xiàn)
6.8 第二級:乘法運算階段的Verilog RTL實現(xiàn)
6.9 第三級:加法運算階段的Verilog RTL實現(xiàn)
6.10 寄存器組的寫入
6.11 CPSR/SPSR的寫入
6.12 數(shù)據(jù)池的讀寫
6.13 第四級:讀操作數(shù)據(jù)的回寫
結(jié)束語
第7章 Hello World——兼容ARM9處理器內(nèi)核運行的第一個程序
7.1 基于FPGA的SoC設(shè)計流程
7.2 使用RealView MDK編譯Hello World程序
7.3 Modelsim仿真輸出Hello World
7.4 建立Hello World的FPGA設(shè)計工程
結(jié)束語
第8章 Dhrystone Benchmark——兼容ARM9處理器內(nèi)核性能測試
8.1 Dhrystone 2.1介紹
8.2 移植Dhrystone 2.1進行編譯
8.3 使用Modelsim仿真運行Dhrystone Benchmark
8.4 在線可編程的FPGA SoC設(shè)計工程
8.5 Dhrystone Benchmark在開發(fā)板中運行
結(jié)束語
第9章 uClinux仿真——結(jié)合SkyEye,啟動不帶MMU的操作系統(tǒng)
9.1 ARM7TDMI-S處理器內(nèi)核
9.2 以ARM7TDMI為核心的單片機
9.3 uClinux嵌入式操作系統(tǒng)
9.4 SkyEye硬件模擬平臺
9.5 Modelsim下仿真uClinux啟動過程
結(jié)束語
第10章 Linux操作系統(tǒng)仿真——結(jié)合mini2440開發(fā)板,啟動帶MMU的操作系統(tǒng)
10.1 ARM920T處理器內(nèi)核
10.2 S3C2440A 32位微控制器
10.3 mini2440 ARM9開發(fā)板
10.4 NAND Flash仿真模型
10.5 為兼容ARM9處理器內(nèi)核增加協(xié)處理器指令
10.6 建立仿真Linux操作系統(tǒng)的testbench
結(jié)束語
附錄A 啟動Linux操作系統(tǒng)的全部打印log信息
附錄B 兼容ARM9處理器內(nèi)核帶注釋的Verilog RTL代碼
附錄C 相關(guān)網(wǎng)址

章節(jié)摘錄

版權(quán)頁:   插圖:   本書講述如何使用硬件描述語言Verilog進行FPGA (Field Programmable Gate Array,現(xiàn)場可編程門陣列)設(shè)計。本書設(shè)計的對象是市場最主流的ARM9微處理器。本書將介紹使用Verilog設(shè)計一個兼容ARM9的處理器,并在FPGA上運行嵌入式軟件。在用硬件描述語言進行編程時,時常聽到的一句話是“心中有電路,手中寫代碼”。雖然從外表來看,使用Verilog語言和C、Java等其他語言編程沒有什么區(qū)別,都是一行一行地寫出代碼以完成某種功能。但是,在使用硬件描述語言進行編程時,卻是在對存在于心中的“電路”進行表述——這就是“心中有電路”的意思。硬件描述語言正如它的名字暗示的那樣,它是一種用來描述硬件的語言,也就是用來描述心中電路的語言。我們對“描述”最直觀的理解是,眼中看見了什么,然后用語言表達出來,讓別人知道我們看到了什么。數(shù)字電路設(shè)計的過程也是這樣:首先構(gòu)思我心中的電路是什么樣,然后使用硬件描述語言表達出來,讓綜合器知道我想要什么電路。可見最關(guān)鍵的一點是:設(shè)計者必須明確自己心中的電路到底由什么組成。 本章將為你心中的電路建立一個模型。我們在心中創(chuàng)建電路的過程,正是建立一個電路模型的過程。這個電路模型是我們進行電路設(shè)計的起點,是創(chuàng)造的源頭。如何使用最簡潔的語言來構(gòu)造存在于心中的電路,將是我們設(shè)計數(shù)字電路的關(guān)鍵。我們心中對電路規(guī)模的容納是有限的,隨著設(shè)計復(fù)雜度的增加,對于設(shè)計者建模能力的考驗越來越大了。此時更需要考驗設(shè)計者的“綜合”能力,對于心中的電路做到綱舉目張,才能設(shè)計出高效的電路。 1.1 最初的模型——帶有輸入輸出的模塊 數(shù)字電路最初的模型是什么樣的?接下來就以最常見的芯片為例進行闡述(見圖1-1)。 在圖1-1所示的芯片的四周布滿了各種引腳。這些引腳為芯片內(nèi)部和外部之間提供數(shù)據(jù)交換功能。對于芯片而說,這些引腳有的是輸入功能,有的是輸出功能,也有的既有輸入功能,又有輸出功能。不存在只有輸入功能,沒有輸出功能引腳的芯片,因為如果它不輸出,任何石頭都可以成為這樣的芯片。但是存在沒有輸入,只有輸出引腳的芯片,比如晶振——它周期性地發(fā)出脈沖信號,作為芯片運行的時鐘。因此,一般意義的芯片都同時具有輸入引腳和輸出引腳。 綜上所述可以抽象出電路的最簡模型——帶有輸入輸出端口的模塊。整顆芯片就是一個帶有輸入輸出端口的模塊,它的內(nèi)部又可分成多個這樣的模塊。如圖1-2所示,如果把這顆芯片整體作為一個模塊,根據(jù)功能它的內(nèi)部又可分成子模塊,分別是模塊A、模塊B、模塊C。 抽象成帶有輸入輸出的模塊有兩個方面的意義。一是,我們創(chuàng)建的電路最終是要交付給他人使用的。使用者不必了解電路內(nèi)部的結(jié)構(gòu),但是他必須了解輸入輸出端口,這樣他才能夠使用我們設(shè)計的電路。正如我們購買了一臺電腦,我們不必拆開機箱,去了解機箱內(nèi)部的構(gòu)造,但我們一定要閱讀使用說明,掌握如何使用這臺電腦,讓它為我們工作。輸入輸出端口是設(shè)計者服務(wù)于用戶的窗口。明確了輸入輸出端口,可以界定電路的基本功能。設(shè)計者通過輸入輸出端口,在最開始時就可對整個電路的功能進行明確定義。在定義了輸入輸出端口后,這個模塊就形成了一個封閉的環(huán)境,設(shè)計者下一步可以專注于設(shè)計電路來實現(xiàn)輸入輸出端口界定的功能。二是,可以對設(shè)計化整為零。在戰(zhàn)爭中有一個策略叫做“各個擊破”,外國人稱為“divide and conquer”,也叫做分而殲之。我們面對的電路功能是非常復(fù)雜的,如果把它們分成多個帶有輸入輸出端口的模塊,則可以把復(fù)雜的電路分為多個簡單的電路。在集中精力完成一個簡單模塊以后,接著設(shè)計下一個簡單模塊。等到所有模塊完成以后,整體連接在一起,就實現(xiàn)了設(shè)計復(fù)雜電路的目的。

編輯推薦

  國內(nèi)首本從Verilog設(shè)計與實現(xiàn)角度全方位剖析ARM架構(gòu)的經(jīng)典著作  僅用1800行代碼勾勒出ARM9的核心部分,并結(jié)合FPGA運行uClinux操作系統(tǒng)  既有ARM內(nèi)核實現(xiàn)的分析,又有開發(fā)工具鏈的實戰(zhàn)指導(dǎo),極具可操作性

名人推薦

自己設(shè)計一個CPU,并親眼看到它可以運行程序,這永遠是計算機教學(xué)中最令人興奮且最具挑戰(zhàn)性的事情。本書以CPU中日益占據(jù)主流的ARM指令集作為目標系統(tǒng),貫穿從流水線設(shè)計原理到軟件系統(tǒng)仿真,再到FPGA實現(xiàn)等諸多環(huán)節(jié),使自行設(shè)計的兼容ARM9指令集的CPU可以運行,內(nèi)容非常精彩。本書以通俗易懂的文字詳細闡述了涉及的眾多相關(guān)知識,并應(yīng)用這些知識進行實戰(zhàn)設(shè)計。本書可作為高校計算機組成或體系結(jié)構(gòu)課程以及微機原理課程的參考教材和實驗教材。 ——Xilinx大學(xué)計劃經(jīng)理 謝凱年 本書既有高屋建瓴的ARM內(nèi)核介紹與實現(xiàn),又有腳踏實地的開發(fā)工具鏈實戰(zhàn)指導(dǎo),基本上一冊在手便可獨自實踐。對于沒有FPGA開發(fā)基礎(chǔ)知識的初學(xué)者,可以從Verilog編程開始,首先掌握RTL語言設(shè)計和ModelSim仿真,這基本具備了從業(yè)人員的必要技能;其次通過學(xué)習(xí)ARM體系結(jié)構(gòu),讀者可以親自動手編寫僅有1800行的精簡ARM內(nèi)核,這相當于擁有了具體產(chǎn)品的設(shè)計經(jīng)驗;再次通過綜合和布局布線,在FPGA上完成硬件實現(xiàn);最后利用嵌入式開發(fā)工具移植操作系統(tǒng)、撰寫軟件代碼,實現(xiàn)一個軟硬件協(xié)同工作的SoC系統(tǒng)。如此完整的設(shè)計流程,即使是工作多年的從業(yè)人員也未必有機會能夠在實踐中一一體驗,而廣大讀者通過閱讀本書,就能輕松享受這一過程。 ——socvista社區(qū)站長,資深I(lǐng)C設(shè)計工程師 Kobe 這是一本關(guān)于Arduino及其開發(fā)方法的書。本書內(nèi)容涵蓋廣泛,但又不失重點。本書是扎實的功底、寬闊的眼界、不滅的激情和濃厚興趣凝聚而成的精品。作者駕輕就熟地引領(lǐng)讀者探討當今最流行的ARM處理器的結(jié)構(gòu)與設(shè)計,而不是簡單的ARM處理器的應(yīng)用;通過組合一系列FREE軟件工具鏈,指導(dǎo)獨立設(shè)計者進入更深的設(shè)計范疇:設(shè)計和測試一個流行的ARM處理器,并讓它在主流低成本FPGA平臺上運行,而且還為它裝備了一個嵌入式操作系統(tǒng)。本書通過一個完整而簡潔的流程,帶領(lǐng)讀者穿梭于IC與IT之間。推薦電子、計算機、微電子等專業(yè)的高年級本科生和研究生將本書作為輔導(dǎo)用書,本書可以讓讀者通過專業(yè)水準的實踐環(huán)節(jié)迅速提升對已有專業(yè)知識的認識并融會貫通。 ——Digilent中國公司總經(jīng)理 趙峰

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    兼容ARM9的軟核處理器設(shè)計 PDF格式下載


用戶評論 (總計5條)

 
 

  •   【黑】核心部分內(nèi)容少, 前后章節(jié)含金量低, 貼代碼, 貼截圖, 價格高?!炯t】書的名字好
  •   剛剛看了一點點,內(nèi)容上并沒有想象的那么好
  •   其實我是剛想玩FPGA,才買的這本書。自己對FPGA技術(shù)也不是很懂啦,說必讀是表示非常喜歡這本書。設(shè)計處理器的牛逼技術(shù),翻看了幾次,對處理器的結(jié)構(gòu)功能有了全面的認識。對FPGA技術(shù)也越發(fā)感興趣。
  •   不錯,很好,喜歡 ?。?/li>
  •   雖然內(nèi)容主體是比較高深的處理器設(shè)計,雖然作者是資深的數(shù)字IC設(shè)計人員,但是,本書寫得絕對是通俗易懂,只要稍微掌握了一點Verilog語法,同時具備數(shù)字電路基礎(chǔ)知識,即可輕松品讀這一佳作,爽哉爽哉啊。作者在設(shè)計時有很多小技巧,很適合學(xué)習(xí)借鑒!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7