Presentation is loading. Please wait.

Presentation is loading. Please wait.

使用VHDL設計—向上&向下計數器 通訊一甲 B09622048 楊穎穆.

Similar presentations


Presentation on theme: "使用VHDL設計—向上&向下計數器 通訊一甲 B09622048 楊穎穆."— Presentation transcript:

1 使用VHDL設計—向上&向下計數器 通訊一甲 B 楊穎穆

2 目錄 目的 設計原理 程式 實驗結果 參考資料

3 目的 題目一: 1. 使用VHDL設計一個向上計數器電路 此電路有RESET功能 RESET時計數器輸出為"0000"
CLOCK輸入後向上計數 學號尾數為0與5者做除11 學號尾數為1與6者做除12 學號尾數為2與7者做除13 學號尾數為3與8者做除14 學號尾數為4與9者做除15 2. 將電路加以模擬 3. 將程式燒錄到IC執行 4. 將以上原理撰寫成PPT格式報告交出 5. 將以上原理與操作過程講述一便並錄製成影音檔交出

4 題目二: 1. 使用VHDL設計一個BCD向下計數器電路 此電路有RESET功能 RESET時計數器輸出為BCD 99=" " CLOCK輸入後向下計數 2. 將電路加以模擬 3. 將程式燒錄到IC執行 4. 將以上原理撰寫成PPT格式報告交出 5. 將以上原理與操作過程講述一便並錄製成影音檔交出

5 設計原理 計數器主要可分為向上&向下計數器。 5 5 4 1 4 1 3 2 3 2 向上計數器 向下計數器

6 程式(1) library ieee; use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity mode14 is 電路內部要做的電路名稱 port( 接腳 reset,clock: in std_logic; 輸入腳為reset,clock op : buffer std_logic_vector(3 downto 0) --op為緩衝儲存器,內部有四個位元 ); end;

7 architecture behav of mode14 is --電路內部結構
begin process(reset,clock,op) 處理影響內部的輸入訊號reset,clock,op if(reset='0') then op<="0000"; --當reset='0'時,"0000"會搬入op,從0開始計數 else if(clock'event and clock='1')then --判別clock此訊號是否由'0'--->'1'的上昇緣 if(op="1101")then op<="0000"; --判別計數器輸出是否已經是'13',則設定輸出由'0'開始 else op<=op+'1'; 不是,則計數器輸出繼續加'1' end if; 結束 if 程式 end if; 結束 if 程式 end if; 結束 if 程式 end process; 結束 process 程式 end behav; 程式結束

8 程式(2) library ieee; use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity mode99 is 電路內部要做的電路名稱 port( 接腳 reset,clock: in std_logic; 輸入腳為reset,clock op: buffer std_logic_vector(7 downto 0) --op為緩衝儲存器,內部有八個位元 ); end;

9 architecture behav of mode99 is --電路內部結構
begin process(reset,clock,op) 處理影響內部的輸入訊號reset,clock,op if(reset='0') then op<=" "; --當reset='0'時," "會搬入op,從99開始向下計數 else if(clock'event and clock='1')then 判別clock此訊號是否由'0'--->'1'的上昇緣 if (op(3 downto 0)="0000")then op(3 downto 0)<="1001"; --判別計數器前四位元輸出是否已經是'0',則設定輸出由'9'開始向下計數 if (op(7 downto 4)="0000")then op(7 downto 4)<="1001"; --判別計數器後四位元輸出是否已經是'0',則設定輸出由'9'開始向下計數 else op(7 downto 4)<=op(7 downto 4)-'1'; --不是,則計數器後四位元輸出繼續減'1',向下計數 end if; 結束 if 程式 else op(3 downto 0)<=op(3 downto 0)-'1'; --不是,則計數器前四位元輸出繼續減'1',向下計數 end if; 結束 if 程式 end if; 結束 if 程式 end if; 結束 if 程式 end process; 結束 process 程式 end behav; 程式結束

10 實驗結果(1)--向上計數器電路 當我們reset為‘1’時,按下clock鍵,輸出會顯示為“0001”,向上開始計數。

11 實驗結果(2) 當我們reset為‘1’時,按下clock鍵,輸出會顯示為“1001”,向上開始計數。

12 實驗結果(3)--向下計數器電路 當我們reset為‘1’時,按下clock鍵,輸出會顯示為“10011001”,向下開始計數。

13 實驗結果(4) 當我們reset為‘1’時,按下clock鍵,輸出會顯示為“10010000”,向下開始計數。

14 參考資料 主要的資料內容是參考王志湖老師上課所教授的內容及“數位邏輯”這本書。

15 END


Download ppt "使用VHDL設計—向上&向下計數器 通訊一甲 B09622048 楊穎穆."

Similar presentations


Ads by Google