摘要:將經過仿真的設計下載到硬件實驗箱進行驗證。流水燈控制電路仿真如圖所示實驗引腳鎖定八個按鍵按鍵分別對應上的引腳。
(1)學習并掌握Quartus II的使用方法
(2)學習簡單時序電路的設計和硬件測試。
(3)學習使用VHDL 語言方法進行邏輯設計輸入
(4)學習設計一個流水燈電路,并在實驗開發系統上熟悉運行輸入及仿真步驟原理
(1) PC機一臺。
(2)Quartus Ⅱ開發軟件一套
(3)EDA實驗開發系統一套(EP1C12Q240C8)
FPGA 的所有I/O控制塊都可以允許每個1/O引腳多帶帶配置為輸入口,不過這種配置是系統自動完成的,一旦該輸入口被設置為輸入口使用時,該I/O控制模塊將直接使三態緩沖區的控制端接地,便得該IO 引腳對外呈高阻態,這樣該I/O引腳即可用作專用輸入引腳。只旦在KEY1-KEY8中有鍵輸入,要正確地分配并鎖定引腳后,在檢測到鍵盤輸入的情況下,繼續判斷其鍵盤值并作出相應的處理。
(1)基于VHDL 語言設計可用于控制LED流水燈的簡單邏輯電路,電路包含三個輸入、八個輸出。輸入信號為清零信號端CLR、時鐘信號CLK 和使能信號ENA,輸出信號Y接八個發光二極管。當清零信號端CLR 為低時,系統清零,此時8個LED燈全滅。當 ENA輸入信號為高電平,CLK的上升沿到來時,流水燈開始流動,流動順D1→D2→D3→D4→D5→D6→D7→D8,然后再返回D1;當ENA輸入信號為低電平時,流水燈暫停,保持在原有狀態。
其對應關系見表如下
(2)在Quartus II上用V
HDL 文本方式設計該流水燈電路;對該設計進行編輯、編譯、綜合、適配、仿真。將經過仿真的設計下載到硬件實驗箱進行驗證。注意選擇:輸入信號線3根(ENA接按鍵1,clr接按鍵2和CLK 接CLK0)、輸出線8根(接發光二極管指示燈);硬件測試時為便于觀察,流水速率最好在4Hz左右,測試時根據輸入信號的變化觀察輸出信號的改變。
流水燈控制電路仿真如圖所示
實驗引腳鎖定:
八個按鍵:按鍵1~8分別對應FPGA上的引腳233,234,235,236,237,238,239,240。
八個發光二極管:發光.極管D1~D8分別對應 FPGA 上的引腳168~161。
時鐘端口:CLKO對應28CLK2對應153,CLK5對應152,CLK90對應29。
(1)啟動Quartus II建立一個空白工程,然后命名為 HIGHT8.qpf。
(2)新建VHDL 源程序文件HIGHT8.vhd,輸入程序代碼并保存,進行綜合編譯,若編譯過程中發現錯誤,則找出并更正錯誤,直至編譯成功為止。
(3)選擇目標器件并對相應的引腳進行鎖定,在這里所選擇的器件為Altera公司 Cyclone系列的EPIC12Q240C8芯片。將未使用的管腳設置為三態輸入。則找出并更正錯誤,
(4)對該工程文件進行全程編譯處理,若在編譯過程中發現錯誤直至編譯成功為止。接到PC機的打印機并
(5)拿出 Altera Byte Blaster II下載電纜,并將此電纜的兩端分別接到PC機的打印機并口和實驗箱的JTAG下載口上,打開電源,執行下載命令,把程序下載到 FPGA器件中,觀察發光管發光二極管LED1~LED8的亮滅狀態。
在前面實驗的基礎上實現其他花樣流水顯示,控制8個 LED燈進行花樣顯示,設計3種
模式:
①從左到右逐個點亮LED;
實例代碼:
LIBRARY IEEE; --流水燈頂層文件USE IEEE.STD_LOGIC_1164.ALL;ENTITY HIGHT8 IS --頂層實體名稱PORT( --定義端口數據 CLK: IN STD_LOGIC; --定義時鐘信號輸入端口 CLR: IN STD_LOGIC; --定義清零控制端輸入端口 ENA: IN STD_LOGIC; --定義使能信號輸入端口 LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --定義LED燈輸出端口 );END;ARCHITECTURE BEHAV OF HIGHT8 IS SIGNAL A:INTEGER RANGE 0 TO 7; SIGNAL B:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINP1:PROCESS(CLK,CLR,ENA)BEGIN IF CLR="0" THEN C<="00000000"; ELSIF ENA="1" THEN IF CLK"EVENT AND CLK="1" THEN A<=A+1; END IF; END IF;END PROCESS P1;P2:PROCESS(A)BEGINCASE A IS --8位信號LED燈輸出控制 WHEN 0=>B<="10000000"; WHEN 1=>B<="01000000"; WHEN 2=>B<="00100000"; WHEN 3=>B<="00010000"; WHEN 4=>B<="00001000"; WHEN 5=>B<="00000100"; WHEN 6=>B<="00000010"; WHEN 7=>B<="00000001";END CASE;END PROCESS P2;P3:PROCESS(ENA)BEGIN IF CLR="1" AND ENA="0" THEN LED<=C; ELSE LED<=B; END IF;END PROCESS P3;END;
②從右到左逐個點亮LED;
示例代碼:
LIBRARY IEEE; --流水燈頂層文件USE IEEE.STD_LOGIC_1164.ALL;ENTITY HIGHT8 IS --頂層實體名稱PORT( --定義端口數據 CLK: IN STD_LOGIC; --定義時鐘信號輸入端口 CLR: IN STD_LOGIC; --定義清零控制端輸入端口 ENA: IN STD_LOGIC; --定義使能信號輸入端口 LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --定義LED燈輸出端口 );END;ARCHITECTURE BEHAV OF HIGHT8 IS SIGNAL A:INTEGER RANGE 0 TO 7; SIGNAL B:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINP1:PROCESS(CLK,CLR,ENA)BEGIN IF CLR="0" THEN C<="00000000"; ELSIF ENA="1" THEN IF CLK"EVENT AND CLK="1" THEN A<=A+1; END IF; END IF;END PROCESS P1;P2:PROCESS(A)BEGINCASE A IS --LED燈輸出控制 WHEN 0=>B<="00000001"; WHEN 1=>B<="00000010"; WHEN 2=>B<="00000100"; WHEN 3=>B<="00001000"; WHEN 4=>B<="00010000"; WHEN 5=>B<="00100000"; WHEN 6=>B<="01000000"; WHEN 7=>B<="10000000";END CASE;END PROCESS P2;P3:PROCESS(ENA)BEGIN IF CLR="1" AND ENA="0" THEN LED<=C; ELSE LED<=B; END IF;END PROCESS P3;END;
③從中間到兩邊逐個點亮LED,3種模式循環切換,由復位鍵控制系統的運行和停止。
示例代碼:
LIBRARY IEEE; --流水燈頂層文件USE IEEE.STD_LOGIC_1164.ALL;ENTITY HIGHT8 IS --頂層實體名稱PORT( --定義端口數據 CLK: IN STD_LOGIC; --定義時鐘信號輸入端口 CLR: IN STD_LOGIC; --定義清零控制端輸入端口 ENA: IN STD_LOGIC; --定義使能信號輸入端口 LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --定義LED燈輸出端口 );END;ARCHITECTURE BEHAV OF HIGHT8 IS SIGNAL A:INTEGER RANGE 0 TO 7; SIGNAL B:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINP1:PROCESS(CLK,CLR,ENA)BEGIN IF CLR="0" THEN C<="00000000"; ELSIF ENA="1" THEN IF CLK"EVENT AND CLK="1" THEN A<=A+1; END IF; END IF;END PROCESS P1;P2:PROCESS(A)BEGINCASE A IS --LED燈輸出控制 WHEN 0=>B<="00011000"; WHEN 1=>B<="00100100"; WHEN 2=>B<="01000010"; WHEN 3=>B<="10000001"; WHEN 4=>B<="10000001"; WHEN 5=>B<="01000010"; WHEN 6=>B<="00100100"; WHEN 7=>B<="00011000";END CASE;END PROCESS P2;P3:PROCESS(ENA)BEGIN IF CLR="1" AND ENA="0" THEN LED<=C; ELSE LED<=B; END IF;END PROCESS P3;END;
合并代碼段:
編譯中ing....
(1)選擇實驗電路模式5
(2)設計仿真文件,進行軟件驗證
(3)用VHDL程序設計方法實現流水燈設計
(4)通過下載線下載到實驗系統上進行硬件測試驗證
工程源代碼下載:流水燈電路設計源代碼–VHDL
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/124046.html
摘要:基礎入門教程無奈的吐槽一轉眼大學就快結束了,這是我第一次在上寫博客。由一個歐洲開發團隊于年冬季開發。其成員包括和等。它構建于開放原始碼介面版,并且具有使用類似語言的開發環境。首先是程序部分。 ...
摘要:機器學習作為時下最為火熱的技術之一受到了廣泛的關注。文中給出的個建議都是針對機器學習系統的,沒有包含通用軟件工程里那些單元測試,發布流程等內容,在實踐中這些傳統最佳實踐也同樣非常重要。 圖片描述 「觀遠AI實戰」欄目文章由觀遠數據算法天團傾力打造,觀小編整理編輯。這里將不定期推送關于機器學習,數據挖掘,特征重要性等干貨分享。本文8千多字,約需要16分鐘閱讀時間。 機器學習作為時下最為火...
摘要:初始化引腳和基礎設置利用宏定義定義引腳高或者低全部引腳為高原理圖是低平點亮高電平滅利用宏定義設置時間關閉燈流水燈延時時間為的值先關閉全部燈循環流水燈 /* US...
閱讀 1003·2023-04-25 19:35
閱讀 2665·2021-11-22 09:34
閱讀 3692·2021-10-09 09:44
閱讀 1726·2021-09-22 15:25
閱讀 2941·2019-08-29 14:00
閱讀 3376·2019-08-29 11:01
閱讀 2602·2019-08-26 13:26
閱讀 1740·2019-08-23 18:08