使用VHDL設計-8x3編碼電路 通訊一甲 B09622048 楊穎穆
目錄 目的 設計原理 真值表 程式 實驗結果 參考資料
目的 1. 使用VHDL設計一個8對3之編碼電路 2. 將電路加以模擬 3. 將程式燒錄到IC執行 4. 將以上原理撰寫成PPT格式報告交出 5. 將以上原理與操作過程講述一便並錄製成影音檔交出
設計原理 op1 op2 op3 Encoder 8x3 主要使用VHDL來設計一個8對3的編碼器 ip0 ip1 op1 ip2 ip3 op2 ip4 ip5 ip6 op3 ip7 Encoder 8x3
ip(ip0,ip1,ip2,ip3,ip4,ip5,ip6,ip7) 真值表 ip(ip0,ip1,ip2,ip3,ip4,ip5,ip6,ip7) op(op1,op2,op3) 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1
程式 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity encoder8x3 is --ic內部要做的電路名稱 port( --接腳 ip :in std_logic_vector(7 downto 0); --ip為輸入腳位,且內部有8個位元數 op :out std_logic_vector(2 downto 0) --op為輸出腳位,且內部有3個位元數 ); end;
architecture behav of encoder8x3 is --電路內部結構 begin process(ip) --處理影響內部的訊號 ip if ip="10000000" then op<="000"; --當輸入為"10000000"時,op輸出為"000" elsif ip="01000000" then op<="001"; --輸入為"01000000",op輸出為"001" elsif ip="00100000" then op<="010"; --輸入為"00100000",op輸出為"010" elsif ip="00010000" then op<="011"; --輸入為"00010000",op輸出為"011" elsif ip="00001000" then op<="100"; --輸入為"00001000",op輸出為"100" elsif ip="00000100" then op<="101"; --輸入為"00000100",op輸出為"101" elsif ip="00000010" then op<="110"; --輸入為"00000010",op輸出為"110" else op<="111"; --輸入為"00000001",op輸出為"111" end if; --結束if程式 end process; --結束process程式 end behav; --程式結束
實驗結果(1) 當我們輸入端輸入為“10000000”時,此時輸出端會顯示出”000” 。 當我們輸入端輸入為“01000000”時,此時輸出端會顯示出”001” 。
實驗結果(2) 當我們輸入端輸入為“00100000”時,此時輸出端會顯示出”010” 。 當我們輸入端輸入為“00010000”時,此時輸出端會顯示出”011” 。
實驗結果(3) 當我們輸入端輸入為“00001000”時,此時輸出端會顯示出”100” 。 當我們輸入端輸入為“00000100”時,此時輸出端會顯示出”101” 。
實驗結果(4) 當我們輸入端輸入為“0000010”時,此時輸出端會顯示出”110” 。 當我們輸入端輸入為“00000001”時,此時輸出端會顯示出”111” 。
參考資料 主要的資料內容是參考王志湖老師上課所教授的內容及“數位邏輯”這本書。
END