一? 實驗目的
1掌握VHDL語言的基本結構及設計的輸入方法。
2掌握VHDL語言的組合電路設計方法。
二? 實驗設備與儀器
1 計算機
2 MAX+PLUSⅡ工具軟件
3 EDA–V型實驗箱
4 編程器件:FLEX10K10LC84-4
三? 實驗內容
設計并實現一個16-4優先編碼器
四? 實驗原理
?常用的編碼器有:4-2編碼器、8-3編碼器、16-4編碼器,下面我們用一個8-3編碼器的設計來介紹編碼器的設計方法。
8-3編碼器如圖8-1所示,其真值表如表8-1。
圖8-1? 8-3編碼器
表8-1 8-3優先編碼器真值表
?
輸入 ? |
輸出 ? ? |
||||||||||||
EIN ? ? |
0N ? ? |
1N ? ? |
2N ? ? |
3N ? ? |
4N ? ? |
5N ? ? |
6N ? ? |
7N ? ? |
A2N ? ? |
A1N ? ? |
A0N ? ? |
GSN ? ? |
EON ? ? |
1 ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
0 ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
0 ? ? |
0 ? ? |
0 ? ? |
0 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
X ? ? |
X ? ? |
X ? ? |
X ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
X ? ? |
X ? ? |
X ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
0 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
X ? ? |
X ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
X ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
0 ? ? |
1 ? ? |
0 ? ? |
0 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
1 ? ? |
0 ? ? |
1 ? ? |
?
整個編碼器的VHDL語言描述如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ENCODE IS
?PORT(D:?IN?STD_LOGIC_VECTOR(7 DOWNTO 0);
??EIN:?IN?STD_LOGIC;
??A0N,A1N,A2N,GSN,EON:?OUT STD_LOGIC);
END ENCODE;
ARCHITECTURE A OF ENCODE IS
SIGNAL Q:?STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
A0N <=Q(0);? A1N<=Q(1);? A2N<=Q(2);
?PROCESS(D)
?BEGIN
??IF EIN =’1’ THEN
???Q<=”111”;
GSN<=’1’;? EON<=’1’;
??ELSIF?D(0)=’0’?THEN
???Q<=”111”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D(1)=’0’?THEN
???Q<=”110”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D(2)=’0’?THEN
???Q<=”101”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D(3)=’0’?THEN
???Q<=”100”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D(4)=’0’?THEN
???Q<=”011”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D(5)=’0’?THEN
???Q<=”010”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D(6)=’0’?THEN
???Q<=”001”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D(7)=’0’?THEN
???Q<=”000”;?GSN<=’0’;?EON<=’1’;
??ELSIF?D=”11111111”??THEN
???Q<=”111”;?GSN<=’1’;?EON<=’0’;
??END IF;
?END PROCESS;
END A;
??
五? 實驗步驟
1 請參考以上程序,編程實現設一個16-4優先編碼器。
2 將編輯好的電路進行編譯和仿真。
3輸入信號接實驗箱的撥碼開關,輸出信號接發光二極管。改變撥碼開關的狀態,觀察實驗結果。
4將ByteBlaster電纜的一端與計算機的并行口相連,另一端10針陰頭與實驗板的插座相連。
5 選擇菜單命令Options/Hardware Setup,出現圖3-67所示設置編程硬件對話框。在Hardware Type欄的下拉條中選擇Byte Blaster;
6 單擊Configure按鈕,即開始配置器件。若器件或電纜或電源有問題,則會產生錯誤警告信息。
六? 記錄實驗結果并完成實驗報告
記錄實驗結果并完成實驗報告。對16-4優先編碼器造表,得到其真值表,并分析其運算結果的正確性。
評論
查看更多