EDA實驗指導(dǎo)書--新2014(新)印刷_第1頁
EDA實驗指導(dǎo)書--新2014(新)印刷_第2頁
EDA實驗指導(dǎo)書--新2014(新)印刷_第3頁
EDA實驗指導(dǎo)書--新2014(新)印刷_第4頁
EDA實驗指導(dǎo)書--新2014(新)印刷_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、淮 陰 工 學(xué) 院EDA技術(shù)實驗指導(dǎo)書編者: 葉小婷電子與電氣工程學(xué)院2014年6月7日目 錄實驗一 基于QUARTUSII 圖形輸入電路的設(shè)計1實驗二 基于VHDL 格雷碼編碼器的設(shè)計 16實驗三 含異步清零和同步使能的加法計數(shù)器18實驗四八位七段數(shù)碼管動態(tài)顯示電路的設(shè)計20實驗五數(shù)控分頻器的設(shè)計22實驗六圖形和VHDL 混合輸入的電路設(shè)計23實驗七四位并行乘法器的設(shè)計26實驗八基本觸發(fā)器的設(shè)計28實驗九四位全加器設(shè)計30實驗十矩陣鍵盤顯示電路的設(shè)計32實驗十一用VHDL 設(shè)計七人表決器35實驗十二用VHDL 設(shè)計四人搶答器37實驗九 熟悉PROTEL99環(huán)境39實驗十 原理圖設(shè)計 42實驗

2、十一 元件制作與網(wǎng)絡(luò)表操作44實驗十二 印刷電路板設(shè)計47附錄一 實驗箱常用管腳分配表49附錄二 參考程序51- I -實驗一基于QUARTUSII 圖形輸入電路的設(shè)計一、實驗?zāi)康?通過一個簡單的38譯碼器的設(shè)計,掌握組合邏輯電路的設(shè)計方法。2初步了解QUARTUSII 原理圖輸入設(shè)計的全過程。3掌握組合邏輯電路的靜態(tài)測試方法。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理3-8譯碼器三輸入,八輸出。當(dāng)輸入信號按二進(jìn)制方式的表示值為N時,輸出端標(biāo)號為N 的輸出端輸出高電平表示有信號產(chǎn)生,而其它則為低電平表示無信號產(chǎn)生。因為三

3、個輸入端能產(chǎn)生的組合狀態(tài)有八種,所以輸出端在每種組合中僅有一位為高電平的情況下,能表示所有的輸入組合。譯碼器不需要像編碼器那樣用一個輸出端指示輸出是否有效。但可以在輸入中加入一個輸出使能端,用來指示是否將當(dāng)前的輸入進(jìn)行有效的譯碼,當(dāng)使能端指示輸入信號無效或不用對當(dāng)前信號進(jìn)行譯碼時,輸出端全為高電平,表示無任何信號。本例設(shè)計中沒有考慮使能輸入端,自己設(shè)計時可以考慮加入使能輸入端時,程序如何設(shè)計。四、實驗內(nèi)容在本實驗中,用三個撥動開關(guān)(SW1SW3)來表示三八譯碼器的三個輸入(A、B、C);用八個LED 來表示三八譯碼器的八個輸出(D1D8)。通過輸入不同的值來觀察輸入的結(jié)果與三八譯碼器的真值表是

4、否一致。實驗箱中的撥動開關(guān),當(dāng)開關(guān)閉合(撥動開關(guān)的檔位在下方)時其輸出為低電平,反之輸出高電平。實驗箱中的撥動開關(guān)與FPGA 的接口電路,LED 燈與FPGA 的接口電路以及撥動開關(guān)、LED 與FPGA 的管腳連接在用戶手冊中都做了詳細(xì)說明,這里不再贅述。五、實驗步驟下面將通過這個實驗,向讀者介紹QUARTUSII 的項目文件的生成、編譯、管腳分配以及時序仿真等的操作過程。1 建立工程文件1)選擇“開始>程序>Altera>QuartusII 9.0”,運行QUARTUSII 軟件?;蛘唠p擊桌面上的QUARTUSII 的圖標(biāo)運行QUARTUSII 軟件,出現(xiàn)如圖1-1 所示,

5、如果是第一次打開QUARTUSII 軟件可能會有其它的提示信息,使用者可以根據(jù)實際情況進(jìn)行設(shè)定后進(jìn)入圖1-1 所示界面。2)選擇軟件中的,新建一個工程。如圖1-2所示。3)點擊圖1-2 中的Next 進(jìn)入工作目錄,工程名的設(shè)定對話框如圖1-3 所示。第一個輸入框為工程目錄輸入框,用戶可以輸入如e:/eda 等工作路徑來設(shè)定工程的目錄,設(shè)定好后,所有的生成文件將放入這個工作目錄。第二個輸入框為工程名稱輸入框,第三個輸入框為頂層實體名稱輸入框。用戶可以設(shè)定如exp1,一般情況下工程名稱與實體名稱相同。使用者也可以根據(jù)自已的實際情況來設(shè)定。圖1-1 QUARTUSII 軟件運行界面圖1-2 新建工程

6、對話框工程目錄工程目錄工程名稱頂層實體名稱圖1-3 指定工程名稱及工作目錄4)點擊Next,進(jìn)入下一個設(shè)定對話框,按默認(rèn)選項直接點擊Next 進(jìn)行器件選擇對話框。如圖1-4 所示。這里選用CycloneII 系列芯片EP2C35F672C8為例進(jìn)行介紹。用戶可以根據(jù)使用的不同芯片來進(jìn)行設(shè)定。圖1-4 器件選擇界面首先在對話框的左上方的Family 下拉菜單中選取CycloneII,在右邊的Speed grade 下拉菜單中選取8,在左下方的Available devices 框中選取EP2C35F672C8,點擊Next完成器件的選取,進(jìn)入EDA TOOL 設(shè)定界面如圖1-5所示。圖1-5 E

7、DA TOOL 對話框5)點擊Next出現(xiàn)新建工程以前所有的設(shè)定信息,如圖1-6所示,點擊Finish完成新建工程的建立。圖1-6 新建工程信息2 建立圖形設(shè)計文件1)創(chuàng)建好設(shè)計工程后,選擇File>New菜單,出現(xiàn)圖1-7所示的新建設(shè)計文件類型選擇窗口。這里以建立圖形設(shè)計文件為例進(jìn)行說明,其它設(shè)計輸入方法與之基本相同。圖1-7 新建設(shè)計文件選擇窗口2)在New 對話框(圖1-7)中選擇Design Files 頁下的Block Diagram/Schematic File,點擊OK 按鈕,打開圖形編輯器對話框,如圖1-8 所示。圖中標(biāo)明了常用的每個按鈕的功能。圖1-8 QUARTUSI

8、I 圖形編輯器對話框QUARTUSII 圖形編輯器也稱塊編輯器(Block Editor),用于以原理圖(Schematics)和結(jié)構(gòu)圖(Block Diagrams)的形式輸入和編輯圖形設(shè)計信息。QUARTUSII 圖形編輯器可以讀取并編譯結(jié)構(gòu)圖設(shè)計文件(Block Design File)和MAXPLUSII 圖形設(shè)計文件(Graphic Design Files),可以在QUARTUSII 軟件中打開圖形設(shè)計文件并將其另存為結(jié)構(gòu)圖設(shè)計文件。在QUARTUSII 圖形編輯器窗口(圖1-8)中,根據(jù)個人愛好,可以隨時改變Block Editor 的顯示選項,如導(dǎo)向線和網(wǎng)格間距、橡皮筋功能、顏

9、色以及基本單元和塊的屬性等。3)以原理圖輸入設(shè)計一個三八譯碼器為例,介紹基本單元符號輸入方法的步驟。在圖1-8 所示的圖形編輯器窗口的工件區(qū)雙擊鼠標(biāo)的左鍵,或點擊圖中的符號工具按鈕,或選擇菜單Edit>Insert Symbol,則彈出如圖1-9所示的Symbol 對話框。圖1-9 Symbol 對話框4)用鼠標(biāo)點擊單元庫前面的“+”號,展開單元庫,用戶可以選擇所需要的圖元或符號,該符號則顯示在右邊的顯示符號窗口,用戶也可以在符號名稱里輸入所需要的符號名稱,點擊OK 按鈕,所選擇的符號將顯示在圖形編輯器的工件工域。5)參考圖1-10 所示,將要選擇的器件符號放置在圖形編輯器的工件區(qū)域,用

10、正交節(jié)點工具將原件邊接起來,然后定義端口的名稱。在這個例子里,定義三個輸入為A、B、C,定義八個輸出為D0、D1、D2、D3、D4、D5、D6、D7。用戶也可以根據(jù)自己的習(xí)慣來定義這些端口名稱。6)完成圖形編輯的輸入之后,需要保存設(shè)計文件或重新命名設(shè)計文件。選擇File>Save As項,出現(xiàn)如圖1-11 所示對話框,選擇好文件保存目錄,并在文件名欄輸入設(shè)計文件名。如需要將設(shè)計文件添加到當(dāng)前工程中,則選擇對話框下面的Add file to current project 復(fù)選框,單擊保存按鈕即可保存文件。需要注意的是,在整個設(shè)計文件保存的過程當(dāng)中,都需要遵循設(shè)計輸入法的一般規(guī)則。圖1-1

11、0 設(shè)計文件的輸入圖1-11 保存設(shè)計文件對話框3 對設(shè)計文件進(jìn)行編譯QUARTUSII 編譯器窗口包含了對設(shè)計文件處理的全過程。在QUARTUSII軟件中選擇Processing>Compiler Tool 菜單項,則出現(xiàn)QUARTUSII 的編譯器窗口,如圖1-12 所示,圖中標(biāo)明了全編譯過程各個模塊的功能。需要說明的是在進(jìn)行設(shè)計文件的綜合和分析時,也可以單獨打開某個分析綜合過程不必進(jìn)行全編譯界面。當(dāng)完成上述窗口的設(shè)定后,點擊Start 按鈕進(jìn)行設(shè)計文件的全編譯。如果文件有錯,在軟件的下方則會提示錯誤的原因和位置,以便于使用者進(jìn)行修改直到設(shè)計文件無錯。整個編譯完成,軟件會提示編譯成功

12、,如圖1-13 所示。圖1-12 QUARTUSII 編譯器窗口圖1-13 全編譯成功界面4 管腳分配在前面選擇好一個合適的目標(biāo)器件(在這個實驗中選擇為EP3C16F484C8),完成設(shè)計的分析綜合過程,得到工程的數(shù)據(jù)文件以后,需要對設(shè)計中的輸入、輸出引腳指定到具體的器件管腳號碼,指定管腳號碼稱為管腳分配或管腳鎖定。1)點擊Assignments 菜單下面的Assignment Editor,進(jìn)入到引腳分配窗口。如圖1-14 所示。圖1-14 進(jìn)入引腳分配界面將要分配管腳的信號放置在To 下方。雙擊To 下方的New,單擊則會出現(xiàn)如圖1-15 所示界面。圖1-15 信號選擇對話框選擇Node

13、Finder進(jìn)入如圖1-16 所示的Node Finder 對話框界面。按圖1-16中樣例設(shè)置參數(shù)。在Filter 窗口選擇Pins:all,在Named 窗口中輸入“*”,點擊List 在Nodes Found 窗口出現(xiàn)所有信號的名稱,點擊中間的按鈕則Selected Nodes 窗口下方出現(xiàn)被選擇的端口名稱。單擊OK 按鈕,完成設(shè)置。進(jìn)入管腳分配窗口,如圖1-17 所示。圖1-16 Node Finder 對話框圖1-17 管腳分配在圖1-17 中以鎖定端口A 的管腳為例,其它端口的管腳鎖定與其基本一致。選擇端口A 的對應(yīng)Assignment Name 待其變?yōu)樗{(lán)色后雙擊,出現(xiàn)下拉菜單選取

14、如圖1-17 所示的Location(Accepts wildcards/groups)選項。選擇端口A的對應(yīng)Value欄,待其變?yōu)樗{(lán)色,依照硬件與FPGA 的管腳連接(管腳分配說明請參考附錄),輸入對應(yīng)的管腳名AD13,按回車鍵,軟件將自動將其改為PIN_ AD13,同時藍(lán)色選擇條會自動跳轉(zhuǎn)到Value 欄的下一行,這表明軟件已經(jīng)將輸入端口A 分配到FPGA 的AD13引腳上,用同樣的方法,依照硬件與FPGA 的管腳連接(管腳分配說明請參考附錄),對其它端口進(jìn)行管腳分配,如圖1-18 所示。圖1-18 給A 端口進(jìn)行管腳分配5 對設(shè)計文件進(jìn)行仿真1)創(chuàng)建一個仿真波形文件,選擇QUARTUSI

15、I 軟件File>New,進(jìn)入新建文件對話框。如圖1-19所示。選取對話框的Verification/Debugging Files標(biāo)簽頁,從中選取VectorWaveform File,點擊OK 按鈕,則打開了一個空的波形編輯器窗口,如圖1-20所示。圖1-19 新建文件對話框圖1-20 波形編輯器2)設(shè)置仿真結(jié)束時間,波形編輯器默認(rèn)的仿真結(jié)束時間為1us,根據(jù)仿真需要,可以自由設(shè)置仿真的結(jié)束時間。選擇QUARTUSII 軟件的Edit>End Time命令,彈出仿真結(jié)束時間對話框,在Time 框輸入仿真結(jié)束時間,點擊OK 按鈕完成設(shè)置。3)加入輸入、輸出端口,在波形編輯器窗口左

16、邊的端口名列表區(qū)點擊鼠標(biāo)右鍵,在彈出的右鍵菜單中選擇InsertàInsert Node or Bus命令,在彈出的InsertNode or Bus 對話框如圖1-21所示界面中點擊Node Finder按鈕。圖1-21Insert Node or Bus 對話框在出現(xiàn)的Node Finder 界面中,如圖1-22 所示,在Filter 列表中選擇Pins:all,在Named 窗口中輸入“*”,點擊List 在Nodes Found 窗口出現(xiàn)所有信號的名稱,點擊中間的按鈕則Selected Nodes 窗口下方出現(xiàn)被選擇的端口名稱。單擊OK 按鈕,完成設(shè)置,回到圖1-21所示的I

17、nsert Node or Bus 對話框,單擊OK 按鈕,所有的輸入、輸出端口將會在端口名列表區(qū)內(nèi)顯示出來,如圖1-23所示。圖1-22 Node Finder 對話框圖1-23 在波形編輯器中加入端口4)編輯輸入端口波形,即指定輸入端口的邏輯電平變化,在如圖1-23所示的波形編輯窗口中,選擇要輸入波形的輸入端口如A 端口,在端口名顯示區(qū)左邊的波形編輯器工具欄中有要輸入的各種波形,其按鈕說明如圖1-24所示。根據(jù)仿真的需要輸入波形。完成后如圖1-25所示。最后選擇軟件的File>Save進(jìn)行保存。圖1-24 波形編輯器工具欄圖1-25 編輯輸入端口波形5)指定仿真器設(shè)置,在仿真過程中有

18、時序仿真和功能仿真之分,在這里介紹功能仿真。在QUARTUSII 軟件中選擇Processing>Simulator Tool 命令,打開仿真器工具窗口,如圖1-26 所示。按圖1-26上的提示,首先產(chǎn)生功能仿真網(wǎng)表文件,點擊產(chǎn)生功能仿真網(wǎng)表的按鈕Generate Functional Simulation Netlist,產(chǎn)生功能仿真網(wǎng)表,然后點擊開始仿真的Start 按鈕開始進(jìn)行仿真,直到仿真進(jìn)度條為100%完成仿真。點擊仿真報告窗口按鈕Report,觀察仿真波形。如圖1-27 所示。圖1-26 仿真器工具窗口圖1-27 仿真波形6 從設(shè)計文件到目標(biāo)器件的加載完成對器件的加載有兩種形

19、式,一種是對目標(biāo)器件進(jìn)行加載文件,一種是對目標(biāo)器件的配置芯片進(jìn)行加載。這里介紹對目標(biāo)器件EP2C35F672C8 進(jìn)行加載的方法。1)使用下載電纜將PC 機與實驗系統(tǒng)連接起來。2)選擇QUARTUSII 軟件的Tool>Programmer 命令,進(jìn)入編程器窗口,如圖1-28 所示,如果沒有設(shè)置編程硬件,則編程硬件類型為No Hardware,需要對編程硬件進(jìn)行設(shè)置。點擊Hardware Setup編程硬件設(shè)置按鈕,進(jìn)入如圖1-29所示的編程硬件設(shè)置對話框。圖1-28 編程器窗口圖1-29 編程器硬件設(shè)置對話框3)點擊Add Hardware按鈕,出現(xiàn)Add Hardware對話框,如圖

20、1-30 所示。圖1-30 編程硬件選擇對話框4)在Add Hardware對話框中,從Hardware type列表中選擇所需要的硬件類型,如果是USB接口的請參照附錄中的USB電纜的安裝與使用,如果使用的是并口下載線則選取如圖1-30所示的硬件類型,點擊OK按鈕,完成對硬件類型的設(shè)置?;氐骄幊唐饔布O(shè)置窗口, 點擊Close按鈕退出設(shè)置。5)如果軟件已運行一個工程,則在打開編程器的時候,編程器窗口會自動出現(xiàn)這個工程文件要加載到目標(biāo)器件的文件,如果要加載其它文件可以單擊“Add File”從其它地方進(jìn)行添加更改。選好加載文件后,再單擊選擇Progam/Configure,編程模式選取JTAG

21、模式,點擊Start進(jìn)行文件加載,直到加載進(jìn)度變?yōu)?00%,文件成功加載完成。六、實驗結(jié)果文件加載到目標(biāo)器件后,撥動撥碼開關(guān),LED 燈會按三八譯碼器真值表對應(yīng)地點亮。實驗二基于VHDL 格雷碼編碼器的設(shè)計一、實驗?zāi)康? 了解格雷碼變換的原理。2 進(jìn)一步熟悉QUARTUSII軟件的使用方法和VHDL輸入的全過程。3 進(jìn)一步掌握實驗系統(tǒng)的使用。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理格雷(Gray)碼是一種可靠性編碼,在數(shù)字系統(tǒng)中有著廣泛的應(yīng)用。其特點是任意兩個相鄰的代碼中僅有一位二進(jìn)制數(shù)不同,因而在數(shù)碼的遞增和遞減運算

22、過程中不易出現(xiàn)差錯。但是格雷碼是一種無權(quán)碼,要想正確而簡單的和二進(jìn)制碼進(jìn)行轉(zhuǎn)換,必須找出其規(guī)律。根據(jù)組合邏輯電路的分析方法,先列出其真值表再通過卡諾圖化簡,可以很快地找出格雷碼與二進(jìn)制碼之間的邏輯關(guān)系。其轉(zhuǎn)換規(guī)律為:高位同,從高到低看異同,異出1,同出0。也就是將二進(jìn)制碼轉(zhuǎn)換成格雷碼時,高位是完全相同的,下一位格雷碼是1還是0,完全是相鄰兩位二進(jìn)制碼的“異”還是“同”來決定。下面舉一個簡單的例子加以說明。假如要把二進(jìn)制碼10110110轉(zhuǎn)換成格雷碼,則可以通過下面的方法來完成,方法如圖2-1。圖2-1 格雷碼變換示意圖四、實驗內(nèi)容本實驗要求完成的任務(wù)是變換8位的二進(jìn)制碼到8位的格雷碼。實驗中用

23、SW1SW8表示8位二進(jìn)制輸入,用LED模塊的D1D8來表示轉(zhuǎn)換的實驗結(jié)果八位格雷碼。實驗LED亮表示對應(yīng)的位為1,LED 滅表示對應(yīng)的位為0。通過輸入不同的值來觀察輸出的結(jié)果與實驗原理中的轉(zhuǎn)換規(guī)則是否一致。開發(fā)系統(tǒng)中的撥碼開關(guān)、與FPGA 的接口電路,LED 燈與FPGA 的接口電路以及撥碼開關(guān)、LED 與FPGA 的管腳連接在附錄都做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 建完工程之后,再新建一個VHDL File。新建一個VHDL 文件的過程如下:選擇QUARTUSII 軟件中的File>New 命令,出現(xiàn)New 對話框,中選擇Design Fi

24、les 頁下的VHDL File,點擊OK 按鈕,打開VHDL 編輯器對話框。3 在空白編輯區(qū),按照實驗原理和實驗內(nèi)容所述功能,在VHDL 編輯窗口編寫VHDL 程序。4 編寫完VHDL 程序后,保存起來。5 對編寫的VHDL程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照撥碼開關(guān)、LED 與FPGA 的管腳連接進(jìn)行管腳分配。分配完成后,再進(jìn)行全編譯一次,以使管腳分配生效。7 連接Altera Blaster 下載器到開發(fā)系統(tǒng)的JTAG接口,系統(tǒng)上電,電源指示燈正常。8 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA 中。觀察實驗結(jié)果是否與實驗內(nèi)容要求一致。六、

25、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,撥動撥碼開關(guān),LED會按照實驗原理中的格雷碼輸入一一對應(yīng)的亮或者滅。實驗三含異步清零和同步使能的加法計數(shù)器一、實驗?zāi)康? 了解二進(jìn)制計數(shù)器的工作原理。2 進(jìn)一步熟悉QUARTUSII軟件的使用方法和VHDL輸入。3 時鐘在編程過程中的作用。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理二進(jìn)制計數(shù)器是應(yīng)用中最多、功能最全的計數(shù)器之一,含異步清零和同步使能的加法計數(shù)器的具體工作過程如下:在時鐘上升沿時,檢測使能端是否允許計數(shù),如果允許計數(shù)(定義使能端高電平有效)則開始計數(shù),否則一直檢測使能端信

26、號。在計數(shù)過程中再檢測復(fù)位信號是否有效(低電平有效),當(dāng)復(fù)位信號起作用時,使計數(shù)值清零,繼續(xù)進(jìn)行檢測和計數(shù)。其工作時序如圖3-1 所示:圖3-1 計數(shù)器的工作時序四、實驗內(nèi)容本實驗要求完成的任務(wù)是在時鐘信號的作用下,通過使能端和復(fù)位信號來完成加法計數(shù)器的計數(shù)。實驗中選擇時鐘信號區(qū)1Hz時鐘,SW1表示使能端信號,用復(fù)位開關(guān)S1表示復(fù)位信號,用LED模塊的D1D4來表示計數(shù)的二進(jìn)制結(jié)果。實驗LED 亮表示對應(yīng)的位為1,LED滅表示對應(yīng)的位為0。通過輸入不同的值模擬計數(shù)器的工作時序,觀察計數(shù)的結(jié)果。開發(fā)系統(tǒng)中的撥碼開關(guān)與FPGA 的接口電路,LED 燈與FPGA 的接口電路以及按鍵開關(guān)模塊與FPG

27、A 的管腳連接在附錄都做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 建完工程之后,再新建一個VHDL File,打開VHDL 編輯器對話框。3 按照實驗原理和實驗內(nèi)容所述功能,在VHDL 編輯窗口編寫VHDL 程序。4 編寫完VHDL 程序后,保存起來。5 對編寫的VHDL 程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后,再進(jìn)行全編譯一次,以使管腳分配生效。7 連接Altera Blaster 下載器到開發(fā)系統(tǒng)的JTAG接口,系統(tǒng)上電,電源指示燈正常。8 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA

28、 中。觀察實驗結(jié)果是否與實驗內(nèi)容要求一致。六、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,使撥碼開關(guān)SW1置為高電平,四位LED會按照實驗原理中依次被點亮,當(dāng)加法器加到10時,D5(進(jìn)位信號)被點亮。當(dāng)復(fù)位鍵(S1 鍵)按下后,計數(shù)被清零。如果撥碼開關(guān)1置為低電平(撥碼開關(guān)向下)則加法器不工作。實驗四八位七段數(shù)碼管動態(tài)顯示電路的設(shè)計一、實驗?zāi)康? 了解數(shù)碼管的工作原理。2 學(xué)習(xí)七段數(shù)碼管顯示譯碼器的設(shè)計。3 學(xué)習(xí)VHDL 的CASE 語句及多層次設(shè)計方法。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理七段數(shù)碼管是電子開發(fā)過程中常用的

29、輸出顯示設(shè)備。在實驗系統(tǒng)中使用的是兩個四位一體、共陰極型七段數(shù)碼管。其單個靜態(tài)數(shù)碼管如下圖4-1 所示。圖4-1 靜態(tài)七段數(shù)碼管由于七段數(shù)碼管公共端連接到GND(共陰極型),當(dāng)數(shù)碼管的中的那一個段被輸入高電平,則相應(yīng)的這一段被點亮。反之則不亮。四位一體的七段數(shù)碼管在單個靜態(tài)數(shù)碼管的基礎(chǔ)上加入了用于選擇哪一位數(shù)碼管的位選信號端口。八個數(shù)碼管的a、b、c、d、e、f、g、h、dp 都連在了一起,8 個數(shù)碼管分別由各自的位選信號來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。四、實驗內(nèi)容本實驗要求完成的任務(wù)是在時鐘信號的作用下,通過四個撥動開關(guān)SW1SW4輸入的鍵值在數(shù)碼管上顯示相應(yīng)的鍵值。在實驗中時,數(shù)

30、字時鐘選擇1kHz作為掃描時鐘,用四個撥動開關(guān)做為輸入,當(dāng)四個撥動開關(guān)置為一個二進(jìn)制數(shù)時,在數(shù)碼管上顯示其十六進(jìn)制的值。實驗箱中的撥動開關(guān)與FPGA 的接口電路,以及數(shù)碼管顯示模塊與FPGA 的管腳連接在附錄做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 建完工程之后,再新建一個VHDL File,打開VHDL 編輯器對話框。3 按照實驗原理和自己的想法,在VHDL 編輯窗口編寫VHDL 程序。4 編寫完VHDL 程序后,保存起來。方法同實驗一。5 對編寫的VHDL 程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后,再

31、進(jìn)行全編譯一次,以使管腳分配生效。7 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA 中。8 將數(shù)字信號源F的時鐘選擇為1kHz,撥動SW1SW4四位撥動開關(guān),使其為一個數(shù)值,觀察八個數(shù)碼管顯示的數(shù)值并記錄。觀察實驗結(jié)果是否與自己的編程思想一致。9 實驗完畢,關(guān)閉電源,整理實驗器材。六、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,撥動四位撥碼開關(guān),使其為一個二進(jìn)制數(shù)值,則四個數(shù)碼管均顯示撥碼開關(guān)所表示的十六進(jìn)制的值。實驗五數(shù)控分頻器的設(shè)計一、實驗?zāi)康? 學(xué)習(xí)數(shù)控分頻器的設(shè)計、分析和測試方法。2 了解和掌握分頻電路實現(xiàn)的方法。3 掌握EDA 技術(shù)的層次化設(shè)計方法。二、實驗設(shè)備1 PC機一臺

32、;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理數(shù)控分頻器的功能就是當(dāng)輸入端給定不同的輸入數(shù)據(jù)時,將對輸入的時鐘信號有不同的分頻比,數(shù)控分頻器就是用計數(shù)值可并行預(yù)置的加法計數(shù)器來設(shè)計完成的。四、實驗內(nèi)容本實驗要求完成的任務(wù)是在時鐘信號的作用下,通過輸入八位的撥動開關(guān)輸入不同的數(shù)據(jù),改變分頻比,使輸出端口輸出不同頻率的時鐘信號,達(dá)到數(shù)控分頻的效果。在實驗中時,數(shù)字時鐘選擇1kHz作為輸入的時鐘信號(頻率過高觀察不到LED 的閃爍快慢),用八個撥動開關(guān)做為數(shù)據(jù)的輸入,當(dāng)八個撥動開關(guān)置為一個二進(jìn)制數(shù)時,在輸出端口輸出對應(yīng)頻率的時鐘信號,用戶可以用示波器接信號

33、輸出模塊觀察頻率的變化,也可以使輸出端口接LED 燈來觀察頻率的變化。在此實驗中我們把輸入接入LED 燈模塊。實驗箱中的撥動開關(guān)、LED 與FPGA 的接口電路,以及撥動開關(guān)、LED 與FPGA 的管腳連接在附錄做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 建完工程之后,再新建一個VHDL File,打開VHDL 編輯器對話框。3 按照實驗原理和自己的想法,在VHDL 編輯窗口編寫VHDL 程序。4 編寫完VHDL 程序后,保存起來。方法同實驗一。5 對編寫的VHDL 程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后

34、,再進(jìn)行全編譯一次,以使管腳分配生效。7 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA 中。8 將數(shù)字信號源F的時鐘選擇為1kHz,撥動八位撥動開關(guān)SW1SW8,使其為一個數(shù)值,觀察輸入的時鐘信號使LED燈D1的狀態(tài),改變撥動開關(guān),觀察D1的變化。觀察實驗結(jié)果是否與自己的編程思想一致。9 實驗完畢,關(guān)閉電源,整理實驗器材。注:八位撥動開關(guān)不可全部置高,即分頻比不可設(shè)置為“11111111”。六、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,撥動SW1SW8撥碼開關(guān),使其為一個二進(jìn)制數(shù)值,則輸入的時鐘信號使LED燈D1開始閃爍,改變撥碼開關(guān),LED 的閃爍快慢會按一定的規(guī)則發(fā)生改變。實驗六

35、圖形和VHDL 混合輸入的電路設(shè)計一、實驗?zāi)康? 學(xué)習(xí)在QUARTUSII 軟件中模塊符號文件的生成與調(diào)用。2 掌握模塊符號與模塊符號之間的連線規(guī)則與方法。3 掌握從設(shè)計文件到模塊符號的創(chuàng)建過程。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理在層次化的設(shè)計文件中,經(jīng)常需要將已經(jīng)設(shè)計好的工程文件生成一個模塊符號文件作為自己的功能模塊符號在頂層調(diào)用,該符號就像圖形設(shè)計文件中的任何其它宏功能符號一樣可被高層設(shè)計重復(fù)調(diào)用。本實驗的實驗原理就是將前面設(shè)計的實驗三、四、五通過QUARTUSII 軟件合并成一個設(shè)計文件,實現(xiàn)實驗三、四、五

36、中的所有功能。四、實驗內(nèi)容本實驗要求完成的任務(wù)與實驗三、四、五的實驗內(nèi)容基本一致。在實驗中,時鐘信號選取1kHz做為數(shù)碼管的掃描時鐘,撥動開關(guān)輸入一個預(yù)置的八位數(shù)據(jù),經(jīng)過數(shù)控分頻電路(實驗五)分頻后得到一個較低的頻率做為加法計數(shù)器(實驗三)的時鐘頻率進(jìn)行計數(shù)器的加法運算。得到的值給數(shù)碼顯示譯碼電路(實驗四)在數(shù)碼管上顯示出來。實驗箱中的數(shù)字時鐘模塊、撥動開關(guān)、按鍵開關(guān)、數(shù)碼管、LED 與FPGA 的接口電路,以及撥動開關(guān)、按鍵開關(guān)、數(shù)碼管、LED 與FPGA 的管腳連接在實驗三、四、五中都做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 將以前編寫的實驗三、四、五的

37、源程序代碼復(fù)制到當(dāng)前工作目錄下保存起來。3 選擇File>Open 命令,如圖6-1 所示,在當(dāng)前工作目錄下打開其中一個源程序代碼,如EXP3.VHD 程序。圖6-1 打開一個設(shè)計文件4 在File 菜單中選擇Create/Update 項,進(jìn)而選擇Create Symbol File for Current File,點擊確定按鈕,即可創(chuàng)建一個代表剛才打開的設(shè)計文件功能的符號(.bsf),如圖6-2 所示。如果該文件對應(yīng)的符號文件已經(jīng)創(chuàng)建過,則執(zhí)行該操作時會彈出提示信息,詢問是否要覆蓋現(xiàn)存的符號文件。用戶可以根據(jù)自己的意愿進(jìn)行選擇。圖6-2 從現(xiàn)行文件創(chuàng)建模塊符號文件5 用同樣的方法對

38、其它設(shè)計文件(EXP4.VHD、EXP5.VHD)進(jìn)行模塊符號文件的創(chuàng)建。6 模塊符號文件創(chuàng)建完成后,再新建一個圖形編輯文件,打開圖形編輯器對話框。在圖形編輯器窗口的工件區(qū)雙擊鼠標(biāo)的左鍵,或點擊圖中的符號工具按鈕,或選擇菜單Edit>Insert Symbol,則彈出如圖6-3 所示的Symbol 對話框。圖6-3 Symbol 對話框7 在Symbol 對話框(圖6-3)中的Project 項下會出現(xiàn)前面創(chuàng)建的模塊符號文件(EXP3、EXP4、EXP5),我們現(xiàn)在就可以任意調(diào)用這些功能模塊符號文件。8 選取這些模塊符號文件放置到工作區(qū),調(diào)入需要的模塊符號以后,進(jìn)行符號之間的連線,以及放

39、置輸入、輸出或雙向引腳。需要說明的是,在這個實驗中,因為輸入的數(shù)據(jù)占用了八位的撥動開關(guān),所以做為同步使能端的信號EN 我們加入了一個VCC 信號,使使能端信號EN 有效。所有設(shè)計完成后的電路如圖6-4所示。圖6-4 設(shè)計圖形符號文件9 對編寫的圖形符號輸入文件程序進(jìn)行保存,然后編譯并仿真,對程序的錯誤進(jìn)行修改。10 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后,再進(jìn)行全編譯一次,以使管腳分配生效。11 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA中。12 將數(shù)字信號源F的時鐘選擇為1kHz,撥動八位撥動開關(guān)SW1SW8,使其為一個數(shù)值,觀察八位數(shù)碼管的顯示數(shù)值和速率,當(dāng)數(shù)碼

40、管顯示何值時LED 燈D1開始被點亮,顯示何數(shù)值時熄滅。按S1鍵再次觀察實驗現(xiàn)象,撥動八位撥動開關(guān),置于其它數(shù)據(jù),觀察數(shù)碼管的顯示速率會的變化。觀察實驗結(jié)果是否與自己的編程思想一致。13 實驗完畢,關(guān)閉電源,整理實驗器材。六、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,使其為一個數(shù)值,則八段數(shù)碼管按一定的速率開始循環(huán)顯示“0-F”,當(dāng)數(shù)碼管顯示A-F 時LED 燈D1開始被點亮,顯示其它數(shù)值時熄滅。按S1 鍵顯示的數(shù)值又從0 開始,撥動八位撥碼開關(guān),置于其它數(shù)據(jù),數(shù)碼管的顯示速率會發(fā)生改變。實驗七四位并行乘法器的設(shè)計一、實驗?zāi)康? 了解四位并行乘法器的原理。2 了解四位并行乘法器的設(shè)計思想。3 掌握用

41、VHDL 語言實現(xiàn)基本二進(jìn)制運算的方法。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理實現(xiàn)并行乘法器的方法又很多種,但是歸結(jié)起來基本上分為兩類,一類是靠組合邏輯電路實現(xiàn),另一類流水線實現(xiàn)。流水線結(jié)構(gòu)的并行乘法器的最大點就是速度快,尤其是在連續(xù)輸入的乘法器中,可以達(dá)到近乎單周期的運算速度,但是實現(xiàn)起來比組合邏輯電路要稍微復(fù)雜一些。下面就組合邏輯電路實現(xiàn)無符號數(shù)乘法的方法作詳細(xì)介紹。假如有被乘數(shù)A 和乘數(shù)B,首先用A 與B 的最低位相乘得到S1,然后再把A 左移1 位與B 的第2 位相乘得到S2,再將A 左移3 位與B 的第三位

42、相乘得到S3,依此類推,直到把B 的所有位都乘完為止,然后再把乘得的結(jié)果S1、S2、S3相加即得到相乘的結(jié)果。需要注意的是,具體實現(xiàn)乘法器并不是真正的去乘,而是利用簡單的判斷去實現(xiàn),舉個簡單的例子。假如A 左移n 位后與B 的第n 位相乘,如果B 的這位為1,那么相乘的中間結(jié)果就是A 左移n 位后的結(jié)果,否則如果B 的這位為0,那么就直接讓相乘的中間結(jié)果為0 即可。B 的所有位相乘結(jié)束后,把所有的中間結(jié)果相加即得到A 與B 相乘的結(jié)果。四、實驗內(nèi)容本實驗的任務(wù)是實現(xiàn)一個簡單的四位并行乘法器,被乘數(shù)A 用撥擋開關(guān)模塊的 SW1SW4 來表示,乘數(shù)B 用SW5SW8 來表示,相乘的結(jié)果用LED 模

43、塊的D1D8 來表示,LED 亮表示對應(yīng)的位為1。時鐘信號選取1kHz做為掃描時鐘,撥動開關(guān)輸入一個四位的被乘數(shù)和一個四位的乘數(shù),經(jīng)過設(shè)計電路相乘后得到的數(shù)據(jù)在LED 燈上顯示出來。實驗箱中的數(shù)字時鐘模塊、撥動開關(guān)、LED 與FPGA的接口電路,以及數(shù)字時鐘源、撥動開關(guān)、LED 與FPGA 的管腳連接在附錄中都做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 建完工程之后,再新建一個VHDL File,打開VHDL 編輯器對話框。3 按照實驗原理和自己的想法,在VHDL 編輯窗口編寫VHDL 程序。4 編寫完VHDL 程序后,保存起來。方法同實驗一。5 對編寫的VH

44、DL 程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后,再進(jìn)行全編譯一次,以使管腳分配生效。7 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA 中。8 將數(shù)字信號源模塊F的時鐘選擇為1kHz,撥動相應(yīng)的撥動開關(guān),輸入一個四位的乘數(shù)(SW5-SW8)和被乘數(shù)(SW1-SW4),觀察在發(fā)光管D1-D8上顯示的結(jié)果(燈亮表示對應(yīng)的位為1)并記錄。觀察實驗結(jié)果是否與自己的編程思想一致。9 實驗完畢,關(guān)閉電源,整理實驗器材。六、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,撥動相應(yīng)的撥碼開關(guān),輸入一個四位的乘數(shù)和被乘數(shù),則在LED燈上顯示這兩個數(shù)值相乘的

45、結(jié)果的二進(jìn)制數(shù)。實驗八基本觸發(fā)器的設(shè)計一、實驗?zāi)康? 了解基本觸發(fā)器的工作原理。2 進(jìn)一步熟悉在Quartus II 中基于原理圖設(shè)計的流程。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理基本觸發(fā)器的電路如下圖8-1 所示。它可以由兩個與非門交叉耦合組成,也可圖8-1 基本觸發(fā)器電路以由兩個或非門交叉耦合組成。現(xiàn)在以兩個與非門組成的基本觸發(fā)器為例,來分析其工作原理。根據(jù)與非邏輯關(guān)系,可以得到基本觸發(fā)器的狀態(tài)轉(zhuǎn)移真值表及簡化的真值表,如下表8-1 所示:Qnextnext 0011不允許0110置位1001復(fù)位11QQ保持SR

46、Qnextnext 00QQ保持0101復(fù)位1010置位1100不允許表8-1 基本觸發(fā)器狀態(tài)轉(zhuǎn)移真值表根據(jù)真值表,不難寫出其特征方程:其中式(2)為約束條件。四、實驗內(nèi)容本實驗的任務(wù)就是利用Quartus II 軟件的原理圖輸入,產(chǎn)生一個基本觸發(fā)器,觸發(fā)器的形式可以是與非門結(jié)構(gòu)的,也是可以或非門結(jié)構(gòu)的。實驗中用按鍵模塊的用SW1 和SW2 來分別表示和,用LED 模塊的D1 和D2 分別表示Q和。在/R 和/S 滿足式(2)的情況下,觀察Q 和的變化。實驗箱中的撥動開關(guān)、LED 與FPGA 的接口電路,以及撥動開關(guān)、LED 與FPGA的管腳連接在以前的實驗中都做了詳細(xì)說明。五、實驗步驟1 打

47、開QUARTUSII 軟件,新建一個工程。2 建完工程后再新建一個圖形符號輸入文件,打開圖形符號編輯器對話框。3 按照實驗原理和自己的想法,在圖形符號編輯窗口編寫設(shè)計程序。4 設(shè)計好設(shè)計電路程序后,保存起來。方法同實驗一。5 對自己編寫的設(shè)計電路程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后,再進(jìn)行全編譯一次,以使管腳分配生效。7 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA 中,觀察實驗結(jié)果是否與自己的編程思想一致。8 撥動相應(yīng)的撥動開關(guān)SW1()、SW2(),則通過發(fā)光管D1(Q)、D2()的亮和滅來顯示這個觸發(fā)器工作狀態(tài)。將

48、輸入與輸出和基本觸發(fā)器狀態(tài)轉(zhuǎn)移真值表進(jìn)行比較,看是否一致。9 實驗完畢,關(guān)閉電源,整理實驗器材。六、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,撥動相應(yīng)的撥碼開關(guān)(即、),則通過LED燈上的亮和滅來顯示這個觸發(fā)器的輸入結(jié)果。將輸入與輸出和表7-1基本觸發(fā)器狀態(tài)轉(zhuǎn)移真值表進(jìn)行比較,看是否一致。實驗九四位全加器設(shè)計一、實驗?zāi)康? 了解四位全加器的工作原理。2 掌握基本組合邏輯電路的FPGA 實現(xiàn)。3 熟練應(yīng)用Quartus II 進(jìn)行FPGA 開發(fā)。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理全加器是由兩個加數(shù)Xi 和Yi 以及低位來

49、的進(jìn)位Ci-1 作為輸入,產(chǎn)生本位和Si 以及向高位的進(jìn)位Ci 的邏輯電路。它不但要完成本位二進(jìn)制碼Xi 和Yi 相加,而且還要考慮到低一位進(jìn)位Ci-1 的邏輯。對于輸入為Xi、Yi 和Ci-1,輸出為Si 和Ci 的情況,根據(jù)二進(jìn)制加法法則可以得到全加器的真值表如下表9-1 所示:表9-1 全加器真值表由真值表得到Si 和Ci 的邏輯表達(dá)式經(jīng)化簡后為:這僅僅是一位的二進(jìn)制全加器,要完成一個四位的二進(jìn)制全加器,只需要把四個級聯(lián)起來即可。四、實驗內(nèi)容本實驗要完成的任務(wù)是設(shè)計一個四位二進(jìn)制全加器。具體的實驗過程就是利用實驗系統(tǒng)上的撥動開關(guān)模塊的SW1SW4作為一個加數(shù)X輸入,SW5SW8作為另一個

50、加數(shù)Y輸入,用LED模塊的D1D5來作為結(jié)果S輸出,LED亮表示輸出1,LED滅表示輸出0。實驗箱中的撥動開關(guān)、LED與FPGA的接口電路,以及撥動開關(guān)、LED與FPGA的管腳連接在以前的實驗中都做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 建完工程之后,再新建一個VHDL File,打開VHDL 編輯器對話框。3 按照實驗原理和自己的想法,在VHDL 編輯窗口編寫VHDL 程序。4 編寫完VHDL 程序后,保存起來。方法同實驗一。5 對編寫的VHDL 程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后,再進(jìn)行全編譯一

51、次,以使管腳分配生效。7 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA中。8 撥動相應(yīng)的撥動開關(guān)SW1SW4 作為一個加數(shù)X 輸入,SW5SW8 作為另一個加數(shù)Y 輸入,用發(fā)光管模塊的D1D5作為結(jié)果S 輸出,發(fā)光管亮表示輸出1, 發(fā)光管滅表示輸出0。任意輸入兩個四位的加數(shù),觀察發(fā)光管上的顯示結(jié)果并記錄。觀察實驗結(jié)果是否與自己的編程思想一致。9 實驗完畢,關(guān)閉電源,整理實驗器材。六、實驗結(jié)果當(dāng)設(shè)計文件加載到目標(biāo)器件后,撥動相應(yīng)的撥碼開關(guān),輸入兩個四位的加數(shù),則在LED燈上顯示這兩個數(shù)值相加結(jié)果的二進(jìn)制數(shù)。實驗十矩陣鍵盤顯示電路的設(shè)計一、實驗?zāi)康? 了解普通4×4 鍵盤

52、掃描的原理。2 進(jìn)一步加深七段碼管顯示過程的理解。3 了解對輸入/輸出端口的定義方法。二、實驗設(shè)備1 PC機一臺;2 Altera Blaster下載器一根;3 THGSC-3型實驗箱一臺。三、實驗原理實現(xiàn)鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片實現(xiàn)鍵盤掃描;再就是用軟件實現(xiàn)鍵盤掃描。作為一個嵌入系統(tǒng)設(shè)計人員,總是會關(guān)心產(chǎn)品成本。目前有很多芯片可以用來實現(xiàn)鍵盤掃描,但是鍵盤掃描的軟件實現(xiàn)方法有助于縮減一個系統(tǒng)的重復(fù)開發(fā)成本,且只需要很少的CPU 開銷。嵌入式控制器的功能能強,可能充分利用這一資源,這里就介紹一下軟鍵盤的實現(xiàn)方案。圖10-1 簡單鍵盤電路通常在一個鍵盤中使用了一個瞬時接觸開關(guān),并且

53、用如圖10-1 所示的簡單電路,微處理器可以容易地檢測到閉合。當(dāng)開關(guān)打開時,通過處理器的I/O 口的一個上拉電阻提供邏輯1;當(dāng)開關(guān)閉合時,處理器的/IO 口的輸入將被拉低得到邏輯0??蛇z憾的是,開關(guān)并不完善,因為當(dāng)它們被按下或者被釋放時,并不能夠產(chǎn)生一個明確的1 或者0。盡管觸點可能看起來穩(wěn)定而且很快地閉合,但與微處理器快速的運行速度相比,這種動作是比較慢的。當(dāng)觸點閉合時,其彈起就像一個球。彈起效果將產(chǎn)生如圖10-2 所示的好幾個脈沖。彈起的持續(xù)時間通常將維持在5ms30ms 之間。如果需要多個鍵,則可以將每個開關(guān)連接到微處理器上它自己的輸入端口。然而,當(dāng)開關(guān)的數(shù)目增加時,這種方法將很快使用完

54、所有的輸入端口。鍵盤上陣列這些開關(guān)最有效的方法(當(dāng)需要5 個以上的鍵時)就形成了一個如圖10-3 所示的二維矩陣。當(dāng)行和列的數(shù)目一樣多時,也就是方型的矩陣,將產(chǎn)生一個最優(yōu)化的布列方式(I/O 端被連接的時候)。一個瞬時接觸開關(guān)(按鈕)放置在每一行與每一列的交叉點。矩陣所需的鍵的數(shù)目顯然根據(jù)應(yīng)用程序而不同。每一行由一個輸出端口的一位驅(qū)動,而每一列由一個電阻器上拉且供給輸入端口一位。圖10-2 按鍵抖動圖10-3 矩陣鍵盤鍵盤掃描的實現(xiàn)過程如下:對于4×4 鍵盤,通常連接為4 行、4 列,因此要識別按鍵,只需要知道是哪一行和哪一列即可,為了完成這一識別過程,我們的思想是,首先固定輸出4

55、行為高電平,然后輸出4 列為低電平,再讀入輸出的4 行的值,通常高電平會被低電平拉低,如果讀入的4 行均為高電平,那么肯定沒有按鍵按下,否則,如果讀入的4 行有一位為低電平,那么對應(yīng)的該行肯定有一個按鍵按下,這樣便可以獲取到按鍵的行值。同理,獲取列值也是如此,先輸出4 列為高電平,然后再輸出4 行為低電平,再讀入列值,如果其中有哪一位為低電平,那么肯定對應(yīng)的那一列有按鍵按下。獲取到行值和列值以后,組合成一個8 位的數(shù)據(jù),根據(jù)實現(xiàn)不同的編碼在對每個按鍵進(jìn)行匹配,找到鍵值后在7 段碼管顯示。四、實驗內(nèi)容本實驗要求完成的任務(wù)是通過編程實現(xiàn)對4X4 矩陣鍵盤按下鍵的鍵值的讀取,并在數(shù)碼管上完成一定功能(如移動等)的顯示。實驗中數(shù)碼管與FPGA 的連接電路和管腳連接在附錄做了詳細(xì)說明。五、實驗步驟1 打開QUARTUSII 軟件,新建一個工程。2 建完工程之后,再新建一個VHDL File,打開VHDL 編輯器對話框。3 按照實驗原理和自己的想法,在VHDL 編輯窗口編寫VHDL 程序。4 編寫完VHDL 程序后,保存起來。方法同實驗一。5 對編寫的VHDL 程序進(jìn)行編譯并仿真,對程序的錯誤進(jìn)行修改。6 編譯仿真無誤后,依照附錄進(jìn)行管腳分配。分配完成后,再進(jìn)行全編譯一次,以使管腳分配生效。7 用下載電纜通過JTAG 口將對應(yīng)的sof 文件加載到FPGA 中。8 將數(shù)字信號源模塊的時鐘選

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論