版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、用VHDL語言和原理圖設計方法混合設計一個簡易時鐘電路一、實驗目的1通過實驗復習可編程邏輯器件開發(fā)軟件的圖形設計操作流程;2.掌握用硬件描述語言的方法設計組合邏輯電路BCD-七段顯示譯碼器;3. 掌握簡單時鐘電路的設計方法;3. 學習掌握自底向上的設計方法。二、實驗器材1、臺式計算機 1臺2、可編程邏輯邏輯器件實驗軟件1套3、下載電纜一套4、示波器一臺三、實驗說明1、臺式計算機用于向可編程邏輯邏輯器件實驗軟件提供編程、仿真、下載的平臺,供用戶使用。2、可編程邏輯邏輯器件實驗軟件向原理圖的設計和硬件描述語言的編程提供平臺,并將調(diào)試好的程序下載到可編程邏輯邏輯器件中。3、下載電纜是可編程邏輯器件軟
2、件和可編程邏輯邏輯器件之間的接口電纜,為了便于區(qū)別,用不同顏色導線區(qū)分下載電纜的電源、地和信號,一般用紅色導線接電源,用黑色導線接地。4、示波器用于觀察可編程邏輯邏輯器件執(zhí)行程序時輸出信號的變化四、實驗原理時鐘電路主要包括計秒,計分,以及計時,晶振可以產(chǎn)生一個一定頻率的時鐘信號,我們通過分頻可以很容易的得到一個1Hz的時鐘信號,這樣就可以計秒,在計夠60秒后計一分,計完60分后計一小時,這就是一個基本的時鐘的大致設計方法。在本次實驗中,考慮到實際條件限制,只有計秒和計分兩個部分。在計秒操作中可以通過設計一個十進制計數(shù)器和一個六進制計數(shù)器來計秒,計分也是通過一個十進制計數(shù)器和一個六進制計數(shù)器來實
3、現(xiàn)。一個基本的時鐘電路是需要每一位同時都能夠顯示的,但是在數(shù)碼管設計中都是采用位選來給某一位送數(shù),這就需要一個頻率高于人眼分辨能力的位選方式來實現(xiàn)。五、實驗內(nèi)容和步驟1、新建一個名為clock的工程文件,如圖5-1所示圖5-12、新建一個VHDL文件命名為div,設計一個分頻器來實現(xiàn)1Hz信號的產(chǎn)生,生成的電路模塊如圖5-1所示圖5-1 50MHz分頻產(chǎn)生1Hz脈沖信號代碼library ieee;entity div isport (clr,clk:in std_logic;q:out std_logic);end div ;architecture a of div is SIGNAL f
4、re_N : integer range 0 to 25000000;SIGNAL clk_tmp: std_logic;BEGINq <= clk_tmp;process(clk,clr)beginif clr = '0' thenfre_N <= 0;elsif falling_edge(clk) thenif fre_N >= 24999999 thenfre_N <= 0;clk_tmp <= not clk_tmp;elsefre_N <= fre_N + 1;end if;end if;end process;end a;3、新建
5、兩個VHDL文件分別命名為counter10和counter6,分別設計一個十進制計數(shù)器和六進制計數(shù)器,計秒和計分通過十進制和六進制的模塊產(chǎn)生,生成的電路模塊如圖5-2所示圖5-2十進制計數(shù)器代碼library ieee;entity count10 isport (clr,start,clk:in std_logic;cout:out std_logic;daout:out std_logic_vector(3 downto 0) );end count10;architecture a of count10 is signal cnt: std_logic_vector(3 downto
6、0);begindaout<= cnt;process(clk,clr)beginif(clr='0')thencnt<="0000"cout<= '0'elsif(CLK'event and CLK='1')thenif(start='1') thenif(cnt="1001") thencnt<="0000"cout<= '1'elsecnt<=cnt+1;cout<= '0'end i
7、f;elsecnt<=cnt;cout<= '0'end if;end if;end process;end a;六進制計數(shù)器代碼library ieee;entity count6 isport (clr,start,clk:in std_logic;cout:out std_logic;daout:out std_logic_vector(3 downto 0);end count6;architecture a of count6 is signal cnt: std_logic_vector(3 downto 0);begindaout<= cnt;p
8、rocess(clk)beginif(clr=0)thencnt<=”0000”;cout<= 0;elsif(CLKevent and CLK=1)thenif(start=1) thenif(cnt=”0101”) thencnt<=”0000”;cout<= 1;elsecnt<=cnt+1;cout<= 0;end if;elsecnt<=cnt;cout<= 0;end if;end if;end process;end a;4、新建一個VHDL文件命名為seltime,滿足計秒和計分的四位數(shù)的一個選擇電路,來將某一位送到對應的數(shù)碼管,
9、這樣這個模塊就具有了位選和送數(shù)的功能。根據(jù)實驗原理位選的頻率要求超過人眼分辨能力(這樣人眼會感覺到四位數(shù)碼管是同時顯示數(shù)據(jù))但又不能高過數(shù)碼管顯示的建立時間(如果太高數(shù)碼管會一直顯示8),根據(jù)這個原則新建一個VHDL文件命名為div1,設計一個為250Hz的分頻器,如圖5-3所示圖5-3125Hz信號產(chǎn)生代碼library ieee;entity div1 isport (clk,clr:in std_logic;q:out std_logic);end div1 ;architecture a of div1 is SIGNAL fre_N : integer range 0 to 2000
10、00;SIGNAL clk_tmp: std_logic;BEGINq <= clk_tmp;process(clk,clr)beginif(clr=0)thenfre_N<=0;elsif falling_edge(clk) thenif fre_N >= 199999 thenfre_N <= 0;clk_tmp <= not clk_tmp;elsefre_N <= fre_N + 1;end if;end if;end process;end a;數(shù)據(jù)選擇器代碼library ieee;entity seltime isport (clr,clk:i
11、n std_logic;dain1,dain2,dain3,dain4:in std_logic_vector(3 downto 0);sel:out std_logic_vector(1 downto 0);daout:out std_logic_vector(3 downto 0);end seltime;architecture a of seltime is SIGNAL count: STD_LOGIC_vector ( 1 downto 0);BEGINsel<= count when clr='1' else "11"process (
12、clk,clr)beginif (clr ='0') thencount<= "11"elsif (clk 'event and clk='1') thenif ( count >= "11") thencount<= "00"elsecount<= count + 1;end if; end if;end process;process(clk,clr)beginif (clr = '0') thendaout<= (others =>
13、39;0');elsecase count iswhen "00" =>daout<= dain1;when "01" =>daout<= dain2;when "10" =>daout<= dain3;when "11" =>daout<= dain4;when others =>daout<= (others => '0');end case;end if;end process;end a;5、在上述的數(shù)據(jù)選擇模塊中產(chǎn)生
14、的段選信號是4位的二進制數(shù),位選信號是兩位的二進制數(shù),這樣的數(shù)據(jù)數(shù)碼管并不能讀取,因此需要新建兩個VHDL文件命名為decode2_4和deld,分別用來設計兩個譯碼電路來產(chǎn)生數(shù)碼管可以識別的二進制數(shù)。如圖5-4的2-4譯碼電路主要實現(xiàn)位選,圖5-5的4-7譯碼電路只要實現(xiàn)段選。圖5-4 圖5-5二四譯碼器代碼library ieee;ENTITY decode2_4 ISPORT(SEL: IN std_logic_vector(1 downto 0); Q: OUT std_logic_vector(3 downto 0);END decode2_4;ARCHITECTURE a OF d
15、ecode2_4 ISBEGINQ <= "1110" when sel = "00" else"1101" when sel = "01" else"1011" when sel = "10" else"0111" when sel = "11" else"1111"END a;數(shù)碼管顯示代碼library ieee;entity deled isport(num: instd_logic_vector( 3
16、 downto 0);led: out std_logic_vector(6 downto 0);end deled;architecture fun of deled isbeginled<= "1111110" when num= "0000" else"0110000" when num= "0001" else"1101101" when num= "0010" else"1111001" when num= "0011"
17、 else"0110011" when num= "0100" else"1011011" when num= "0101" else"1011111" when num= "0110" else"1110000" when num= "0111" else"1111111" when num= "1000" else"1111011" when num= "1001" else"1110111" when num= "1010" else"0011111" when num= "1011" else"1001110" when num= "1100" el
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 纏繞成型課程設計
- 國際象棋的課程設計
- 游戲人物鑒賞課程設計
- 中考生物考前必背知識手冊(含習題詳解)
- 美化文字微課程設計
- 統(tǒng)計軟件課程設計預測
- 自然主題幼兒園課程設計
- 中風護理工作總結(jié)
- 電機順序啟動課程設計
- 2024年設備監(jiān)理師考試題庫含答案(基礎(chǔ)題)
- 貨款互抵三方協(xié)議合同范本
- 七年級道德與法治論文2000字(合集六篇)
- 嚴重精神障礙患者健康管理服務規(guī)范
- 風險預測分析及風險與機遇評估分析表
- 高中日語宣講 試聽課件
- 壓力彈簧力度計算器及計算公式
- 新生兒窒息診斷地專家共識
- 2023年重慶市旅游業(yè)統(tǒng)計公報要點
- 器械清洗的資料
- 路立得4.1roadleaderv3.0說明書Roadleader是鴻業(yè)研制的BIM系列軟件之一旨在
- 陜西省教育科學規(guī)劃課題開題報告
評論
0/150
提交評論