EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù),是以可編程邏輯器件為設(shè)計(jì)載體、以硬件描述語(yǔ)言為系統(tǒng)邏輯描述的主要表達(dá)方式,以計(jì)算機(jī)為工作平臺(tái),以EDA工具軟件為開(kāi)發(fā)環(huán)境,自動(dòng)完成電子系統(tǒng)設(shè)計(jì)的全過(guò)程。EDA技術(shù)已經(jīng)發(fā)展成為電子系統(tǒng)設(shè)計(jì)者完成電子系統(tǒng)設(shè)計(jì)的重要工具。
本教材適用于高職高專(zhuān)電類(lèi)專(zhuān)業(yè)和本科非電子信息類(lèi)專(zhuān)業(yè)。全書(shū)分為兩篇,第一篇介紹FPGA/CPLD的基礎(chǔ)知識(shí),共分為3個(gè)項(xiàng)目。分別講解了FPGA/CPLD的基本結(jié)構(gòu)、VHDL語(yǔ)言的基本知識(shí)和FPGA/CPLD的開(kāi)發(fā)環(huán)境。基礎(chǔ)知識(shí)以“必需、夠用”為原則。第二篇側(cè)重應(yīng)用開(kāi)發(fā),共分為9個(gè)項(xiàng)目,依據(jù)CDIO理念,把相關(guān)知識(shí)融入項(xiàng)目中學(xué)習(xí)。所選項(xiàng)目難度由易到難,項(xiàng)目4~項(xiàng)目9為小型簡(jiǎn)單項(xiàng)目,訓(xùn)練學(xué)生基本的VHDL程序設(shè)計(jì)能力,掌握VHDL程序結(jié)構(gòu)和VHDL并行語(yǔ)句與順序語(yǔ)句。項(xiàng)目10~項(xiàng)目12為綜合實(shí)用型項(xiàng)目,訓(xùn)練學(xué)生復(fù)雜VHDL程序設(shè)計(jì)能力,掌握VHDL層次化設(shè)計(jì),綜合項(xiàng)目基本覆蓋課程的主要內(nèi)容。通過(guò)本課程的學(xué)習(xí),學(xué)生能夠熟練使用EDA開(kāi)發(fā)工具,具備初步的VHDL程序設(shè)計(jì)能力,能夠利用FPGA/CPLD器件完成電子產(chǎn)品的開(kāi)發(fā)。同時(shí),作為現(xiàn)代企業(yè)所需要的高技能人才的社會(huì)能力,也能夠通過(guò)該門(mén)課程的學(xué)習(xí)得以提升。
本教材的主要特色有以下幾點(diǎn)。
(1) 體現(xiàn)基于CDIO的項(xiàng)目化教學(xué)的工程教育理念。以項(xiàng)目為主線(xiàn)讓學(xué)生在做項(xiàng)目的過(guò)程中學(xué)習(xí)必要的專(zhuān)業(yè)基礎(chǔ)知識(shí),基礎(chǔ)知識(shí)以“必需、夠用”為原則,加強(qiáng)學(xué)生學(xué)習(xí)能力的培養(yǎng),注重培養(yǎng)學(xué)生應(yīng)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力,指導(dǎo)學(xué)生循序漸進(jìn)地完成好一個(gè)個(gè)精選的、適合于多數(shù)學(xué)生的工程項(xiàng)目,使學(xué)生在做項(xiàng)目的過(guò)程中提高項(xiàng)目構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)行的能力,然后再運(yùn)用這種能力去解決新的工程實(shí)際問(wèn)題,從而提高適應(yīng)工作環(huán)境和技術(shù)發(fā)展變化的能力。
(2) 行業(yè)企業(yè)工程技術(shù)人員參與教材編寫(xiě)。聘請(qǐng)行業(yè)企業(yè)工程技術(shù)人員參與教材編寫(xiě),可得到更多的先進(jìn)技術(shù)的支持,使教材內(nèi)容更具有新意; 獲得更多的來(lái)源于工程實(shí)際的案例資源; 把他們豐富的工程實(shí)踐經(jīng)驗(yàn)引入教材,使教材更貼近于行業(yè)企業(yè)的應(yīng)用實(shí)際。
本書(shū)緊密結(jié)合高職高專(zhuān)學(xué)生的實(shí)際,選材精煉、突出實(shí)踐、講究實(shí)用,不僅可以作為高職高專(zhuān)類(lèi)學(xué)生的教材,還可作為高職高專(zhuān)學(xué)生全國(guó)電子設(shè)計(jì)競(jìng)賽的培訓(xùn)教材,對(duì)電子信息類(lèi)專(zhuān)業(yè)的工程技術(shù)人員也有較高的參考價(jià)值。
山東凱文科技職業(yè)學(xué)院韓曉敏老師擔(dān)任本教材主編,負(fù)責(zé)全書(shū)的統(tǒng)稿工作,并編寫(xiě)了項(xiàng)目4~項(xiàng)目7; 山東省計(jì)算中心助理研究員張鵬擔(dān)任副主編,編寫(xiě)了項(xiàng)目8~項(xiàng)目12及3.3節(jié); 江蘇理工學(xué)院劉海妹老師擔(dān)任副主編,編寫(xiě)了項(xiàng)目1、項(xiàng)目2、3.1、3.2節(jié); 山東奧太電氣有限公司張洪亮工程師擔(dān)任參編,在項(xiàng)目的程序調(diào)試和硬件制作方面做了大量工作。
山東大學(xué)張有志教授、張平慧教授為本書(shū)的完成提供了大量支持、幫助,在此表示感謝。
由于信息技術(shù)發(fā)展迅速,其應(yīng)用領(lǐng)域不斷擴(kuò)展,限于編者的常識(shí)水平和知識(shí)范圍,錯(cuò)誤之處在所難免,敬請(qǐng)廣大讀者批評(píng)指正。
編者2014.4
第一篇基 礎(chǔ) 知 識(shí)
項(xiàng)目1了解FPGA/CPLD
1.1FPGA/CPLD的基本結(jié)構(gòu)
1.1.1FPGA的基本結(jié)構(gòu)
1.1.2CPLD的基本結(jié)構(gòu)
1.1.3FPGA和CPLD的比較
1.2Altera的FPGA/CPLD
1.2.1Altera的FPGA
1.2.2Altera的CPLD
1.2.3FPGA/CPLD選型
1.3FPGA/CPLD的開(kāi)發(fā)流程
小結(jié)
課后練習(xí)
項(xiàng)目2學(xué)習(xí)VHDL語(yǔ)言的基本知識(shí)
2.1VHDL程序結(jié)構(gòu)
2.1.1簡(jiǎn)單VHDL程序舉例
2.1.2實(shí)體
2.1.3結(jié)構(gòu)體
2.1.4庫(kù)和程序包
2.1.5配置
2.2VHDL的語(yǔ)言要素
2.2.1語(yǔ)法規(guī)則
2.2.2標(biāo)識(shí)符
2.2.3數(shù)據(jù)類(lèi)型
2.2.4運(yùn)算操作符
2.3VHDL基本語(yǔ)句
2.3.1順序語(yǔ)句
2.3.2并行語(yǔ)句
2.3.3子程序
小結(jié)
課后練習(xí)
項(xiàng)目3熟悉FPGA/CPLD的開(kāi)發(fā)環(huán)境
3.1常用開(kāi)發(fā)軟件
3.2Quartus Ⅱ的使用
3.2.1Quartus Ⅱ的用戶(hù)界面
3.2.2設(shè)計(jì)輸入
3.2.3設(shè)計(jì)編譯
3.2.4設(shè)計(jì)仿真
3.2.5器件編程
3.3DE2開(kāi)發(fā)板
3.3.1DE2開(kāi)發(fā)板簡(jiǎn)介
3.3.2DE2開(kāi)發(fā)板的使用
小結(jié)
課后練習(xí)
第二篇應(yīng) 用 開(kāi) 發(fā)
項(xiàng)目4門(mén)電路設(shè)計(jì)
4.1基本邏輯門(mén)的設(shè)計(jì)
4.1.1設(shè)計(jì)要求
4.1.2構(gòu)思——方案選擇
4.1.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
4.1.4實(shí)現(xiàn)——編輯、編譯
4.1.5運(yùn)行——仿真、編程測(cè)試
4.2三態(tài)門(mén)的設(shè)計(jì)
4.2.1設(shè)計(jì)要求
4.2.2構(gòu)思——方案選擇
4.2.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
4.2.4實(shí)現(xiàn)——編輯、編譯
4.2.5運(yùn)行——仿真、編程測(cè)試
小結(jié)
課后習(xí)題
項(xiàng)目5編碼器設(shè)計(jì)
5.1普通編碼器的設(shè)計(jì)
5.1.1設(shè)計(jì)要求
5.1.2構(gòu)思——方案選擇
5.1.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
5.1.4實(shí)現(xiàn)——編輯、編譯
5.1.5運(yùn)行——仿真、編程測(cè)試
5.2優(yōu)先編碼器的設(shè)計(jì)
5.2.1設(shè)計(jì)要求
5.2.2構(gòu)思——方案選擇
5.2.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
5.2.4實(shí)現(xiàn)——編輯、編譯
5.2.5運(yùn)行——仿真、編程測(cè)試及結(jié)果分析
小結(jié)
課后練習(xí)
項(xiàng)目6譯碼器設(shè)計(jì)
6.13?8譯碼器的設(shè)計(jì)
6.1.1設(shè)計(jì)要求
6.1.2構(gòu)思——方案選擇
6.1.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
6.1.4實(shí)現(xiàn)——編輯、編譯
6.1.5運(yùn)行——仿真、編程測(cè)試
6.2二?十進(jìn)制BCD譯碼器的設(shè)計(jì)
6.2.1設(shè)計(jì)要求
6.2.2構(gòu)思——方案選擇
6.2.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
6.2.4實(shí)現(xiàn)——編輯、編譯
6.2.5運(yùn)行——仿真、編程測(cè)試
小結(jié)
課后練習(xí)
項(xiàng)目7觸發(fā)器設(shè)計(jì)
7.1同步RS觸發(fā)器的設(shè)計(jì)
7.1.1設(shè)計(jì)要求
7.1.2構(gòu)思——方案選擇
7.1.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
7.1.4實(shí)現(xiàn)——編輯、編譯
7.1.5運(yùn)行——仿真、編程測(cè)試
7.2同步復(fù)位D觸發(fā)器的設(shè)計(jì)
7.2.1設(shè)計(jì)要求
7.2.2構(gòu)思——方案選擇
7.2.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
7.2.4實(shí)現(xiàn)——編輯、編譯
7.2.5運(yùn)行——仿真、編程測(cè)試
小結(jié)
課后練習(xí)
項(xiàng)目8計(jì)數(shù)器設(shè)計(jì)
8.1同步計(jì)數(shù)器設(shè)計(jì)
8.1.1設(shè)計(jì)要求
8.1.2預(yù)備知識(shí)
8.1.3構(gòu)思——方案選擇
8.1.4設(shè)計(jì)——編寫(xiě)VHDL源程序
8.1.5實(shí)現(xiàn)——編譯與仿真
8.1.6運(yùn)行——編程測(cè)試與結(jié)果分析
8.2異步計(jì)數(shù)器設(shè)計(jì)
8.2.1設(shè)計(jì)要求
8.2.2預(yù)備知識(shí)
8.2.3構(gòu)思——方案選擇
8.2.4設(shè)計(jì)——編寫(xiě)VHDL源程序
8.2.5實(shí)現(xiàn)——編譯與仿真
8.2.6運(yùn)行——編程測(cè)試與結(jié)果分析
小結(jié)
課后練習(xí)
項(xiàng)目9分頻器設(shè)計(jì)
9.1占空比與分頻系數(shù)可調(diào)的分頻器設(shè)計(jì)
9.1.1設(shè)計(jì)要求
9.1.2預(yù)備知識(shí)
9.1.3構(gòu)思——方案選擇
9.1.4設(shè)計(jì)——編寫(xiě)VHDL源程序
9.1.5實(shí)現(xiàn)——編譯與仿真
9.1.6運(yùn)行——編程測(cè)試與結(jié)果分析
9.2占空比為50%的奇數(shù)分頻器設(shè)計(jì)
9.2.1設(shè)計(jì)要求
9.2.2構(gòu)思——提出設(shè)計(jì)方案
9.2.3設(shè)計(jì)——VHDL源程序設(shè)計(jì)
9.2.4實(shí)現(xiàn)——編譯與仿真
9.2.5運(yùn)行——編程測(cè)試與結(jié)果分析
小結(jié)
課后練習(xí)
項(xiàng)目10電梯控制器
10.1設(shè)計(jì)要求
10.2必備知識(shí)
10.2.1狀態(tài)機(jī)的基本概念
10.2.2狀態(tài)機(jī)的VHDL設(shè)計(jì)
10.3項(xiàng)目實(shí)施
10.3.1構(gòu)思——總體方案設(shè)計(jì)
10.3.2設(shè)計(jì)——編寫(xiě)各模塊的VHDL源程序
10.3.3實(shí)現(xiàn)——編譯與仿真
10.3.4運(yùn)行——編程測(cè)試與結(jié)果分析
小結(jié)
項(xiàng)目11交通燈控制器
11.1設(shè)計(jì)要求
11.2構(gòu)思——總體方案確定
11.3設(shè)計(jì)——VHDL編程
11.3.1分頻模塊設(shè)計(jì)
11.3.2控制模塊設(shè)計(jì)
11.3.3顯示模塊設(shè)計(jì)
11.3.4頂層設(shè)計(jì)
11.4實(shí)現(xiàn)——硬件編程
11.5運(yùn)行——測(cè)試結(jié)果分析
小結(jié)
項(xiàng)目12簡(jiǎn)單微處理器設(shè)計(jì)與實(shí)現(xiàn)
12.1設(shè)計(jì)要求
12.2預(yù)備知識(shí)
12.2.1微處理器的硬件系統(tǒng)
12.2.2微處理器的指令系統(tǒng)
12.3構(gòu)思——設(shè)計(jì)思路與方案
12.4設(shè)計(jì)——VHDL源程序設(shè)計(jì)
12.5實(shí)現(xiàn)——編譯與仿真
12.6運(yùn)行——編程測(cè)試與結(jié)果分析
小結(jié)
參考文獻(xiàn)