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