freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的鬧鐘系統(tǒng)的設(shè)計(jì)(參考版)

2024-11-11 08:41本頁面
  

【正文】 ALARM_BUTTON:IN STD_LOGIC。 END COMPONENT。 RESET:IN STD_LOGIC。 LOAD_NEW_A: IN STD_LOGIC。 END COMPONENT。 RESET: IN STD_LOGIC。 LOAD_NEW_C:IN STD_LOGIC。 END COMPONENT。 RESET:IN STD_LOGIC。 COMPONENT KEY_BUFFER PORT(KEY:IN T_DIGITAL。 VALUE:OUT T_DIGITAL)。 END ALARM_CLOCK。 DISPLAY:OUT T_DISPLAY。 CLK:IN STD_LOGIC。 ALARM_BUTTON:IN STD_LOGIC。 ENTITY ALARM_CLOCK IS PORT(KEYPAD:IN STD_LOGIC_VECTOR(9 DOWNTO 0)。 USE IEEE 。 END ART。 END LOOP。 基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 23 END PTOCESS。 ELSE ASSERT FALSE REORT”UNCERTAIN DISPLAY_DRIVER CONTROL!” SEVERITY WARNING。 ELSIF SHOW_A=’1’ THEN DISPLAY_TIME=ALARM_TIME。 END LOOP SOUND_LP。 ELSE SOUND_ALARM=’1’。 BEGIN CTRL:PROCESS(ALARM_TIME,CURRENT_TIME,NEW_TIME,SHOW_A,SHOW_NEW_TIME) BEGIN SOUND_LP:FOR I IN ALARM_TIME’RANGE LOOP IF NOT(ALARM_TIME(I)=CURRENT_TIME(I) THEN SOUND_ALARM=’0’。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。039。039。039。039。039。039。在調(diào)試仿真過程中,要注意輸入信號的設(shè)定的正確性,充分分析模塊功能,認(rèn)真查處源程序編譯 過程中出現(xiàn)的錯(cuò)誤,分析其出錯(cuò)原因,以避免以后的應(yīng)用過程中出現(xiàn)同樣的錯(cuò)誤。 本次設(shè)計(jì)中采用的是 Altera 公司推出的 Cyclone II 系列 FPGA 中的 EP2C70,本系統(tǒng)有多種配置方式。由于 FPGA 具有在線編程,裁減擴(kuò)充容易的特點(diǎn),使得系統(tǒng)的改進(jìn)和完善十分容易。 基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 19 結(jié)束語 本文先從鬧鐘系統(tǒng)的發(fā)展及應(yīng)用進(jìn)行介紹,進(jìn)而介紹了 FPGA 的發(fā)展,基本特點(diǎn),優(yōu)缺點(diǎn)及 FPGA 的結(jié)構(gòu),并簡要介紹了設(shè)計(jì)中軟件開發(fā)所用的 VHDL 語言及仿真調(diào)試軟件 Quartus II。本章先從鬧鐘系統(tǒng)所要完 成的功能進(jìn)行分析 ,先對鬧鐘的外部進(jìn)行輸入及輸出設(shè)計(jì),進(jìn)而將FPGA 內(nèi)部自頂向下分為幾個(gè)子模塊,分別進(jìn)行功能分析及 VHDL 源程序設(shè)計(jì),仿真及波形說明,最后詳細(xì)說明的模塊的整體組裝,從而完成了整個(gè) FPGA 的內(nèi)部設(shè)計(jì)。 3. 仿真波形如圖 所示 : 基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 18 圖 鬧鐘仿真波形 由頂層仿真波形圖,我們看到,當(dāng)用戶按下 ALARM 鍵時(shí),即 ALARM_BUTTON為高電平時(shí),用戶顯示鬧鐘時(shí)間,稍許,系統(tǒng)自動(dòng)回到正常計(jì)時(shí)狀態(tài),完成顯示所設(shè)置鬧鐘時(shí)間的功能。 SOUND_ALARM用于控制揚(yáng)聲器發(fā)聲,當(dāng) SOUND_ALARM=‘ 1’時(shí),揚(yáng)聲器發(fā)出蜂鳴,表示到了設(shè)定的鬧鐘時(shí)間。當(dāng)TIME_BUTTON 為高電平時(shí),表示用戶按下 TIME 鍵。當(dāng) KEYDOWN 為高電平時(shí)( KRYDOWN=‘ 1’),表用戶按下某一數(shù)字鍵。 KEYPAD 是一個(gè) 10 位信號,若其中某一位為高電平,則表示用戶按下了相應(yīng)下標(biāo)的數(shù)字鍵。該計(jì)時(shí)器命名為 ALARM_CLOCK,其外部端口如圖 17 所示。 鬧鐘系統(tǒng)的整體組裝 1.整體組裝說明 前面已經(jīng)完成了計(jì)時(shí)器各個(gè)部分的設(shè)計(jì),下面把這些組成部分組裝起來。 END PROCESS。 END IF。 CNT:=CNT+1。 CNT:=CNT+1。 CLK_OUT=’0’。圖 15 為分頻器示意圖。 鬧鐘系統(tǒng)的分頻器的設(shè)計(jì) 1. 本模塊的功能是交 CLK_IN 端口輸入時(shí)鐘信號分頻后送給 CLK_OUT 端口。顯示驅(qū)動(dòng)器的外部接口基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 15 如圖 13 所示。根據(jù) CURRENT_TIME 端口的輸入信號,對 DISPLAY 端口進(jìn)行驅(qū)動(dòng)。 鬧鐘系統(tǒng)的顯示驅(qū)動(dòng)器的設(shè)計(jì) 1. 本模塊的功能是:當(dāng) SHOW_NEW_TIME 端口輸入信號有效(高電平)時(shí),根據(jù)NEW_TIME 端口輸入信號(時(shí)間數(shù)據(jù)),產(chǎn)生相應(yīng)的 4 個(gè)七段數(shù)碼顯示器的驅(qū)動(dòng)數(shù)據(jù),并在 DISPLAY 端口輸出該信號。 圖 11 時(shí)間計(jì)數(shù)器仿真波形 VHDL 語言見附錄 。當(dāng)這兩個(gè)控制信號無效時(shí),在時(shí)鐘上升沿同步下,對 CURRENT_TIME 端口輸出信號累加 1,并根據(jù)小時(shí)、分鐘的規(guī)律處理進(jìn)位。 基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 14 4. 時(shí) 間 計(jì)數(shù)器模塊的功能是當(dāng) RESET 端口輸入信號為高電平時(shí),對 CURRENT_TIME端口輸出信號清零復(fù)位;當(dāng) LOAD_NEW_C 端口輸入信號為高電平時(shí),將 NEW_CURRENT_TIME端口的輸入信號輸出給 CURRENT_TIME 端口。 鬧鐘系統(tǒng)的鬧鐘時(shí)間由鬧鐘寄存器保存和傳遞,而當(dāng)前時(shí)間由時(shí)間計(jì)數(shù)器保存、傳遞并按分鐘累加推進(jìn)。 END PROCESS。 END IF。 ELSIF LOAD_NEW_A/=’0’THEN ASSERT FALSE REPORT”UNCERTAIN LOAD_NEW_ALARM CINTROL!” SEVERITY WSRNING。 基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 13 圖 9 寄存器外部端口 VHDL 程序如下: PROCESS(CLK,RESET) BEGIN IF RESET=’1’THEN ALARM_TIME=(0,0,0,0)。而 RESET 端口輸入信號對 ALARM_TIME 端口的輸出進(jìn)行異步的清零復(fù)位。 3. 仿真波形如圖 8 所示 : 圖 8 移位寄存器仿真波形 由波形圖我們可以看到,在 CLK 上升沿, KEY 的輸入信號移入 NEW_TIME 最 低位,而原有數(shù)據(jù)依次左移,而當(dāng) RETST 為高電平時(shí), NEW_TIME 端恢復(fù) 0000 狀態(tài)。 NEW_TIME=N_T。 END IF。 END LOOP。 基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 12 BEGIN SHIFT: PROCESS(RESET,CLK) BEGIN IF(RESET=’1’)THEN N_T=(0,0,0,0)。電路示意圖如圖 7 所示。 3. 仿真波形如圖 6 所示 : 圖 6 譯碼器仿真波形 根據(jù)仿真波形圖我們可以看出,當(dāng)由輸入端輸入十位二進(jìn)制數(shù)據(jù)信號時(shí),輸出端輸出與之 相對應(yīng)的十進(jìn)制整數(shù)信號,即完成譯碼功能。 表 3 輸出數(shù)據(jù)的譯碼關(guān)系 輸入 0000000001 0000000010 0000000100 0000001000 0000010000 輸出 0 1 2 3 4 輸 入 0000100000 0001000000 0010000000 0100000000 1000000000 輸出 5 6 7 8 9 圖 5 譯碼器外部端口 2. 實(shí)現(xiàn)該模塊的 VHDL 程序如下: ARCHITECTURE ART OF DECODER IS BEGIN WITH KEYPAD SELECT VALUE=0 WHEN”0000000001”, 1 WHEN”0000000010”, 基于 FPGA的鬧鐘系統(tǒng)的設(shè)計(jì) 11 2 WHEN”0000000100”, 3 WHEN”0000001000”, 4 WHEN”0000010000”, 5 WHEN”0000100000”, 6 WHEN”0001000000”, 7 WHEN”0010000000”, 8 WHEN”0100000000”, 9 WHEN”1000000000”, 0 WHEN OTHERS。其中 KEYPAD為輸入端口,接收 10位二進(jìn)制數(shù)據(jù)信號; VALUE為輸出端口,輸出相應(yīng)的 1 位十進(jìn)制整數(shù)信號。另外,表中關(guān)于“超時(shí)”判斷處理細(xì)節(jié)見 VHDL 源程序中的有關(guān)部分。 控制器狀態(tài)轉(zhuǎn)換及控制輸出表如下表 2 所示: 表 2 控制器狀態(tài)轉(zhuǎn)換及控制輸出表 當(dāng)前狀態(tài) 控制輸入(條件) 下一狀態(tài) 控制輸出(動(dòng)作) S0 KEY=‘ 1’ S1 SHOW_NEW_TIME=‘ 1’ ALARM_BUTTON=‘ 1’ S4 SHOW_A=‘ 1’ 否則 S0 S1 KEY=‘ 1’ S1 SHOW_NEW_TIME=‘ 1’ ALARM_BUTTON=‘ 1’ S2 LOAD_NEW_A=‘ 1’ TIME_BUTTON=‘ 1’ S3 LOAD_NEW_C=‘ 1’ 否則(超時(shí)) 否 S1 SHOW_NEW_TIME=‘ 1’ 是 S0 S2 ALARM_BUTTON=‘ 1’ S2 LOAD_NEW_A=‘ 1’ 否則 S0 S3 TIME_BUTTON=‘ 1’ S3 LOAD_NEW_C=‘ 1’ 否則 S0 S4 ALARM_BUTTON=‘ 1’ S4 SHOW_A=‘ 1’ 否則(超時(shí)) 否 S4 SHOW_A=‘ 1’ 是 S0 表 2 中沒有顯示說明的控制信號賦值,表示信號的值為零。在此狀態(tài)下,顯示屏上顯示的是所設(shè)置的鬧鐘時(shí)間。 S4:顯示鬧鐘時(shí)間。 S3:設(shè)置新的計(jì)時(shí)器時(shí)間。 S2:設(shè)置新的鬧鐘時(shí) 間。在狀態(tài) S0 時(shí)用戶按下數(shù)字鍵后進(jìn)入此狀態(tài)。根據(jù)設(shè)計(jì)要求及端口設(shè)置,需要 5 個(gè)狀態(tài)來實(shí)現(xiàn): S0:表示電路初態(tài)即正常時(shí)鐘計(jì)數(shù)狀態(tài)。此時(shí),當(dāng) SHOW_A 為高電平時(shí),控制顯示鬧鐘時(shí)間,否則,顯示當(dāng)前時(shí)間。 當(dāng) LOAD_NEW_C 為高電平時(shí),控制時(shí)鐘計(jì)數(shù)器設(shè)置新的時(shí)間值。 當(dāng) TIME_BUTTON 為高電平時(shí) ,表示用戶按下 “TIME”鍵。 當(dāng) KEY 為高電平( KEY=‘ 1’)時(shí),表示用戶按下數(shù)字鍵(“ 0”~“ 9”)。 FPGA 內(nèi)部部分模塊設(shè)計(jì)與仿真 鬧鐘系統(tǒng)的
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1