




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、用VHDL語言和原理圖設計方法混合設計一個簡易時鐘電路一、實驗目的1通過實驗復習可編程邏輯器件開發(fā)軟件的圖形設計操作流程;2.掌握用硬件描述語言的方法設計組合邏輯電路BCD-七段顯示譯碼器;3. 掌握簡單時鐘電路的設計方法;3. 學習掌握自底向上的設計方法。二、實驗器材1、臺式計算機 1臺2、可編程邏輯邏輯器件實驗軟件1套3、下載電纜一套4、示波器一臺三、實驗說明1、臺式計算機用于向可編程邏輯邏輯器件實驗軟件提供編程、仿真、下載的平臺,供用戶使用。2、可編程邏輯邏輯器件實驗軟件向原理圖的設計和硬件描述語言的編程提供平臺,并將調試好的程序下載到可編程邏輯邏輯器件中。3、下載電纜是可編程邏輯器件軟
2、件和可編程邏輯邏輯器件之間的接口電纜,為了便于區(qū)別,用不同顏色導線區(qū)分下載電纜的電源、地和信號,一般用紅色導線接電源,用黑色導線接地。4、示波器用于觀察可編程邏輯邏輯器件執(zhí)行程序時輸出信號的變化四、實驗原理時鐘電路主要包括計秒,計分,以及計時,晶振可以產生一個一定頻率的時鐘信號,我們通過分頻可以很容易的得到一個1Hz的時鐘信號,這樣就可以計秒,在計夠60秒后計一分,計完60分后計一小時,這就是一個基本的時鐘的大致設計方法。在本次實驗中,考慮到實際條件限制,只有計秒和計分兩個部分。在計秒操作中可以通過設計一個十進制計數(shù)器和一個六進制計數(shù)器來計秒,計分也是通過一個十進制計數(shù)器和一個六進制計數(shù)器來實
3、現(xiàn)。一個基本的時鐘電路是需要每一位同時都能夠顯示的,但是在數(shù)碼管設計中都是采用位選來給某一位送數(shù),這就需要一個頻率高于人眼分辨能力的位選方式來實現(xiàn)。五、實驗內容和步驟1、新建一個名為clock的工程文件,如圖5-1所示圖5-12、新建一個VHDL文件命名為div,設計一個分頻器來實現(xiàn)1Hz信號的產生,生成的電路模塊如圖5-1所示圖5-1 50MHz分頻產生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ù)器,計秒和計分通過十進制和六進制的模塊產生,生成的電路模塊如圖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信號產生代碼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ù)選擇模塊中產生
14、的段選信號是4位的二進制數(shù),位選信號是兩位的二進制數(shù),這樣的數(shù)據(jù)數(shù)碼管并不能讀取,因此需要新建兩個VHDL文件命名為decode2_4和deld,分別用來設計兩個譯碼電路來產生數(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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 變電站無人機智能巡檢實施的挑戰(zhàn)與對策
- 中西醫(yī)結合內科學之呼吸系統(tǒng)疾病知到課后答案智慧樹章節(jié)測試答案2025年春湖南中醫(yī)藥大學
- 應急預案管理辦法
- 高二下學期開學考試卷
- 廣西桂林賀州崇左三市高三第二次聯(lián)合調研考試英語試題
- 綠色健康養(yǎng)殖?維護食品安全-安徽省無為市畜禽養(yǎng)殖場獸用抗菌藥使用減量化實施行動概述
- 貴州六盤水食用菌產業(yè)發(fā)展的SWOT分析
- 金黃色葡萄球菌噬菌體裂解酶LysGH15外用制劑的初步研制
- 浙江專用2025版高考地理大三輪復習非選擇題專練專練三意義和影響描述類新人教版
- 辦理資質合同范例
- 消防安全知識培訓-課件
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 酒店安全緊急疏散預案
- 混合碳酸稀土項目立項申請報告
- 2024年度林下經濟發(fā)展與合作合同
- 2024-2030年中國馬鈴薯全粉行業(yè)市場深度調研及發(fā)展前景與投資研究報告
- 2024安全員知識考試題(全優(yōu))
- 高考招生咨詢服務合同
- 玻璃加工工藝流程單選題100道及答案解析
- 《二倍角的正弦、余弦、正切公式》名師課件2
- RTCADO-311A-2017原版完整文件
評論
0/150
提交評論