Presentation is loading. Please wait.

Presentation is loading. Please wait.

可變式計數器 通訊一甲 B09622048 楊穎穆.

Similar presentations


Presentation on theme: "可變式計數器 通訊一甲 B09622048 楊穎穆."— Presentation transcript:

1 可變式計數器 通訊一甲 B 楊穎穆

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

3 目的 使用VHDL設計一個可變式計數器電路,此電路有RESET功能, CLOCK輸入後向上開始計數。 將電路加以模擬 將程式燒錄到IC執行
將以上原理撰寫成PPT格式報告交出

4 設計原理 當reset=‘0’ ,y會為“0000”,否則clock計數向上,且我們現在y 設定會等於 x 值。 z bin2seg y clock x reset

5 設計原理 可變式計數器 : 會依照我們設定的值,從0開始計數 5 4 1 3 2 可變式向上計數器

6 程式 library ieee; use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity work is ic內部要做的電路名稱 port( 接腳 reset,clock: in std_logic; 輸入腳為reset,clock x:in std_logic_vector(3 downto 0); x為輸入腳,且內部有三位元數 z:out std_logic_vector(6 downto 0) z為輸出腳,且內部有七位元數 ); end;

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

8 process(y) --處理y輸入的訊號
begin if (y="0000") then z<=" "; --輸入為"0000"七段會顯示為'0' elsif (y="0001") then z<=" "; --輸入為"0001"七段會顯示為'1' elsif (y="0010") then z<=" "; --輸入為"0010"七段會顯示為'2' elsif (y="0011") then z<=" "; --輸入為"0011"七段會顯示為'3' elsif (y="0100") then z<=" "; --輸入為"0100"七段會顯示為'4' elsif (y="0101") then z<=" "; --輸入為"0101"七段會顯示為'5' elsif (y="0110") then z<=" "; --輸入為"0110"七段會顯示為'6' elsif (y="0111") then z<=" "; 輸入為"0111"七段會顯示為'7' elsif (y="1000") then z<=" "; --輸入為"1000"七段會顯示為'8' elsif (y="1001") then z<=" "; --輸入為"1001"七段會顯示為'9' elsif (y="1010") then z<=" "; --輸入為"1010"七段會顯示為'a' elsif (y="1011") then z<=" "; --輸入為"1011"七段會顯示為'b' elsif (y="1100") then z<=" "; --輸入為"1100"七段會顯示為'c' elsif (y="1101") then z<=" "; --輸入為"1101"七段會顯示為'd' elsif (y="1110") then z<=" "; --輸入為"1110"七段會顯示為'e' else z<=" "; 輸入為"1111"七段會顯示為'f' end if; 結束if程式 end process; 結束process程式 end Behav; 程式結束

9 實驗結果(1) 當我x輸入為“1100”時,輸出端就會顯示為c,然後我按下clock就會向上開始計數,計數到c時就繼續從0在開始計數。

10 實驗結果(2) 當我x輸入為“0011”時,輸出端就會顯示為3,然後我按下clock就會向上開始計數,計數到3時就繼續從0在開始計數。

11 資料來源 “數位邏輯”這本書。 王志湖老師上課所教授的內容。

12 END


Download ppt "可變式計數器 通訊一甲 B09622048 楊穎穆."

Similar presentations


Ads by Google