




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Quartus六十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)
基于Quartus六十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)EDA技術(shù)實(shí)踐課程設(shè)計(jì)課程課程EDA技術(shù)實(shí)踐課程設(shè)計(jì)題目六十進(jìn)制計(jì)數(shù)器院系電氣信息工程學(xué)院電氣系專(zhuān)業(yè)班級(jí)學(xué)生姓名學(xué)生學(xué)號(hào)指導(dǎo)教師2014年7月25日EDA技術(shù)實(shí)踐課程設(shè)計(jì)任務(wù)書(shū)課程EDA技術(shù)實(shí)踐課程設(shè)計(jì)題目六十進(jìn)制計(jì)數(shù)器專(zhuān)業(yè)姓名學(xué)號(hào)主要內(nèi)容:利用QuartusII設(shè)計(jì)一個(gè)六十進(jìn)制計(jì)數(shù)器。該電路是采用整體置數(shù)法接成的六十進(jìn)制計(jì)數(shù)器.首先需要兩片74160接成一百進(jìn)制的計(jì)數(shù)器,然后將電路的59狀態(tài)譯碼產(chǎn)生LD′=0信號(hào),同時(shí)加到兩片74160上,在下一個(gè)計(jì)數(shù)脈沖(第60個(gè)計(jì)數(shù)脈沖)到達(dá)時(shí),將0000同時(shí)置入兩片74160中,從而得到六十進(jìn)制計(jì)數(shù)器。主要要求如下:(1)每隔1個(gè)周期脈沖,計(jì)數(shù)器增1;(2)當(dāng)計(jì)數(shù)器遞增到59時(shí),進(jìn)位端波形發(fā)生跳變,說(shuō)明計(jì)數(shù)器產(chǎn)生進(jìn)位信號(hào),之后計(jì)數(shù)器會(huì)自動(dòng)返回到00并重新計(jì)數(shù);(3)本設(shè)計(jì)主要設(shè)備是兩片74160同步十進(jìn)制計(jì)數(shù)器,時(shí)鐘信號(hào)通過(guò)建立波形文件得以提供。主要參考資料:[1]朱正偉.EDA技術(shù)及應(yīng)用[M]。第2版.北京:清華大學(xué)出版社,2013。[2]李國(guó)洪。EDA技術(shù)與實(shí)驗(yàn)[M]。北京:機(jī)械工業(yè)出版社,2009。[3]陳忠平,高金定,高見(jiàn)芳.基于QuartusII的FPGA/CPLD設(shè)計(jì)與實(shí)踐[M]。北京:電子工業(yè)出版社,2010.[4]楊頌華。數(shù)字電子技術(shù)基礎(chǔ)[M].第2版.西安:西安電子科技大學(xué)出版社,2009.[5]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M]。第5版。北京:高等教育出版社,2006。[6]康華光。電子技術(shù)基礎(chǔ):數(shù)字部分[M]。北京:高等教育出版社,2000。完成期限2014.7。21—-2014。7.25指導(dǎo)教師專(zhuān)業(yè)負(fù)責(zé)人2014年7月18日目錄TOC\o”1-2”\h\z\uHYPERLINK\l”_Toc393917491"1設(shè)計(jì)1HYPERLINK\l”_Toc393917492"2方案選擇與電路原理圖的設(shè)計(jì)12。1單元電路一:十進(jìn)制計(jì)數(shù)器電路(個(gè)位)2HYPERLINK\l”_Toc393917494"2.2單元電路二:十進(jìn)制計(jì)數(shù)器(十位)3HYPERLINK\l”_Toc393917495"2。3單元電路三:置數(shù)與進(jìn)位電路33。2電路圖的繪制4HYPERLINK\l”_Toc393917500”4編譯設(shè)計(jì)文件55仿真設(shè)計(jì)文件66總結(jié)10參考文獻(xiàn)111設(shè)計(jì)六十進(jìn)制計(jì)數(shù)器的功能要求:(1)每隔1個(gè)周期脈沖,計(jì)數(shù)器增1;(2)當(dāng)計(jì)數(shù)器遞增到59時(shí),進(jìn)位端波形發(fā)生跳變,說(shuō)明計(jì)數(shù)器產(chǎn)生進(jìn)位信號(hào),之后計(jì)數(shù)器會(huì)自動(dòng)返回到00并重新計(jì)數(shù);(3)本設(shè)計(jì)主要設(shè)備是兩片74160同步十進(jìn)制計(jì)數(shù)器,時(shí)鐘信號(hào)通過(guò)建立波形文件得以提供。圖1.1同步十進(jìn)制計(jì)數(shù)器打開(kāi)QuartusII軟件,建立一個(gè)項(xiàng)目文件,以畫(huà)原理圖為設(shè)計(jì)方法,再新建一個(gè)block文件:點(diǎn)擊New,在DeviceDesignFiles標(biāo)簽下選擇第二項(xiàng),點(diǎn)擊OK。2方案選擇與電路原理圖的設(shè)計(jì)十進(jìn)制計(jì)數(shù)器(個(gè)位)十進(jìn)制計(jì)數(shù)器(十位)進(jìn)位置數(shù)時(shí)鐘脈沖使用具有一定頻率的時(shí)鐘信號(hào)作為計(jì)數(shù)器的時(shí)鐘脈沖作為同步控制信號(hào),整體電路通過(guò)兩片74160與其他門(mén)電路輔助等單元電路構(gòu)成以實(shí)現(xiàn)置數(shù)進(jìn)位功能。圖2。1十進(jìn)制計(jì)數(shù)器(個(gè)位)十進(jìn)制計(jì)數(shù)器(十位)進(jìn)位置數(shù)時(shí)鐘脈沖圖2。1電路原理框圖2.1單元電路一:十進(jìn)制計(jì)數(shù)器電路(個(gè)位)本電路采用74160作為十進(jìn)制計(jì)數(shù)器,它是一個(gè)具有異步清零、同步置數(shù)、可以保持狀態(tài)不變的十進(jìn)制上升沿計(jì)數(shù)器。每輸入10個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器便工作一個(gè)循環(huán),并且在進(jìn)位端RCO產(chǎn)生一個(gè)進(jìn)位輸出信號(hào)。其功能表如表2—1所示,連接方式如圖2。2所示。此片工作時(shí)進(jìn)位端RCO在沒(méi)有進(jìn)位時(shí)RCO=0,因此第二片ENP·ENT=0,第二片不工作。表2—1同步十進(jìn)制計(jì)數(shù)器功能表CLKRD′LD′ENPENT工作狀態(tài)×0×××置零↑10××預(yù)置數(shù)×1101保持×11×0保持↑1111計(jì)數(shù)在新建好的block文件的圖形編輯窗口中雙擊鼠標(biāo),或點(diǎn)擊圖中“符號(hào)工具"按鈕,或者選擇菜單Edit下的InsertSymbol命令,即可對(duì)元件進(jìn)行選擇.選擇元件庫(kù)中的others—maxplus2—74160。點(diǎn)擊工具欄中OrthogonalNodeTool按鈕便可以對(duì)端子間進(jìn)行連線(xiàn),其中值得注意的是,點(diǎn)擊工具欄中OrthogonalBusTool按鈕可以通過(guò)總線(xiàn)進(jìn)行連接,如圖2.2中四個(gè)輸出端QA、QB、QC、QD可以通過(guò)一根總線(xiàn)連接但可表示四位輸出,而輸出符號(hào)Output的Pinname應(yīng)改為Q0[3。.0]。接地時(shí)鐘脈沖接地時(shí)鐘脈沖高電平接下片置數(shù)端進(jìn)位端,控制下片ENP、ENT端輸出端,利用總線(xiàn)接Input輸出符號(hào)圖2.2十進(jìn)制計(jì)數(shù)器電路(個(gè)位)2.2單元電路二:十進(jìn)制計(jì)數(shù)器(十位)本電路同樣采用74160作為十進(jìn)制計(jì)數(shù)器,如圖2.3所示。當(dāng)?shù)谝黄M(jìn)位端RCO進(jìn)位即RCO=1時(shí),第二片ENP·ENT=1,第二片開(kāi)始計(jì)數(shù)工作,第一片每計(jì)10個(gè)數(shù),第二片加1(十位),當(dāng)加到59時(shí),由輔助門(mén)電路接入置數(shù)端使計(jì)數(shù)器輸出置0000,并重新開(kāi)始循環(huán)。由于第二片(十位)74160輸出端線(xiàn)路并不繁雜,因此本單元電路的四位輸出端可分別直接連接輸出符號(hào)Output,以便于觀(guān)察波形。輸出端,接Input輸出符號(hào)接高電平或懸空接上片進(jìn)位端接上片置數(shù)端時(shí)鐘脈沖接地接高電平輸出端,接Input輸出符號(hào)接高電平或懸空接上片進(jìn)位端接上片置數(shù)端時(shí)鐘脈沖接地接高電平圖2。3十進(jìn)制計(jì)數(shù)器電路(十位)2.3單元電路三:置數(shù)與進(jìn)位電路通過(guò)創(chuàng)建波形文件,產(chǎn)生具有一定頻率的時(shí)鐘脈沖提供觸發(fā)信號(hào),通常稱(chēng)這個(gè)觸發(fā)信號(hào)為時(shí)鐘信號(hào)(CLOCK),記做CLK。當(dāng)系統(tǒng)中有多個(gè)器件需要同時(shí)工作時(shí),就可以用同一個(gè)CLK信號(hào)作為同步控制信號(hào),比如本電路中用到的同步十進(jìn)制計(jì)數(shù)器(74160).在時(shí)鐘脈沖的觸發(fā)作用下,當(dāng)?shù)诙ㄊ唬?4160加到59時(shí),便由此單元門(mén)電路接入置數(shù)端使計(jì)數(shù)器輸出置0000,并重新開(kāi)始循環(huán)。點(diǎn)擊圖中“符號(hào)工具”按鈕,或者選擇菜單Edit下的InsertSymbol命令,在元件庫(kù)中選擇primitives—logic—nand4和not.其中nand4表示具有四個(gè)輸入端的與非門(mén),輔助構(gòu)成六十進(jìn)制計(jì)數(shù)器;not為非門(mén),實(shí)現(xiàn)反相功能,并能產(chǎn)生進(jìn)位輸出(高電平)。進(jìn)位信號(hào)計(jì)數(shù)器個(gè)位輸出端計(jì)數(shù)器十位輸出端進(jìn)位信號(hào)計(jì)數(shù)器個(gè)位輸出端計(jì)數(shù)器十位輸出端圖2。4置數(shù)與進(jìn)位電路3元件選取與電路圖的繪制3。1元件選取元件的選取包括同步十進(jìn)制計(jì)數(shù)器、與非門(mén)、反相器等,具體元件名稱(chēng)、型號(hào)、數(shù)量及用途如表3—1所示。表3-1元件的選取名稱(chēng)型號(hào)數(shù)量用途同步十進(jìn)制計(jì)數(shù)器741602片聯(lián)成六十進(jìn)制計(jì)數(shù)器四端子與非門(mén)NAND41個(gè)輔助構(gòu)成計(jì)數(shù)器反相器NOT1個(gè)實(shí)現(xiàn)反相(非)的功能3.2電路圖的繪制首先用兩片74160接成一百進(jìn)制的計(jì)數(shù)器,然后將電路的第59狀態(tài)譯碼產(chǎn)生LD′=0信號(hào),同時(shí)加到兩片74160上,在下一個(gè)計(jì)數(shù)脈沖(第60個(gè)計(jì)數(shù)脈沖)到達(dá)時(shí),將0000同時(shí)置入兩片74160中,從而得到六十進(jìn)制計(jì)數(shù)器。六十進(jìn)制計(jì)數(shù)器的狀態(tài)轉(zhuǎn)換圖如圖3。1所示,完整原理圖如圖3。2所示。00→01→02→03→04→05→06→07→08→09→10→11→12→13→14→15↓30←29←28←27←26←25←24←23←22←21←20←19←18←17←16↓31→32→33→34→35→36→37→38→39→40→41→42→43→44↓59←58←57←56←55←54←53←52←51←50←49←48←47←46←45圖3.1狀態(tài)轉(zhuǎn)換圖圖3.2六十進(jìn)制計(jì)數(shù)器原理圖4編譯設(shè)計(jì)文件QuartusII編譯器的主要任務(wù)是對(duì)設(shè)計(jì)項(xiàng)目進(jìn)行檢查并完成邏輯綜合,同時(shí)將項(xiàng)目最終設(shè)計(jì)結(jié)果生成器件的下載文件。編譯開(kāi)始前,可以先對(duì)項(xiàng)目的參數(shù)進(jìn)行設(shè)置。編譯完成以后,編譯報(bào)告窗口CompilationReport會(huì)列出項(xiàng)目文件編譯的相關(guān)信息的清單,如編譯的頂層文件名、目標(biāo)芯片的信號(hào)、引腳數(shù)目等等.全編譯的過(guò)程包括分析與綜合(Analysis&Synthesis)、適配(Fitter)、編程(Assembler)、時(shí)序分析(ClassicalTimingAnalysis)這4個(gè)環(huán)節(jié),而這4個(gè)環(huán)節(jié)各自對(duì)應(yīng)相應(yīng)的菜單命令,而且可以單獨(dú)分步進(jìn)行,也就是分步編譯.編譯工作非常簡(jiǎn)單,單擊快捷菜單中的StartCompilation按鈕,或者單擊菜單欄中Processing—StartCompilation,即可進(jìn)行編譯操作。編譯成功會(huì)彈出相應(yīng)的對(duì)話(huà)框,內(nèi)容為FullCompilationwassuccessful,如圖4.1所示。圖4.1編譯成功5仿真設(shè)計(jì)文件1、建立波形文件建立波形文件用來(lái)為設(shè)計(jì)產(chǎn)生輸入激勵(lì)信號(hào)。利用QuartusII波形編輯器可以創(chuàng)建矢量波形文件,后綴為.vwf。步驟如下:(1)選擇QuartusII主界面File菜單下的New命令,彈出新建對(duì)話(huà)框(如圖5。1所示);圖5。1建立波形文件(2)在新建對(duì)話(huà)框中選擇OtherFile標(biāo)簽頁(yè),從中選擇VectorWaveformFile,點(diǎn)擊OK按鈕,則打開(kāi)一個(gè)空的波形編輯器窗口(如圖5.2所示);圖5.2空白波形編輯器(3)將波形文件保存,并將原理圖文件和波形文件一并加到項(xiàng)目之下(如圖5。3所示),點(diǎn)擊省略號(hào)按鈕,選擇波形文件和原理圖文件,點(diǎn)擊AddAll即可.圖5.3添加波形文件和原理圖文件2、輸入信號(hào)節(jié)點(diǎn)(1)執(zhí)行Edit菜單中的InsertNodeorBus命令,或者在波形編輯器在編Name列的空白處單擊鼠標(biāo)右鍵彈出InsertNodeorBus對(duì)話(huà)框,如圖5。4所示。圖5。4添加節(jié)點(diǎn)或總線(xiàn)(1)(2)點(diǎn)擊InsertNodeorBus對(duì)話(huà)框中的NodeFinder...按鈕,彈出NodeFinder對(duì)話(huà)框,在窗口中添加全部信號(hào)節(jié)點(diǎn),如圖5.5所示。圖5。5添加節(jié)點(diǎn)或總線(xiàn)(2)3、編輯輸入信號(hào)右鍵點(diǎn)擊CLK—Insert—Value—Clock即可編輯時(shí)鐘輸入信號(hào),如圖5。6所示。圖5。6時(shí)鐘信號(hào)的設(shè)置設(shè)置好時(shí)鐘輸入信號(hào)后,將nRD輸入端設(shè)置為高電平,如圖5。7所示。這是由于本電路使用置數(shù)法實(shí)現(xiàn)功能進(jìn)位,因此必須保證清零端始終接收無(wú)效信號(hào)。圖5。7清零端的設(shè)置4、仿真波形文件QuartusII軟件中默認(rèn)的是時(shí)序仿真,如果進(jìn)行功能仿真需要先對(duì)仿真進(jìn)行設(shè)置。六十進(jìn)制計(jì)數(shù)器只需時(shí)序仿真即可辨別其設(shè)計(jì)的功能是否滿(mǎn)足要求。仿真過(guò)程的操作非常簡(jiǎn)單,選擇QuartusII主窗口Processing菜單下的StartSimulation命令,或者直接單擊快捷菜單中的StartSimulation按鈕就可以開(kāi)始進(jìn)行仿真工作了,仿真成功就會(huì)出現(xiàn)如圖5.8所示的對(duì)話(huà)框.圖5.8仿真成功仿真的結(jié)果如圖5。9所示。在時(shí)鐘脈沖的觸發(fā)作用下,可仿真出各個(gè)端子的輸出波形。由時(shí)序圖可看出,若時(shí)鐘輸入脈沖的頻率為f0,則Q00、Q01、Q02、Q03、Q10、Q11、Q12和Q13端輸出脈沖的頻率依次為1/2f0、1/4f0、1/8f0、1/16f0、1/32f0、1/64f0、1/128f0和1/512f0.圖5。9仿真波形仿真結(jié)果分析:由于本六十進(jìn)制計(jì)數(shù)器的時(shí)鐘脈沖的參數(shù)設(shè)置為周期T=5ns,因此進(jìn)位端在t=28。5ns時(shí)輸出進(jìn)位信號(hào),邏輯電平發(fā)生跳變,計(jì)數(shù)器在此時(shí)計(jì)數(shù),如圖5。10所示。圖5.10計(jì)數(shù)進(jìn)位6總結(jié)本課程設(shè)計(jì)就六十進(jìn)制計(jì)數(shù)器系統(tǒng)進(jìn)行原理圖設(shè)計(jì),使用軟件QuartusII進(jìn)行了仿真,驗(yàn)證了設(shè)計(jì)的合理性和可行性。具體內(nèi)容包括:1、設(shè)計(jì)了六十進(jìn)制計(jì)數(shù)器的單元電路和整體電路,包括十進(jìn)制計(jì)數(shù)器單元電路(個(gè)位)、十進(jìn)制計(jì)數(shù)器單元電路(十位)、置數(shù)與進(jìn)位單元電路、整體電路等等,通過(guò)QuartusII平臺(tái)對(duì)數(shù)字電路進(jìn)行設(shè)計(jì),尤其是時(shí)序邏輯電路當(dāng)中最常用的計(jì)數(shù)器。本課程設(shè)計(jì)也是對(duì)日常生活中經(jīng)常用到的數(shù)字電路邏輯器件—六十進(jìn)制計(jì)數(shù)器進(jìn)行設(shè)計(jì),如一小時(shí)六十分鐘,一分鐘六十秒,只要將本設(shè)計(jì)中的時(shí)鐘脈沖的頻率進(jìn)行更改就可以變成一個(gè)計(jì)時(shí)器了,將時(shí)鐘脈沖頻率改為1Hz,這樣每隔1s計(jì)數(shù)器加1,當(dāng)加到59時(shí)計(jì)數(shù)進(jìn)位,如此完成一個(gè)循環(huán),然后計(jì)時(shí)重新開(kāi)始,這便是計(jì)時(shí)器的計(jì)時(shí)功能了;2、根據(jù)設(shè)計(jì)任務(wù)指標(biāo)進(jìn)行了相應(yīng)元件選取,包括同步十進(jìn)制計(jì)數(shù)器、與非門(mén)、反相器等等.在設(shè)計(jì)電路和畫(huà)原理圖的過(guò)程當(dāng)中,得到了老師和同學(xué)的幫助,因此在此次課程設(shè)計(jì)當(dāng)中學(xué)到了很多知識(shí),讓我對(duì)數(shù)字電路的基本器件和它們的工作原理有了更深層次的理解;3、利用QuartusII軟件進(jìn)行了編譯和仿真,仿真結(jié)果表明結(jié)果與理論相匹配;證明本課程設(shè)計(jì)的六十進(jìn)制計(jì)數(shù)器符合基本邏輯功能要求。參考文獻(xiàn)[1]朱正偉。EDA技術(shù)及應(yīng)用[M]。第2版。北京:清華大學(xué)出版社,2013。[2]李國(guó)洪。EDA技術(shù)與實(shí)驗(yàn)[M]。北京:機(jī)械工業(yè)出版社,2009。[3]陳忠平,高金定,高見(jiàn)芳。基于QuartusII的FPGA/CPLD設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2010。[4]楊頌華.數(shù)字電子技術(shù)基礎(chǔ)[M]。第2版。西安:西安電子科技大學(xué)出版社,2009。[5]閻石。數(shù)字電子技術(shù)基礎(chǔ)[M].第5版.北京:高等教育出版社,2006。[6]康華光.電子技術(shù)基礎(chǔ):數(shù)字部分[M].北京:高等教育出版社,2000.東北石油大學(xué)課程設(shè)計(jì)成績(jī)?cè)u(píng)價(jià)表課程名稱(chēng)EDA技術(shù)實(shí)踐課程設(shè)計(jì)題目名稱(chēng)六十進(jìn)制計(jì)數(shù)器學(xué)生姓名學(xué)號(hào)指導(dǎo)教師姓名職稱(chēng)序號(hào)評(píng)價(jià)項(xiàng)目指標(biāo)滿(mǎn)分評(píng)分1工作量、工作態(tài)度和出勤率按期圓滿(mǎn)的完成了規(guī)定的任務(wù),難易程度和工作量符合教學(xué)要求,工作努力,遵守紀(jì)律,出勤率高,工作作風(fēng)嚴(yán)謹(jǐn),善于與他人合作.202課程設(shè)計(jì)質(zhì)量課程設(shè)計(jì)選題合理,計(jì)算過(guò)程簡(jiǎn)練準(zhǔn)確,分析問(wèn)題思路清晰,結(jié)構(gòu)嚴(yán)謹(jǐn),文理通順,撰寫(xiě)規(guī)范,圖表完備正確.453創(chuàng)新工作中有創(chuàng)新意識(shí),對(duì)前人工作有一些改進(jìn)或有一定應(yīng)用價(jià)值.54答辯能正確回答指導(dǎo)教師所提出的問(wèn)題。30總分評(píng)語(yǔ):指導(dǎo)教師:年月日鄭州輕工業(yè)學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)題目:基于FPGA的UART設(shè)計(jì)姓名:王鵬飛院(系):電子信息工程學(xué)院專(zhuān)業(yè)班級(jí):電子信息工程13-01學(xué)號(hào):541301030135指導(dǎo)教師:杜海明成績(jī):時(shí)間:2016年6月21日至2016年6月28日鄭州輕工業(yè)學(xué)院課程設(shè)計(jì)任務(wù)書(shū)題目基于FPGA的UART設(shè)計(jì)專(zhuān)業(yè)、班級(jí)電子信息工程13-01學(xué)號(hào)35姓名王鵬飛主要內(nèi)容、基本要求、主要參考資料等:主要內(nèi)容:要求學(xué)生使用硬件描述語(yǔ)言描述硬件功能,利用FPGA并采用模塊化設(shè)計(jì)方法設(shè)計(jì)UART(通用異步收發(fā)器)的各個(gè)模塊。其中包括波特發(fā)生器,程序控制器,UART數(shù)據(jù)接收器和UART數(shù)據(jù)發(fā)送器,本文采用的外部時(shí)鐘為48MHZ,波特率為9600.在軟件上進(jìn)行設(shè)計(jì)、編譯和仿真。基本要求:掌握FPGA的程序設(shè)計(jì)方法.2、掌握硬件描述語(yǔ)言語(yǔ)法.3、程序設(shè)計(jì)完成后要求在軟件中實(shí)現(xiàn)功能仿真.主要參考資料:1、夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,20032、潘松,王國(guó)棟。VHDL實(shí)用教程「M].成都:電子科技大學(xué)出版社,2003。完成期限:2016。6.21—2016。6.28指導(dǎo)教師簽名:課程負(fù)責(zé)人簽名:2016年6月18日基于FPGA的UART設(shè)計(jì)摘要UART作為RS232協(xié)議的控制接口得到了廣泛的應(yīng)用,將UART的功能集成到FPGA芯片中,可使整個(gè)系統(tǒng)更為靈活、緊湊,減小整個(gè)電路的體積,提高系統(tǒng)的可靠性和穩(wěn)定性.提出了一種基于FPGA的UART的實(shí)現(xiàn)方法,具體描述了發(fā)送、接收等模塊的設(shè)計(jì),恰當(dāng)使用了有限狀態(tài)機(jī),實(shí)現(xiàn)了FPGA上的UART的設(shè)計(jì),給出仿真結(jié)果。關(guān)鍵詞FPGAUART模塊化有限狀態(tài)機(jī)目錄TOC\o”1-3"\h\z\uHYPERLINK\l"_Toc454485273”1FPGA與UART簡(jiǎn)介?11.1FPGA介紹 11。2UART簡(jiǎn)介 12UART工作原理及功能設(shè)計(jì)?3HYPERLINK\l”_Toc454485277"2.1UART工作原理 3HYPERLINK2.2.1波特率發(fā)生器設(shè)計(jì) 42.2.2發(fā)送器設(shè)計(jì) 5HYPERLINK\l”_Toc454485281”2.2.3接收器設(shè)計(jì) 5HYPERLINK\l"_Toc454485282”3.仿真 84總結(jié) 9HYPERLINK\l”_Toc454485284"參考文獻(xiàn) PAGEREF_Toc454485284\h101FPGA與UART簡(jiǎn)介1.1FPGA介紹FPGA(Field-ProgrammableGateArray),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn).FPGA主要特點(diǎn):1)采用FPGA設(shè)計(jì)ASIC電路(專(zhuān)用集成電路),用戶(hù)不需要投片生產(chǎn),就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC電路的中試樣片.3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳.4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。5)FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶(hù)可以根據(jù)不同的配置模式,采用不同的編程方式。加電時(shí),FPGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,FPGA能夠反復(fù)使用.FPGA的編程無(wú)須專(zhuān)用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可.這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。1.2UART簡(jiǎn)介通用異步收發(fā)器(UART)是一種短距離串行通信接口,主要用于計(jì)算機(jī)、微處理器與小型通信網(wǎng)絡(luò)之間的短距離通信。目前通信接口技術(shù)已發(fā)展成為硬件和軟件相結(jié)合的綜合性技術(shù),在嵌入式系統(tǒng)設(shè)計(jì)中,異步串行通信接口已成為必不可少的一部分。隨著FPGA技術(shù)和嵌入式系統(tǒng)的發(fā)展,在單芯片上可以實(shí)現(xiàn)多種功能,雖然目前許多器件已經(jīng)把UART集成在內(nèi),但是要求用單一芯片實(shí)現(xiàn)處理器和控制器等復(fù)雜功能,同時(shí)需要串行通信場(chǎng)合,采用高密度、大容量FPGA器件來(lái)設(shè)計(jì)UART具有很高的實(shí)用價(jià)值。計(jì)算機(jī)內(nèi)部采用并行數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)到Modem,必須經(jīng)過(guò)UART整理才能進(jìn)行異步傳輸,其過(guò)程為:CPU先把準(zhǔn)備寫(xiě)入串行設(shè)備的數(shù)據(jù)放到UART的寄存器(臨時(shí)內(nèi)存塊)中,再通過(guò)FIFO(FirstInputFirstOutput,先入先出隊(duì)列)傳送到串行設(shè)備,若是沒(méi)有FIFO,信息將變得雜亂無(wú)章,不可能傳送到Modem.它是用于控制計(jì)算機(jī)與串行設(shè)備的芯片。有一點(diǎn)要注意的是,它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設(shè)備通信了。作為接口的一部分,UART還提供以下功能:將由計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流.將計(jì)算機(jī)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位,并對(duì)從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn)。在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記。處理由鍵盤(pán)或鼠標(biāo)發(fā)出的中斷信號(hào)(鍵盤(pán)和鼠標(biāo)也是串行設(shè)備).可以處理計(jì)算機(jī)與外部串行設(shè)備的同步管理問(wèn)題。有一些比較高檔的UART還提供輸入輸出數(shù)據(jù)的緩沖區(qū),比較新的UART是16550,它可以在計(jì)算機(jī)需要處理數(shù)據(jù)前在其緩沖區(qū)內(nèi)存儲(chǔ)16字節(jié)數(shù)據(jù),而通常的UART是8250.如果您購(gòu)買(mǎi)一個(gè)內(nèi)置的調(diào)制解調(diào)器,此調(diào)制解調(diào)器內(nèi)部通常就會(huì)有16550UART。2UART工作原理及功能設(shè)計(jì)2。1UART工作原理UART是一種串行數(shù)據(jù)總線(xiàn),用于異步通信,并且雙向通信,可實(shí)現(xiàn)全雙工發(fā)送和接收?;镜腢ART只需要兩條信號(hào)線(xiàn)(TXD,RXD)和一條地線(xiàn)就可以完成數(shù)據(jù)的互相通信,接收和發(fā)送互不干擾,這樣就大大節(jié)省了傳輸費(fèi)用。由于UART是異步通信,所以需要對(duì)數(shù)據(jù)進(jìn)行同步.UART發(fā)送/接收數(shù)據(jù)的傳輸格式如圖1所示,一個(gè)字符單位由開(kāi)始位、數(shù)據(jù)位、校驗(yàn)位、停止位組成(其中校驗(yàn)位可供選)。發(fā)送或接收一個(gè)完整的字節(jié)信息,首先是一個(gè)作為起始位的邏輯“o”位,接著是8個(gè)數(shù)據(jù)位,然后是停止位邏輯“1"位,數(shù)據(jù)線(xiàn)空閑時(shí)為高或“1”狀態(tài)。在字符的8位數(shù)據(jù)部分,先發(fā)送數(shù)據(jù)的最低位,最后發(fā)送最高位.每位持續(xù)時(shí)間是固定的,由發(fā)送器本地時(shí)鐘控制,每秒發(fā)送的數(shù)據(jù)位個(gè)數(shù),即為“波特率”.起始位和停止位起著很重要的作用。顯然,它們標(biāo)志每個(gè)字符的開(kāi)始和結(jié)束,但更重要的是他們使接收器能把他的局部時(shí)鐘與每個(gè)新開(kāi)始接收的字符再同步.異步通信沒(méi)有可參照的時(shí)鐘信號(hào),發(fā)送器隨時(shí)都可能發(fā)送數(shù)據(jù),任何時(shí)刻串行數(shù)據(jù)到來(lái)時(shí),接收器必須準(zhǔn)確地發(fā)現(xiàn)起始位下降沿的出現(xiàn)時(shí)間,從而正確地采樣緊接著的io或者m位(包括開(kāi)始位、數(shù)據(jù)位和停止位),接收器的時(shí)鐘和發(fā)送器的時(shí)鐘不是同一個(gè),因此,接收器所確定的采樣點(diǎn)的間隔和發(fā)送器所確定的位間隔時(shí)間不同,這點(diǎn)要特別注意。2.2UART功能設(shè)計(jì)異步通信的一幀傳輸經(jīng)歷以下步驟:1)空閑狀態(tài)。發(fā)送方連續(xù)發(fā)送信號(hào),處于信息“1"狀態(tài)。2)開(kāi)始傳輸。發(fā)送方在任何時(shí)刻將傳號(hào)變成空號(hào),即“1"跳變到“0”,并持續(xù)1位時(shí)間表明發(fā)送方開(kāi)始傳輸數(shù)據(jù)。而同時(shí),接收方收到空號(hào)后,開(kāi)始與發(fā)送方同步,并期望收到隨后的數(shù)據(jù)。3)奇偶傳輸。數(shù)據(jù)傳輸之后是可供選擇的奇偶位發(fā)送或接收。4)停止傳輸。最后是發(fā)送或接收的停止位,其狀態(tài)恒為“1”。設(shè)計(jì)的基本原則是保留最主要的功能,基于FPGA的UART系統(tǒng)由波特率時(shí)鐘發(fā)生器、接收器和發(fā)送器3個(gè)子模塊組成,如圖2所示。圖2UART功能框圖2.2。1波特率發(fā)生器設(shè)計(jì)波特率發(fā)生器實(shí)質(zhì)是設(shè)計(jì)一個(gè)分頻器,用于產(chǎn)生和RS232通信同步的時(shí)鐘。在系統(tǒng)中用一個(gè)計(jì)數(shù)器來(lái)完成這個(gè)功能,分頻系數(shù)N決定了波特率的數(shù)值。該計(jì)數(shù)器一般工作在一個(gè)頻率較高的系統(tǒng)時(shí)鐘下,當(dāng)計(jì)數(shù)到N/2時(shí)將輸出置為高電平,再計(jì)數(shù)到N/2的數(shù)值后將輸出置為低電平,如此反復(fù)即可得到占空比50%的波特率時(shí)鐘,具體的波特率依賴(lài)于所使用的系統(tǒng)時(shí)鐘頻率和N的大小。如系統(tǒng)時(shí)鐘頻率是6.4MHz,要求波特率是9600,則16倍波特率時(shí)鐘的周期約等于42個(gè)系統(tǒng)時(shí)鐘周期,則計(jì)數(shù)器取42/2=21時(shí),當(dāng)計(jì)數(shù)溢出時(shí)輸出電平取反就可以得到16倍約定波特率的時(shí)鐘。使用VHDL來(lái)描述波特率發(fā)生器的完整代碼如下:Process(rst,clk6。_4M)ifrst=’0’thencount〈=0;bclkr<='0';elsifrising_edge(clk6_4M)thenif(count=20)count<=0;bclkr<=notbclkr;elsecount〈=count+1;endif;endif;endprocess;2.2。2發(fā)送器設(shè)計(jì)UART發(fā)送器的設(shè)計(jì)較容易,只要每隔一個(gè)發(fā)送周期按照數(shù)據(jù)幀格式及要求的速率輸出數(shù)據(jù)即可。沒(méi)有數(shù)據(jù)要發(fā)送時(shí),發(fā)送數(shù)據(jù)寄存器為空,發(fā)送器處于空閑狀態(tài);當(dāng)檢測(cè)到發(fā)送數(shù)據(jù)寄存器滿(mǎn)信號(hào)后,發(fā)送器及發(fā)送起始位,同時(shí)8?jìng)€(gè)數(shù)據(jù)位被并行裝入發(fā)送移位寄存器停止位緊接著數(shù)據(jù)位指示一幀數(shù)據(jù)結(jié)束。只有發(fā)送數(shù)據(jù)寄存器為空時(shí),RAM中的待發(fā)數(shù)據(jù)才能被裝入、程序中使用計(jì)數(shù)器要保證各位周期定時(shí)正確.2.2.3接收器設(shè)計(jì)接收器的工作過(guò)程如下,串行數(shù)據(jù)幀和接收時(shí)鐘是異步的,發(fā)送來(lái)的數(shù)據(jù)由邏輯1變?yōu)檫壿?可以視為一個(gè)數(shù)據(jù)幀的開(kāi)始。接收器先要捕捉起始位,然而,通信線(xiàn)上的噪音也極有可能使傳號(hào)“1”跳變到空號(hào)“0"。所以接收器以16倍的波特率對(duì)這種跳變進(jìn)行檢測(cè),確定rxd輸入由1到0,邏輯0要8個(gè)bclkr(16倍的波特率時(shí)鐘)周期,才是正常的起始位,而不是噪音引起的,其中若有一次采樣得到的為高電平則認(rèn)為起始信號(hào)無(wú)效,返回初始狀態(tài)重新等待起始信號(hào)的到來(lái)。采到正確的起始位后,就開(kāi)始接收數(shù)據(jù),最可靠的接收應(yīng)該是接收時(shí)鐘的出現(xiàn)時(shí)刻正好對(duì)著數(shù)據(jù)位的中央。由于在起始位檢測(cè)時(shí),己使時(shí)鐘對(duì)準(zhǔn)了位中央,用16倍波特率的時(shí)鐘作為接收時(shí)鐘,就是為了確保在位寬的中心時(shí)間對(duì)接收的位序列進(jìn)行可靠采樣,當(dāng)采樣計(jì)數(shù)器計(jì)數(shù)結(jié)束后所有數(shù)據(jù)位都己經(jīng)輸入完成.最后對(duì)停止位的高電平進(jìn)行檢測(cè),若正確檢測(cè)到高電平,說(shuō)明本幀的各位正確接收完畢,否則出錯(cuò).最后將正確的數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)寄存器中,輸出數(shù)據(jù)。還要輸出一個(gè)數(shù)據(jù)接收標(biāo)志信號(hào)標(biāo)志數(shù)據(jù)接收完。利用有限狀態(tài)機(jī)實(shí)現(xiàn),完整代碼如下:Process(bclkr,reset,rxd_sync)Variablecount:std_logic_vector(3downto0);——-定義中間變量Variablercnt:integer:=0;Variablerbufs:std_logic_vector(7downto0);BeginIfreset=’0'thenState〈=r_start;Count:=”0000”;elsifrising_edge(bclkr)thencasestateiswhenr_start=>ifrxd_sync=’0'thenstate〈=r_center;r_ready<='0’;rcnt:=0;elsestate<=r_start;r_ready<=’0’;endif;whenr_center=〉ifrxd_sync=’0'thenifcount〉="0100”thenstat(yī)e〈=r_wait;count:=”0000”;elsecount:=count+1;state<=r_center;endif;elsestate〈=r_start;endif;whenr_wait=〉ifcount>="1110”thencount:=”0000”;ifrcnt=framlenrthenstat(yī)e<=r_stop;elsestate<=r_sample;endif;elsecount:=count+1;state<=r_wait;endif;whenr_sample=>rbufs(rcnt):=rxd_sync;rcnt:=rcnt+1;state〈=r_wait;whenr_stop=〉r_ready<=’1’;rbuf<=rbufs;state<=r_start;whenothers=>stat(yī)e〈=r_start;endcase;endif;endprocess;3.仿真本設(shè)計(jì)在AlteraCyclone系列的芯片上進(jìn)行了驗(yàn)證,對(duì)發(fā)送模塊和接收模塊的仿真結(jié)果分別如圖3、圖4所示.發(fā)送的數(shù)據(jù)能?chē)?yán)格按照串行通信協(xié)議進(jìn)行傳輸;接收的數(shù)據(jù)也完全正確。用FPGA設(shè)計(jì)UART,可以用片上很少的邏輯單元實(shí)現(xiàn)UART的基本功能。與傳統(tǒng)設(shè)計(jì)相比,能有效減少系統(tǒng)的PCB面積,降低系統(tǒng)的功耗,提高設(shè)計(jì)的穩(wěn)定性和可靠性,充分利用FPGA的剩余資源、并可方便地進(jìn)行系統(tǒng)升級(jí)和移植。圖3發(fā)送模塊仿真圖4接收模塊仿真4總結(jié)該設(shè)計(jì)具有很大的靈活性,通過(guò)調(diào)整波特率發(fā)生器的分頻參數(shù),就可以使其工作在不同的頻率.采用16倍波特率的采樣時(shí)鐘,可以實(shí)時(shí)有效監(jiān)測(cè)數(shù)據(jù)的起始位,并對(duì)數(shù)據(jù)位進(jìn)行中央采樣,從而保證了所采樣數(shù)據(jù)的正確性。該模塊可以作為一個(gè)完整的IP核,靈活地移植進(jìn)各種型號(hào)FPGA中,在實(shí)際應(yīng)用時(shí)也可嵌入到其他系統(tǒng)中,有很好的借鑒和參考價(jià)值。參考文獻(xiàn)1。吳厚航,深入淺出玩轉(zhuǎn)FPGA,北京航空航天大學(xué)出版社,2013年7月。2。于斌,modelsim電子系統(tǒng)分析及仿真,電子工業(yè)出版社,2014年2月.3.潘松黃繼業(yè),EDA技術(shù)實(shí)用教程Verilog版,科學(xué)出版社,2010年7月4.夏宇聞,verilog數(shù)字系統(tǒng)設(shè)計(jì)教程,北京航空航天大學(xué)出版社2013年7月5??等A光,電子技術(shù)基礎(chǔ),高教出版社,2003.6.李莉,AlteraFPGA系統(tǒng)設(shè)計(jì)實(shí)用教程,清華大學(xué)出版社,2014年1月7.吳厚航,FPGA設(shè)計(jì)實(shí)戰(zhàn)演練,清華大學(xué)出版社,2015年1月課程設(shè)計(jì)成績(jī)?cè)u(píng)定表評(píng)定項(xiàng)目?jī)?nèi)容滿(mǎn)分評(píng)分總分學(xué)習(xí)態(tài)度學(xué)習(xí)認(rèn)真,態(tài)度端正,遵守紀(jì)律。10答疑和設(shè)計(jì)情況認(rèn)真查閱資料,勤學(xué)好問(wèn),提出的問(wèn)題有一定的深度,分析解決問(wèn)題的能力較強(qiáng)。40說(shuō)明書(shū)質(zhì)量設(shè)計(jì)方案正確、表達(dá)清楚;設(shè)計(jì)思路、實(shí)驗(yàn)(論證)方法科學(xué)合理;達(dá)到課程設(shè)計(jì)任務(wù)書(shū)規(guī)定的要求;圖、表、文字表達(dá)準(zhǔn)確規(guī)范,上交及時(shí)。40回答問(wèn)題情況回答問(wèn)題準(zhǔn)確,基本概念清楚,有理有據(jù),有一定深度。10總成績(jī)采用五級(jí)分制:優(yōu)、良、中、及格、不及格指導(dǎo)教師評(píng)語(yǔ):簽名:年月日基于AlteraQuartusII的模塊化設(shè)計(jì)應(yīng)用
和ISE不一樣,QuartusII代碼的模塊化視圖并不是你把子模塊例化到頂層模塊以后就能馬上在工程代碼窗口看到一個(gè)清晰的層次圖。而是必須在你編譯后才能夠看到層次化的視圖。
我在這里列舉一個(gè)串口通信(實(shí)驗(yàn)10)的實(shí)例:
編寫(xiě)完該HDL的代碼,還沒(méi)有編譯,此時(shí)在ProjectNavigat(yī)or窗口中只有頂層模塊my_uart_top。
頂層模塊如下(詳細(xì)的注釋代碼請(qǐng)參考相關(guān)實(shí)驗(yàn)):////////////////////////////////////////////////////////////////////////////////modulemy_uart_top(
clk,rst_n,
rs232_rx,rs232_tx
);inputclk;inputrst_n;inputrs232_rx;outputrs232_tx;
wirebps_start1,bps_start2;wireclk_bps1,clk_bps2;wire[7:0]rx_data;wirerx_int;
////////////////////////////////////////////spee(cuò)d_select
speed_rx(
.clk(clk),
.rst_n(rst_n),
.bps_start(bps_start1),
.clk_bps(clk_bps1)
);
my_uart_rx
my_uart_rx(
.clk(clk),
.rst_n(rst_n),
.rs232_rx(rs232_rx),
.rx_data(rx_data),
.rx_int(rx_int),
.clk_bps(clk_bps1),
。bps_start(bps_start1)
);
///////////////////////////////////////////
speed_select
speed_tx(
.clk(clk),
.rst_n(rst_n),
.bps_start(bps_start2),
.clk_bps(clk_bps2)
);
my_uart_tx
my_uart_tx(
。clk(clk),
.rst_n(rst_n),
。rx_data(rx_dat(yī)a),
。rx_int(rx_int),
。rs232_tx(rs232_tx),
。clk_bps(clk_bps2),
。bps_start(bps_start2)
);Endmodule
我們一般不在頂層模塊做任何邏輯設(shè)計(jì),哪怕只是一個(gè)邏輯與操作.比較好的設(shè)計(jì)會(huì)明確的區(qū)分每一個(gè)模塊單元。在上面這個(gè)設(shè)計(jì)中,是要實(shí)現(xiàn)一個(gè)串口自收發(fā)通信的功能。具體說(shuō)就是不斷的檢測(cè)串口接收信號(hào)rs232_rx是否有數(shù)據(jù),如果接收到起始位就把數(shù)據(jù)保存,然后再轉(zhuǎn)手把接收到的數(shù)據(jù)通過(guò)串口發(fā)送信號(hào)rs232_tx發(fā)回給對(duì)方。即使是這樣一個(gè)還不算太復(fù)雜的功能,如果都堆到一個(gè)模塊里,代碼不僅又臭又長(zhǎng),編寫(xiě)代碼者如果不理好思路很容易自己就寫(xiě)暈了,以后維護(hù)起來(lái)或者要移植就更難了.所以,模塊化的設(shè)計(jì)勢(shì)在必行。上面的代碼把這個(gè)設(shè)計(jì)分成了四個(gè)模塊:1、My_uart_tx:串口數(shù)據(jù)接收模塊;2、Speed_tx:串口數(shù)據(jù)接收時(shí)鐘校準(zhǔn)模塊;3、My_uart_rx:串口數(shù)據(jù)發(fā)送模塊;4、Speed_rx:串口數(shù)據(jù)發(fā)送時(shí)鐘校準(zhǔn)模塊.
如此劃分,層次清晰而且思路明確,寫(xiě)起代碼來(lái)更是游刃有余。先來(lái)說(shuō)模塊例化的一些細(xì)節(jié)吧.就拿speed_select模塊例化來(lái)看。第一行的speed_select
speed_rx,其中spee(cuò)d_select是要例化的模塊名,是固定的;而speed_rx則是你任意給這個(gè)模塊取的名字,它是用于區(qū)分例化多個(gè)相同的模塊。就如speed_tx和speed_rx兩個(gè)模塊,因?yàn)樗鼈兊倪壿嬙O(shè)計(jì)都是一樣的,所以寫(xiě)一個(gè)模塊,然后在例化的時(shí)候給個(gè)不同的名稱(chēng)就可以了。這有點(diǎn)類(lèi)似軟件設(shè)計(jì)中的子程序調(diào)用,但又有不同,由于硬件設(shè)計(jì)的并行性,這里的邏輯復(fù)制實(shí)際上在最后的硬件上是實(shí)現(xiàn)了兩個(gè)一模一樣的speed_select設(shè)計(jì)原型,可以說(shuō)它們是完全獨(dú)立的。即便是對(duì)于硬件資源的消耗沒(méi)有減少,采用模塊化設(shè)計(jì)以后也能從很大程度上減少設(shè)計(jì)者的重復(fù)勞動(dòng).
信號(hào)的例化是這樣的.clk(clk),點(diǎn)號(hào)后的clk代表例化模塊內(nèi)部的信號(hào)(是固定的,必須和內(nèi)部的信號(hào)名一致),而括號(hào)內(nèi)的clk則是例化模塊的外部連接,可以例化模塊內(nèi)的信號(hào)名不同。
在編譯后,可以從ProjectNavigator窗口中看到例化的子模塊:
另外,從QuartusII提供的RTL視圖里,我們能夠更深刻的感受到模塊化帶來(lái)的層次感:
《微型計(jì)算機(jī)原理與應(yīng)用》課程設(shè)計(jì)報(bào)告班級(jí)學(xué)生姓名聯(lián)系電話(huà)學(xué)號(hào)完成日期2013。12.30指導(dǎo)老師目錄一、概述1。題目2.需求分析3.設(shè)計(jì)要求二、設(shè)計(jì)過(guò)程1。設(shè)計(jì)過(guò)程簡(jiǎn)單分析2.硬件原理3.8255芯片資料三、程序設(shè)計(jì)1.流程圖2.程序代碼四、總結(jié)附錄概述1、題目:基于8086的交通燈設(shè)計(jì)2、需求分析:隨著電子技術(shù)的發(fā)展,計(jì)算機(jī)在現(xiàn)代科學(xué)技術(shù)的發(fā)展中起著越來(lái)越重要的作用.多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)、智能信息處理技術(shù)、自適用控制技術(shù)、數(shù)據(jù)挖掘與處理技術(shù)等都離不開(kāi)計(jì)算機(jī).本課程設(shè)計(jì)是基于微機(jī)原理與接口技術(shù)的簡(jiǎn)單應(yīng)用。運(yùn)用所學(xué)的微機(jī)原理和接口技術(shù)知識(shí)完成交通燈系統(tǒng).通過(guò)硬件與軟件的結(jié)合,用我們剛剛學(xué)過(guò)的匯編語(yǔ)言編寫(xiě)程序模擬分析了現(xiàn)代城市交通控制與管理問(wèn)題的現(xiàn)狀,結(jié)合交通的實(shí)際情況闡述了交通燈控制系統(tǒng)的工作原理,給出了一種簡(jiǎn)單實(shí)用的交通燈控制系統(tǒng)的硬件、軟件電路設(shè)計(jì)方案。該系統(tǒng)適用于單主干道的十字路口?,F(xiàn)假定其主干道為東西方向,次干道為南北方向。3、設(shè)計(jì)要求這次課程設(shè)計(jì)的題目是交通燈控制器的設(shè)計(jì)與實(shí)現(xiàn),主要是模擬十字路口的紅綠燈,如圖1-1所示。交通燈控制器的設(shè)計(jì)與實(shí)現(xiàn)主要是通過(guò)編寫(xiě)匯編語(yǔ)言程序利用8255A的A口燈的亮與滅進(jìn)行控制。首先,要了解的是8255A是如何工作的,包括它的A口、B口、C口和控制端口是如何寫(xiě)數(shù)據(jù)的,還包括芯片的初始化等。由于只有16個(gè)發(fā)光二極管,所以還得弄清楚是每個(gè)發(fā)光二極管所代表的燈的顏色及方向.最后要在實(shí)驗(yàn)室通過(guò)一個(gè)軟件進(jìn)行調(diào)試,調(diào)試通過(guò)后即可看到設(shè)計(jì)的結(jié)果。要求:圖1-1十字路口交通燈設(shè)計(jì)過(guò)程1、設(shè)計(jì)過(guò)程簡(jiǎn)單分析紅,黃,綠燈可分別接在8255的A口上,燈的亮滅可直接由8255輸出0,1控制。延時(shí)及閃爍由軟件編程實(shí)現(xiàn)。2、硬件原理設(shè)計(jì)電路如下:由上述電路容易知道紅,黃,綠燈分別接在8255的A口上,端口A地址為8000H,可以通過(guò)控制8255端口A輸出的高低電平來(lái)控制燈的亮滅,燈的閃爍和延時(shí)可直接通過(guò)軟件的延時(shí)程序解決,這樣可以大大簡(jiǎn)化電路的設(shè)計(jì).3、主要芯片資料8255介紹8255的內(nèi)部結(jié)構(gòu)8255A是一個(gè)40引腳的雙列直插式集成電路芯片按功能可把8255A(chǔ)分為三個(gè)邏輯電路部分,即:口電路、總線(xiàn)接口電路和控制邏輯電路.(1)口電路8255A(chǔ)共有三個(gè)8位口,其中A口和B口是單純的數(shù)據(jù)口,供數(shù)據(jù)I/O使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實(shí)現(xiàn)A口和B口的控制功能。數(shù)據(jù)傳送中A口所需的控制信號(hào)由C口高位部分(PC7~PC4)提供,因此把A口和C口高位部分合在一起稱(chēng)之為A組;同樣理由把B口和C口低位部分(PC3~PC0)合在一起稱(chēng)之為B組.(2)總線(xiàn)接口電路總線(xiàn)接口電路用于實(shí)現(xiàn)8255A(chǔ)和單片微機(jī)的信號(hào)連接.其中包括:(a)數(shù)據(jù)總線(xiàn)緩沖器數(shù)據(jù)總線(xiàn)緩沖器為8位雙向三態(tài)緩沖器,可直接和80C51的數(shù)據(jù)線(xiàn)相連,與I/O操作有關(guān)的數(shù)據(jù)、控制字和狀態(tài)信息都是通過(guò)該緩沖器進(jìn)行傳送.(b)讀/寫(xiě)控制邏輯與讀寫(xiě)有關(guān)的控制信號(hào)有CS—片選信號(hào)(低電平有效)RD—讀信號(hào)(低電平有效)WR—寫(xiě)信號(hào)(低電平有效)A0、A1—端口選擇信號(hào).8255A共有四個(gè)可尋址的端口(即A口、B口、C口和控制寄存器),用二位地址編碼即可實(shí)現(xiàn)選擇。參見(jiàn)下表。RESET-復(fù)位信號(hào)(高電平有效).復(fù)位之后,控制寄存器清除,各端口被置為輸入方式。讀寫(xiě)控制邏輯用于實(shí)現(xiàn)8255A的硬件管理:芯片的選擇,口的尋址以及規(guī)定各端口和單片微機(jī)之間的數(shù)據(jù)傳送方向。(c)控制邏輯電路控制邏輯電路包括A組控制和B組控制,合在一起構(gòu)成8位控制寄存器。用于存放各口的工作方式控制字8255A工作方式及數(shù)據(jù)I/O操作(1)8255A(chǔ)的工作方式8255A共有三種工作方式,即方式0、方式1、方式2.(a)方式0基本輸入/輸出方式方式0下,可供使用的是兩個(gè)8位口(A口和B口)及兩個(gè)4位口(C口高4位部分和低4位部分)。四個(gè)口可以是輸入和輸出的任何組合。方式0適用于無(wú)條件數(shù)據(jù)傳送,也可以把C口的某一位作為狀態(tài)位,實(shí)現(xiàn)查詢(xún)方式的數(shù)據(jù)傳送.(b)方式1選通輸入/輸出方式A口和B口分別用于數(shù)據(jù)的輸入/輸出.而C口則作為數(shù)據(jù)傳送的聯(lián)絡(luò)信號(hào)。具體定義見(jiàn)表7–2.可見(jiàn)A口和B口的聯(lián)絡(luò)信號(hào)都是三個(gè),如果A或B只有一個(gè)口按方式1使用,則剩下的另外13位口線(xiàn)仍然可按方式0使用。如果兩個(gè)口都按方式1使用,則還剩下2位口線(xiàn),這兩位口線(xiàn)仍然可以進(jìn)行位狀態(tài)的輸入輸出。方式1適用于查詢(xún)或中斷方式的數(shù)據(jù)輸入/輸出.(c)方式2雙向數(shù)據(jù)傳送方式只有A口才能選擇這種工作方式,這時(shí)A口既能輸入數(shù)據(jù)又能輸出數(shù)據(jù)。在這種方式下需使用C口的五位線(xiàn)作控制線(xiàn),信號(hào)定義如表7–2所示.方式2適用于查詢(xún)或中斷方式的雙向數(shù)據(jù)傳送。如果把A口置于方式2下,則B口只能工作于方式0.(2)數(shù)據(jù)輸入操作用于輸入操作的聯(lián)絡(luò)信號(hào)有:STB(StroBe)-選通脈沖,輸入,低電平有效.當(dāng)外設(shè)送來(lái)STB信號(hào)時(shí),輸入數(shù)據(jù)裝入8255A的鎖存器。IBF(InputBufferFull)—輸入緩沖器滿(mǎn)信號(hào),輸出,高電平有效。IBF信號(hào)有效,表明數(shù)據(jù)已裝入鎖存器,因此它是一個(gè)狀態(tài)信號(hào).INTR(INTerruptRequest)—中斷請(qǐng)求信號(hào),高電平有效,當(dāng)IBF數(shù)據(jù)輸入過(guò)程:當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)輸入后,發(fā)出信號(hào),輸入的數(shù)據(jù)送入緩沖器。然后IBF信號(hào)有效.如使用查詢(xún)方式,則IBF即作為狀態(tài)信號(hào)供查詢(xún)使用;如使用中斷方式,當(dāng)信號(hào)由低變高時(shí),產(chǎn)生INTR信號(hào),向單片微機(jī)發(fā)出中斷。單片微機(jī)在響應(yīng)中斷后執(zhí)行中斷服務(wù)程序時(shí)讀入數(shù)據(jù),并使INTR信號(hào)變低,同時(shí)也使IBF信號(hào)同時(shí)變低。以通知外設(shè)準(zhǔn)備下一次數(shù)據(jù)輸入。(3)數(shù)據(jù)輸出操作用于數(shù)據(jù)輸出操作的聯(lián)絡(luò)信號(hào)有:ACK(ACKnowledge)-外設(shè)響應(yīng)信號(hào)輸入,低電平有效。當(dāng)外設(shè)取走輸出數(shù)據(jù),并處理完畢后向單片微機(jī)發(fā)回的響應(yīng)信號(hào)為高,信號(hào)由低變高(后沿)時(shí),中斷請(qǐng)求信號(hào)有效。向單片微機(jī)發(fā)出中斷請(qǐng)求。OBF(OutputBufferFull)——輸出緩沖器滿(mǎn)信號(hào),輸出,低電平有效。當(dāng)單片微機(jī)把輸出數(shù)據(jù)寫(xiě)入8255A鎖存器后,該信號(hào)有效,并送去啟
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)股本結(jié)構(gòu)調(diào)整合同
- 2025年餐廳管理服務(wù)合同樣本
- 2025年個(gè)人消費(fèi)信貸合同樣本
- 2025年建筑維修服務(wù)外包合同范文
- 2025年企業(yè)策劃崗位兼職用工合同范本
- 2025年二手車(chē)交易合同協(xié)議規(guī)范樣本
- 2025年公務(wù)員辭職停薪留職合同樣本
- 2025年臨時(shí)車(chē)輛租用合同標(biāo)準(zhǔn)文本
- 2025年原創(chuàng)作品改編授權(quán)合同協(xié)議書(shū)范本
- 二手調(diào)光臺(tái)買(mǎi)賣(mài)合同7篇
- 年產(chǎn)60萬(wàn)噸摻混肥項(xiàng)目可行性研究報(bào)告申請(qǐng)立項(xiàng)
- 2025年江蘇省中職《英語(yǔ)》學(xué)業(yè)水平考試高頻必練考試題庫(kù)400題(含答案)
- 2025年濟(jì)寧職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 高三一模“生存與強(qiáng)弱關(guān)系思辨”審題立意及范文
- 2025年茂名市高三年級(jí)第一次綜合測(cè)試(一模)物理試卷(含答案)
- 《電子商務(wù)法律法規(guī)》電子商務(wù)專(zhuān)業(yè)全套教學(xué)課件
- 《產(chǎn)后出血預(yù)防與處理指南(2023)》解讀課件
- 全套教學(xué)課件《工程倫理學(xué)》
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- 清華大學(xué)考生自述
- 幼兒園中班繪本:《我喜歡我的小毯子》
評(píng)論
0/150
提交評(píng)論