《電子線路EDA》課程設(shè)計(jì)8×9先進(jìn)先出(FIFO)緩沖器_第1頁(yè)
《電子線路EDA》課程設(shè)計(jì)8×9先進(jìn)先出(FIFO)緩沖器_第2頁(yè)
《電子線路EDA》課程設(shè)計(jì)8×9先進(jìn)先出(FIFO)緩沖器_第3頁(yè)
《電子線路EDA》課程設(shè)計(jì)8×9先進(jìn)先出(FIFO)緩沖器_第4頁(yè)
《電子線路EDA》課程設(shè)計(jì)8×9先進(jìn)先出(FIFO)緩沖器_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、武漢理工大學(xué)電子線路eda課程設(shè)計(jì)課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 專(zhuān)業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 僅供參考 題 目: 89先進(jìn)先出(fifo)緩沖器 一、設(shè)計(jì)目的根據(jù)設(shè)計(jì)要求,完成對(duì)89先進(jìn)先出(fifo)緩沖器的設(shè)計(jì)。進(jìn)一步加強(qiáng)對(duì)quartus的應(yīng)用和對(duì)vhdl語(yǔ)言的使用。二、設(shè)計(jì)內(nèi)容和要求設(shè)計(jì)一個(gè)89先進(jìn)先出(fifo)緩沖器,8位字深,9位字寬;當(dāng)讀信號(hào)ready有效時(shí),fifo的輸出data_out使能;當(dāng)ready無(wú)效時(shí),fifo的輸出處于高阻態(tài);當(dāng)寫(xiě)信號(hào)writey有效時(shí),9位款的寄存器進(jìn)行寫(xiě)操作,信號(hào)rdinc和wrinc被用來(lái)作為寄存器讀和寫(xiě)指針遞增,以指示該位寄存器的讀和寫(xiě)。信

2、號(hào)rdptclr和wrptclr復(fù)位讀寫(xiě)指針指向fifo的第一個(gè)寄存器。data_in是將被載入到一個(gè)寄存器的數(shù)據(jù)。掌握quartus的操作和使用方法。利用quartus軟件對(duì)所設(shè)計(jì)的電路進(jìn)行仿真分析。 3、 初始條件 cpld,按鍵,時(shí)鐘信號(hào),撥碼開(kāi)關(guān)等。四、時(shí)間安排: 2011.1.11課程設(shè)計(jì)任務(wù)布置、選題、查閱資料。 2011.1.12-2010.1.17 設(shè)計(jì),軟件編程、仿真和調(diào)試。 2011.1.18-2010.1.20 設(shè)計(jì)的硬件調(diào)試。 2011.1.21 機(jī)房檢查設(shè)計(jì)成果,提交設(shè)計(jì)說(shuō)明書(shū)及答辯。指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄摘要iiiabs

3、tractiii緒 論31 軟件使用31.1 quartus簡(jiǎn)介31.2 quartus基本使用31.2.1 新建工程31.2.2 程序編寫(xiě)31.2.3 仿真31.2.4 硬件調(diào)試32 fifo32.1 fifo的使用32.2 fifo的參數(shù)32.3 fifo的分類(lèi)及設(shè)計(jì)33 先進(jìn)先出緩存器設(shè)計(jì)33.1 設(shè)計(jì)思想33.2 各部分模塊33.2.1 先入先出緩存器33.2.2 消抖電路33.2.3 分頻電路33.2.4 頂層原理圖34 仿真及硬件調(diào)試34.1 緩沖器仿真34.2 緩存器硬件測(cè)試35 心得體會(huì)36 參考文獻(xiàn)3附錄3摘要本文介紹了先進(jìn)先出(fifo)緩存器的設(shè)計(jì)方法,主要闡述如何使用新

4、興的eda器件取代傳統(tǒng)的電子設(shè)計(jì)方法。利用fpga的可編程性,擁有簡(jiǎn)潔而又多變的設(shè)計(jì)方法。本設(shè)計(jì)實(shí)現(xiàn)了先進(jìn)先出緩存器的一些基本功能,也把一些新的思路加入到設(shè)計(jì)中。主要包括采用了fpga芯片,使用quartus中的vhdl語(yǔ)言進(jìn)行編程。vhdl是一個(gè)標(biāo)準(zhǔn)語(yǔ)言,其具有良好的移植性,值得本設(shè)計(jì)更為靈活,從而更有利于產(chǎn)品升級(jí)。關(guān)鍵詞:vhdl;fifo;緩存器;quartus; abstract this article describes the design approach of first in first out (fifo) buffer,it focuses primarily on h

5、ow to use the emerging eda electronic design device to replace the traditional methods, there has many simple yet varied design approaches with the use of fpgas programmability. this design achieved a fifo buffer some of the basic functions, but also bring some new ideas into the design. mainly incl

6、ude the use of a fpga chip, using the vhdl language in the quartus ? programming. vhdl is a standard language, which has good portability, it is worth this design is more flexible and thus more conducive to product upgrades. keywords: vhdl;fifo;register;quartus;2121 緒 論當(dāng)前電子系統(tǒng)的設(shè)計(jì)正朝著速度快,容量大,體積小,質(zhì)量輕,用電

7、省的方向發(fā)展。推動(dòng)該潮流迅速發(fā)展的決定性因素就是使用了現(xiàn)代化的eda設(shè)計(jì)工具。eda是電子設(shè)計(jì)自動(dòng)化(electronic design automation)的縮寫(xiě),是90年代初,從cad(計(jì)算機(jī)輔助沒(méi)計(jì))、cam(算機(jī)輔助制造)、cat(計(jì)算機(jī)輔助測(cè)試)和cae(計(jì)算機(jī)輔助工程)的概念發(fā)展而來(lái)的。eda技術(shù)就是以計(jì)算機(jī)為工具,在eda軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言hdl為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件自動(dòng)地完成邏輯編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯綜合及優(yōu)化、邏輯行局布線、邏輯仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作1。設(shè)計(jì)者的工作僅限于利用軟件的方式,即利用硬件描述語(yǔ)言來(lái)

8、完成對(duì)系統(tǒng)硬件功能的描述,在eda工具的幫助下就可以得到最后的設(shè)計(jì)結(jié)果。盡管目標(biāo)系統(tǒng)是硬件,但整個(gè)設(shè)計(jì)和修改過(guò)程如同完成軟件設(shè)計(jì)一樣方便和高效。高速發(fā)展的cpld/fpga器件又為eda技術(shù)的不斷進(jìn)步奠定可堅(jiān)實(shí)的物質(zhì)基礎(chǔ)。cpld/fpga器件更廣泛的應(yīng)用及廠商間的競(jìng)爭(zhēng),使得普通的設(shè)計(jì)人員獲得廉價(jià)的器件和eda軟件成為可能。vhdl是一種全方位的硬件描述語(yǔ)言,包括系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門(mén)級(jí)多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為3種描述形式的混合描述,因此vhdl幾乎覆蓋了以往各種硬件描述語(yǔ)言的功能,整個(gè)自頂向下或自底向上的電路設(shè)計(jì)過(guò)程都可以用vhdl來(lái)完成。另外,vhdl還有以下優(yōu)點(diǎn):v

9、hdl的寬范圍描述能力使它成為高層次設(shè)計(jì)的核心,將設(shè)計(jì)人員的工作重心轉(zhuǎn)移到了系統(tǒng)功能的實(shí)現(xiàn)和調(diào)試上,只需要花較少的精力用于物理實(shí)現(xiàn);vhdl可以用簡(jiǎn)潔明確的代碼描述來(lái)進(jìn)行復(fù)雜控制邏輯的設(shè)計(jì),靈活且方便,而且也便于設(shè)計(jì)結(jié)果的交流、保存和重用;vhdl的設(shè)計(jì)不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。1 軟件使用1.1 quartus簡(jiǎn)介 quartus ii 是altera公司的綜合性pld開(kāi)發(fā)軟件,支持原理圖、vhdl、veriloghdl以及ahdl(altera hardware description language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配

10、置的完整pld設(shè)計(jì)流程2。 quartus包括模塊化的編譯器。它的編譯器支持的硬件描述語(yǔ)言有vhdl、verilog hdl及ahdl。quartus支持層次化設(shè)計(jì),可以在一個(gè)新的編輯輸入環(huán)境中對(duì)環(huán)境中使用不同輸入設(shè)計(jì)方式完成的模塊進(jìn)行調(diào)用。在設(shè)計(jì)輸入之后,quartus的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告,這給編程和修改提供了很好的幫助。 1.2 quartus基本使用1.2.1 新建工程雙擊桌面quartus ii圖標(biāo)進(jìn)入主界面,如下圖所示: 圖1-1 quartus ii主界面單擊軟件主界面中file ? new project wizard.開(kāi)始新建一個(gè)工工程,根據(jù)提示選擇存儲(chǔ)路徑,輸入工

11、程名,軟件會(huì)默認(rèn)頂層實(shí)體名與工程名相同并顯示。往下選擇芯片,在此時(shí)選擇cyclone下的ep2c8q208c8,最后會(huì)顯示所有選擇結(jié)果,以供最后確認(rèn)。確認(rèn)圖如圖1.2:圖1.2 new project wizard1.2.2 程序編寫(xiě)單擊file?new.,在彈出的窗口中選擇新建vhdl file,然后在其中編寫(xiě)程序。一般用三段式vhdl語(yǔ)言編寫(xiě)程序代碼3。 庫(kù)或程序包調(diào)用的說(shuō)明部分; 實(shí)體說(shuō)明部分; 結(jié)構(gòu)體描述模塊功能;編寫(xiě)完成程序代碼后,將其以實(shí)體名保存,編譯程序,若編譯成功則繼續(xù)向下進(jìn)行。將多個(gè)程序連起來(lái)成為創(chuàng)建頂層文件,可以由程序編寫(xiě)或者用畫(huà)圖來(lái)實(shí)現(xiàn)。1.2.3 仿真 單擊file?n

12、ew.,在彈出的窗口中選擇新建vector waveform file。左鍵雙擊圖左邊的空白處,在彈出的insert node or bus窗口下單擊node finder,在彈出的窗口中單擊list,并將nodes found全部導(dǎo)到selected nodes,單擊ok,仿真圖上會(huì)顯示所有的輸入輸出端口。選定某一輸入端口,在左邊的工具條中選擇適當(dāng)?shù)膱D標(biāo)設(shè)置輸入波形。將所有的輸入端口設(shè)置完畢后保存,單擊processing?simulator tool,simulation tool設(shè)置為functional,單擊generate functional simulation netlist。

13、待其完成后選擇simulator tool窗口下方的的start,完成后,單擊open,仿真結(jié)果會(huì)覆蓋在仿真圖上。根據(jù)波形檢查是否實(shí)現(xiàn)要達(dá)到的功能4。1.2.4 硬件調(diào)試單擊主界面assignments?device.在彈出的setting窗口下單擊device&pin option,在彈出的窗口中設(shè)置不是用的管腳為高阻態(tài)。單擊assignments?pins,對(duì)應(yīng)實(shí)驗(yàn)箱上的管腳名進(jìn)行設(shè)置,設(shè)置完畢后進(jìn)行編譯,軟件會(huì)檢測(cè)管腳設(shè)置有無(wú)錯(cuò)誤。設(shè)置無(wú)誤單擊programmer,在實(shí)驗(yàn)箱與微機(jī)主機(jī)連接好并通電打開(kāi)電源的前提下,即可以向?qū)嶒?yàn)箱中導(dǎo)入程序,進(jìn)行硬件調(diào)試5。 2 fifo fifo( fir

14、st in first out)簡(jiǎn)單說(shuō)就是指先進(jìn)先出。由于微電子技術(shù)的飛速發(fā)展,新一代fifo芯片容量越來(lái)越大,體積越來(lái)越小,價(jià)格越來(lái)越便宜。作為一種新型大規(guī)模集成電路,fifo芯片以其靈活、方便、高效的特性,逐漸在高速數(shù)據(jù)采集、高速數(shù)據(jù)處理、高速數(shù)據(jù)傳輸以及多機(jī)處理系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。2.1 fifo的使用fifo一般用于不同時(shí)鐘域之間的數(shù)據(jù)傳輸,比如fifo的一端時(shí)ad數(shù)據(jù)采集,另一端時(shí)計(jì)算機(jī)的pci總線,假設(shè)其ad采集的速率為16位100k sps,那么每秒的數(shù)據(jù)量為100k16bit=1.6mbps,而pci總線的速度為33mhz,總線寬度32bit,其最大傳輸速率為1056m

15、bps,在兩個(gè)不同的時(shí)鐘域間就可以采用fifo來(lái)作為數(shù)據(jù)緩沖。另外對(duì)于不同寬度的數(shù)據(jù)接口也可以用fifo,例如單片機(jī)位8位數(shù)據(jù)輸出,而dsp可能是16位數(shù)據(jù)輸入,在單片機(jī)與dsp連接時(shí)就可以使用fifo來(lái)達(dá)到數(shù)據(jù)匹配的目的。2.2 fifo的參數(shù)fifo的寬度:也就是英文資料里??吹降膖he width,它只的是fifo一次讀寫(xiě)操作的數(shù)據(jù)位,就像mcu有8位和16位,arm 32位等等,fifo的寬度在單片成品ic中是固定的,也有可選擇的,如果用fpga自己實(shí)現(xiàn)一個(gè)fifo,其數(shù)據(jù)位,也就是寬度是可以自己定義的。fifo的深度:the deepth,它指的是fifo可以存儲(chǔ)多少個(gè)n位的數(shù)據(jù)(如

16、果寬度為n)。如一個(gè)8位的fifo,若深度為8,它可以存儲(chǔ)8個(gè)8位的數(shù)據(jù),深度為12 ,就可以存儲(chǔ)12個(gè)8位的數(shù)據(jù),fifo的深度可大可小。一般來(lái)說(shuō)根據(jù)電路的具體情況,在兼顧系統(tǒng)性能和fifo成本的情況下估算一個(gè)大概的寬度和深度就可以了。而對(duì)于寫(xiě)速度慢于讀速度的應(yīng)用,fifo的深度要根據(jù)讀出的數(shù)據(jù)結(jié)構(gòu)和讀出數(shù)據(jù)的由那些具體的要求來(lái)確定。在fifo實(shí)際工作中,其數(shù)據(jù)的滿/空標(biāo)志可以控制數(shù)據(jù)的繼續(xù)寫(xiě)入或讀出。滿標(biāo)志:fifo已滿或?qū)⒁獫M時(shí)由fifo的狀態(tài)電路送出的一個(gè)信號(hào),以阻止fifo的寫(xiě)操作繼續(xù)向fifo中寫(xiě)數(shù)據(jù)而造成溢出(overflow)??諛?biāo)志:fifo已空或?qū)⒁諘r(shí)由fifo的狀態(tài)電路

17、送出的一個(gè)信號(hào),以阻止fifo的讀操作繼續(xù)從fifo中讀出數(shù)據(jù)而造成無(wú)效數(shù)據(jù)的讀出(underflow)。讀時(shí)鐘:讀操作所遵循的時(shí)鐘,在每個(gè)時(shí)鐘沿來(lái)臨時(shí)讀數(shù)據(jù)。寫(xiě)時(shí)鐘:寫(xiě)操作所遵循的時(shí)鐘,在每個(gè)時(shí)鐘沿來(lái)臨時(shí)寫(xiě)數(shù)據(jù)。讀指針:指向下一個(gè)讀出地址。讀完后自動(dòng)加1。寫(xiě)指針:指向下一個(gè)要寫(xiě)入的地址的,寫(xiě)完自動(dòng)加1。讀寫(xiě)指針其實(shí)就是讀寫(xiě)的地址,只不過(guò)這個(gè)地址不能任意選擇,而是連續(xù)的。2.3 fifo的分類(lèi)及設(shè)計(jì)根均fifo工作的時(shí)鐘域,可以將fifo分為同步fifo和異步fifo。同步fifo是指讀時(shí)鐘和寫(xiě)時(shí)鐘為同一個(gè)時(shí)鐘。在時(shí)鐘沿來(lái)臨時(shí)同時(shí)發(fā)生讀寫(xiě)操作。異步fifo是指讀寫(xiě)時(shí)鐘不一致,讀寫(xiě)時(shí)鐘是互相獨(dú)立

18、的。其連接模式如圖2.1fifo設(shè)計(jì)的難點(diǎn)在于怎樣判斷fifo的空/滿狀態(tài)。為了保證數(shù)據(jù)正確的寫(xiě)入或讀出,而不發(fā)生益處或讀空的狀態(tài)出現(xiàn),必須保證fifo在滿的情況下,不能進(jìn)行寫(xiě)操作。在空的狀態(tài)下不能進(jìn)行讀操作。怎樣判斷fifo的滿/空就成了fifo設(shè)計(jì)的核心問(wèn)題。一般是異步fifo有空/滿標(biāo)志所產(chǎn)生問(wèn)題,但是在本次設(shè)計(jì)中暫不討論這個(gè)問(wèn)題。圖2.1 fifo連接模式3 先進(jìn)先出緩存器設(shè)計(jì)先進(jìn)先出法是指根據(jù)先入庫(kù)先發(fā)出的原則,對(duì)于輸出的數(shù)據(jù)以先輸入存儲(chǔ)器的數(shù)據(jù)為依據(jù)。3.1 設(shè)計(jì)思想 在緩沖器內(nèi)部定義一個(gè)89的存儲(chǔ)空間用于暫存數(shù)據(jù)。初始狀態(tài)讀寫(xiě)指針都指向0號(hào)數(shù)寄存器(共8個(gè))。當(dāng)輸入通道打開(kāi)時(shí),每

19、來(lái)一個(gè)脈沖(由外部按鍵提供),向緩沖期內(nèi)輸入一個(gè)9位的數(shù),與此同時(shí)內(nèi)部寄存器讀指針加1,準(zhǔn)備接受下一個(gè)需要暫存的數(shù),下一個(gè)脈沖到來(lái),再存一個(gè)數(shù),讀指針再加1當(dāng)輸出通道打開(kāi)時(shí),每來(lái)一個(gè)脈沖輸出一個(gè)9位數(shù),寫(xiě)指針加1,準(zhǔn)備輸出下一個(gè)9位數(shù),同理進(jìn)行下一個(gè)數(shù)的輸出由于輸入/輸出數(shù)據(jù)是按需進(jìn)行的,故設(shè)計(jì)脈沖由按鍵提供,為更好的進(jìn)行控制,加一個(gè)消抖電路使其每按一次內(nèi)部計(jì)數(shù)確定加1。3.2 各部分模塊本設(shè)計(jì)共由三個(gè)部分組成:先入先出緩存器、消抖模塊、分頻器。3.2.1 先入先出緩存器這是整個(gè)設(shè)計(jì)的核心模塊,其輸入輸出端口設(shè)置如下:ready:控制輸出通道,當(dāng)其為1時(shí),輸出通道打開(kāi),可以進(jìn)行讀操作。writ

20、ey:控制輸入通道,當(dāng)其為1時(shí),輸入通道打開(kāi),可以進(jìn)行寫(xiě)操作。rdptclr,wrptclr:緩沖器內(nèi)部讀寫(xiě)指針,用于規(guī)范內(nèi)部寄存器(編號(hào)07)的使用,兩指針初始狀態(tài)都指向0寄存器。當(dāng)寫(xiě)入第一個(gè)數(shù)據(jù)時(shí),數(shù)據(jù)存入0寄存器,同時(shí)寫(xiě)指針加1,指向下一個(gè)寄存器,準(zhǔn)備接受下一個(gè)將被寫(xiě)入的數(shù)據(jù)。在需要讀出數(shù)據(jù)時(shí),打開(kāi)輸出通道,同時(shí)由脈沖控制輸出數(shù)據(jù),每輸出一個(gè)數(shù)據(jù),讀指針加1,準(zhǔn)備輸出下一個(gè)數(shù)據(jù),同時(shí)輸出數(shù)據(jù)以輸入數(shù)據(jù)的個(gè)數(shù)為頂限。clk:脈沖控制輸入,控制數(shù)據(jù)的寫(xiě)入和讀出。data_in:放置將被輸入的數(shù)據(jù)。data_out:用于輸出數(shù)據(jù)的通道。readit:控制讀取輸入數(shù)據(jù)。編寫(xiě)的程序見(jiàn)附錄。生成元件

21、后如圖3.1所示: 圖3.1 fifo元件圖3.2.2 消抖電路本設(shè)計(jì)用外部按鍵產(chǎn)生脈沖來(lái)控制輸入輸出數(shù)據(jù)的個(gè)數(shù),每一個(gè)脈沖對(duì)應(yīng)一個(gè)數(shù)據(jù),同時(shí)對(duì)應(yīng)內(nèi)部寄存器的移位。為了保證數(shù)據(jù)輸入順序與數(shù)據(jù)輸出順序完全相同,要保證每按鍵一次只產(chǎn)生一個(gè)脈沖。通常的按鍵在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng)。抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定,一般為5ms10ms。為確保電路對(duì)按鍵的一次閉合僅作一次處理,必須去除按鍵抖動(dòng)。軟件消抖的方法為:在檢測(cè)出鍵閉合保持后執(zhí)行一個(gè)延時(shí)程序,產(chǎn)生5ms10ms的延時(shí),讓前延抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms

22、10ms的延時(shí),待后沿抖動(dòng)消失才能轉(zhuǎn)入該鍵的處理程序。本課題中用2個(gè)d觸發(fā)器和一個(gè)2輸入與門(mén)聯(lián)合實(shí)現(xiàn)。用程序分別編寫(xiě)d觸發(fā)器和2輸入與門(mén),生成元件,供最后頂層原理圖使用。d觸發(fā)器的程序見(jiàn)附錄,消抖模塊的電路如圖3.2所示: 圖3.2 消抖模塊原理圖3.2.3 分頻電路為了配合消抖電路,取延時(shí)為5ms,即使得采樣頻率為5ms,由此根據(jù)f=1/t,算得脈沖頻率為200hz,而實(shí)驗(yàn)箱上提供的是20m的時(shí)鐘頻率,故要對(duì)時(shí)鐘進(jìn)行分頻。程序中用內(nèi)部計(jì)數(shù)器計(jì)算到來(lái)的脈沖數(shù),脈沖數(shù)小于50000時(shí)輸出為0,否則輸出為1,同時(shí)計(jì)到100000時(shí)計(jì)數(shù)器清零。同理,將分頻器生成元件,供頂層原理圖使用。生成元件如圖3

23、.3所示: 圖3.3 分頻器元件圖3.2.4 頂層原理圖以上所描述模塊的程序編寫(xiě)均在同一工程下,由程序生成的元件也在該工程下。用前面所介紹的方法,在該工程下再建一原理圖作為頂層,將所需的元件按照要求進(jìn)行連線,加入輸入輸出處端口并改名。保存原理圖,并將原理圖置為頂層文件。本設(shè)計(jì)的整體原理圖如圖3.4所示: 圖3.4 整體原理圖4 仿真及硬件調(diào)試4.1 緩沖器仿真用前面所描述的方法進(jìn)入仿真界面,得到某個(gè)激勵(lì)條件下的仿真圖如圖4.1: 圖4.1 仿真圖4.2 緩存器硬件測(cè)試 按照軟件用法中的步驟將程序?qū)雽?shí)驗(yàn)箱上,接通電源,用按鍵來(lái)控制它的脈沖輸入,用撥碼開(kāi)關(guān)來(lái)控制它的輸入序列,用發(fā)光二極管作為它的

24、輸出,以觀察燈的的變化來(lái)觀察fifo的輸出。在調(diào)試過(guò)程中出現(xiàn)了部分問(wèn)題,由于輸入的管腳比較多,也用了很多撥碼開(kāi)關(guān),在設(shè)置時(shí),要小心區(qū)分。5 心得體會(huì)通過(guò)這次的課設(shè),我認(rèn)識(shí)到了quartus軟件的功能非常強(qiáng)大,對(duì)于很多關(guān)于數(shù)電方面的元器件都可以用它來(lái)實(shí)現(xiàn),這使得我們?cè)谑褂玫臅r(shí)候非常方便及多變。我也熟悉了quartus的工作環(huán)境,可以很熟練的對(duì)quartus進(jìn)行常規(guī)的操作,快速進(jìn)行程序編輯和仿真。本文次課設(shè)利用quartus?設(shè)計(jì)fifo先進(jìn)先出緩存器,方法簡(jiǎn)單、快捷。在本次的課程設(shè)計(jì)中,由于沒(méi)有完全讀懂課設(shè)要求,導(dǎo)致設(shè)計(jì)出來(lái)的fifo的功能沒(méi)有完全達(dá)到要求,使我對(duì)自己的學(xué)習(xí)態(tài)度有了反思。讀課設(shè)要

25、求,寫(xiě)程序,直到完成硬件調(diào)試都需要認(rèn)真對(duì)待,每一步都不能放松,否則都可能導(dǎo)致整個(gè)設(shè)計(jì)失敗。路漫漫其修遠(yuǎn)兮,吾將上下而求索。我愿在未來(lái)的學(xué)習(xí)和研究過(guò)程中,以更加認(rèn)真的態(tài)度來(lái)對(duì)待所有的學(xué)習(xí),以及任務(wù)。 6 參考文獻(xiàn)1 張亦華,延明,肖冰.數(shù)字邏輯設(shè)計(jì)實(shí)驗(yàn)技術(shù)與eda工具.北京:北京郵電大學(xué)出版社,20032 陳小毛,胡機(jī)秀新編數(shù)字電路與eda技術(shù)北京:國(guó)防工業(yè)出版社,20083 夏路易.基于eda的電子技術(shù)課程設(shè)計(jì)北京:電子工業(yè)出版社,20094 宋嘉玉,孫麗霞eda實(shí)用技術(shù)北京:人民郵電出版社,2006. 5 齊洪喜,陸穎vhdl電路設(shè)計(jì)實(shí)用技術(shù)北京:清華大學(xué)出版社,2004.附錄fifio的程

26、序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity keshe isport( clk,ready,writey,readit,rdptclr,wrptclr: in std_logic; data_out:out std_logic_vector(8 downto 0); data_in: in std_logic_vector(8 downto 0);end;architecture arh of keshe is component nclk port( clk: in std_

27、logic; clk1: buffer std_logic);end component;component anjian port( clk: in std_logic; d: in std_logic_vector(0 to 4); q: out std_logic_vector(0 to 4);end component;component cpu port( q:std_logic_vector(0 to 4); data_out:out std_logic_vector(8 downto 0); data_in: in std_logic_vector(8 downto 0);end

28、 component;signal q1:std_logic_vector(0 to 4);signal c1:std_logic;begina1:nclk port map(clk=clk,clk1=c1);a2:anjian port map(clk=c1,d(0)=ready,d(1)=writey,d(2)=rdptclr,d(3)=wrptclr,d(4)=readit,q=q1);a3:cpu port map(q=q1,data_out=data_out,data_in=data_in);end; cpu程序:library ieee;use ieee.std_logic_116

29、4.all;use ieee.std_logic_unsigned.all;entity cpu isport( q:std_logic_vector(0 to 4); data_out:out std_logic_vector(8 downto 0); data_in: in std_logic_vector(8 downto 0) );end;architecture arh of cpu is signal rdinc:integer range 0 to 7; signal wrinc:integer range 0 to 7; signal data0,data1,data2,dat

30、a3,data4,data5,data6,data7:std_logic_vector(8 downto 0);beginp1:process(q)beginif q(2)=1 then rdinc data_out data_out data_out data_out data_out data_out data_out data_out=data7;end case;rdinc=rdinc+1;end if;elsif q(0)=0 thendata_out=zzzzzzzzz;end if;end process;p2:process(q)beginif q(3)=1 then wrin

31、c data0 data1 data2 data3 data4 data5 data6 data7=data_in;end case;wrinc=wrinc+1;end if;end if;end process;end; 分頻器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity nclk isport( clk: in std_logic; clk1: buffer std_logic);end;architecture arh of nclk is begin process(

32、clk)variable num1:integer range 0 to 1000000;beginif clkevent and clk=1 then if num1=1000000 then num1:=0;clk1=not clk1; else num1:=num1+1; end if;end if;end process;end; 消抖電路程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity anjian isport( clk: in std_logic; d: in st

33、d_logic_vector(0 to 4); q: out std_logic_vector(0 to 4);end;architecture arh of anjian is begin process(clk,d)begin q=d;end process;end; 本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表姓 名性 別專(zhuān)業(yè)、班級(jí)課程設(shè)計(jì)題目: 89先進(jìn)先出(fifo)緩沖器 課程設(shè)計(jì)答辯或質(zhì)疑記錄:成績(jī)?cè)u(píng)定依最終評(píng)定成績(jī)(以優(yōu)、良、中、及格、不及格評(píng)定)指導(dǎo)教師簽字: 年 月 日ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5lui

34、zi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbfto

35、xvrffn7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc6nnmwl3fwhzftfvyaary7lhssxj10v3ph3y19bxyr77ib7cpzsu2tijqe3hkqkkau9kskcphkxuikvvyjzpg2yijrkqfbggovyqkuxnwi9omnjtt6qilzxtyrf7d20fbmabcfiixrqkusvnxbppfuxyq1fjskfsubkgs2duvqc9sz4jkbgn4qqv66pyoarjurnfj3txyfclzieeptwfjthpheipdfnqnr2hjqkv2dzwtmpdjqkbcxmovdsjqctjagjmdlskpgad2s0h0vmzgaht36gyuez7umank1ndreubeqdgrx0ve

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論