《EDA實驗指導書》word版_第1頁
《EDA實驗指導書》word版_第2頁
《EDA實驗指導書》word版_第3頁
《EDA實驗指導書》word版_第4頁
《EDA實驗指導書》word版_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.實驗一 熟悉QUARTUS 的設計過程輸入方式:文本輸入、圖形輸入、波形輸入等一、實驗目的:1、掌握QUARTUS安裝過程;2、熟悉QUARTUS設計環(huán)境;3、掌握QUARTUS的設計過程。二、實驗內容及步驟(一)、安裝QUARTUS II。注:第一次安裝QUARTUS要安裝license。(二)、QUARTUS設計開發(fā)步驟1、在windows中建立一個文件夾,用于保存設計工程項目的有關文件。注:設計工程項目的有關文件不能保存在根目錄下,必須保存在一個文件夾之下;文件夾不能用中文,不可帶空格,最好也不要用數(shù)字。例如建立的文件夾:E:mux.2、點擊QUARTUS7.2打開QUARTUS7.2

2、設計窗口。點擊Filenew新建立一個文本設計文件。用文本輸入法輸入程序。程序見附錄。 3、保存文檔并設置工程,對工程文件進行邏輯綜合。(查看設計實體的RTL圖)4、對設計做功能仿真,驗證設計實體邏輯功能。5、管腳鎖定并結構綜合(適配)。6、進行時序仿真,驗證設計的時序是否滿足設計要求。7、執(zhí)行文件匯編,生成下載所需的文件。8、編程下載。注:詳細的使用說明見教材相關章節(jié)。附錄:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT (CLK,RST,EN : IN

3、 STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10;ARCHITECTURE behav OF CNT10 ISBEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = '1' THEN CQI := (OTHERS =>'0') ; -計數(shù)器復位 ELSIF CLK'EVENT AND CLK='1'

4、; THEN -檢測時鐘上升沿 IF EN = '1' THEN -檢測是否允許計數(shù) IF CQI < "1001" THEN CQI := CQI + 1; -允許計數(shù) ELSE CQI := (OTHERS =>'0');-大于9,計數(shù)值清零 END IF; END IF; END IF; IF CQI = "1001" THEN COUT <= '1' -計數(shù)大于9,輸出進位信號 ELSE COUT <= '0' END IF; CQ <= CQI; -將

5、計數(shù)值向端口輸出 END PROCESS;END behav;實驗二 一位二進制全加器的VHDL設計一:實驗目的1、鞏固QUARTUS 設計過程和設計環(huán)境。2、了解VHDL結構體的三種描述方式。3、鞏固VHDL語言的構成要素。二、實驗內容全加器的結構圖如上圖。用VHDL語言描述其功能。先描述半加器和或門電路,然后用例化語句將半加器和或門電路連接構成全加器。1、用VHDL語言描述一位二進制全加器中的或門,并編譯仿真通過后保存?;蜷T電路程序如下:LIBRARY IEEE ;-或門邏輯描述USE IEEE. STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a,b :

6、IN STD_LOGIC;c : OUT STD_LOGIC );END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c <= a OR b; END ARCHITECTURE one;功能仿真如圖一圖一2、用VHDL語言描述一位二進制全加器中的半加器,并編譯仿真通過后保存。半加器電路程序如下:LIBRARY IEEE; -半加器描述(1)USE IEEE. STD_LOGIC_1164.ALL;ENTITY hadder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END

7、 ENTITY hadder; ARCHITECTURE fh1 OF hadder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ;BEGIN abc <= a & b ; PROCESS(abc) BEGIN CASE abc IS WHEN "00" => so<='0' co<='0' ; WHEN "01" => so<='1' co<='0' ; WHEN "10"

8、=> so<='1' co<='0' ; WHEN "11" => so<='0' co<='1' ; WHEN OTHERS => NULL ; END CASE; END PROCESS;END ARCHITECTURE fh1;功能仿真如圖2 圖二3、全加器頂層描述程序LIBRARY IEEE; -1位二進制全加器頂層設計描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY fadder IS PORT (ain,bin,cin : IN

9、STD_LOGIC; cout,sum : OUT STD_LOGIC ); END ENTITY fadder; ARCHITECTURE fd1 OF fadder IS COMPONENT hadder -半加器元器件例化(調用半加器) PORT ( a,b : IN STD_LOGIC; co,so : OUT STD_LOGIC); -半加器管腳 END COMPONENT ; COMPONENT or2a -或門元器件例化(調用或門電路) PORT (a,b : IN STD_LOGIC; c : OUT STD_LOGIC); -或門器件管腳 END COMPONENT;SIGN

10、AL d,e,f : STD_LOGIC; -定義連接導線 BEGIN u1 : hadder PORT MAP(a=>ain,b=>bin,co=>d,so=>e); u2 : hadder PORT MAP(a=>e,b=>cin,co=>f,so=>sum); u3 : or2a PORT MAP(a=>d,b=>f,c=>cout); -電路連接關系 END ARCHITECTURE fd1;4、將fadder設置為工程文件,編譯仿真驗證其功能。功能仿真如圖三圖三三、理解Component的作用。 實驗三 用原理圖輸入法

11、設計8位全加器一、實驗目的: 熟悉和掌握用QUARTUS 的原理圖輸入方法設計簡單組合電路的方法,并通過一個8位全加器的設計掌握用EDA軟件進行電子線路設計的詳細流程。二、實驗原理:一個8位全加器可以由8個1位全加器構成,加法器間的進位可以串行方式實現(xiàn),即將低位加法器的進位輸出cout與相鄰的高位加法器的最低位輸入信號cin相接。三、實驗內容:1、打開原理圖編輯器,完成半加器和全加器的設計。包括原理圖輸入、編譯、綜合、適配、仿真、實驗板上的硬件測試,并將此全加器電路符號入庫。詳細的過程見教材相關章節(jié)。根據以上步驟畫出以下原理圖:1位半加器的原理圖如圖一。名字hadder. 圖一在完成1位半加器

12、的原理圖后,進行編譯綜合之后,選擇FilecreateCreate Symbol file for current file,將文件變成一個包裝好的單一元件模塊待調用。仿真效果是:運用以上包裝好的1位半加器可畫以下1 位全加器,如圖二。名字adder。 圖二在完成1位全加器的原理圖后,進行編譯綜合之后,選擇FilecreateCreate Symbol file for current file,將文件變成一個包裝好的單一元件模塊待調用。仿真效果如圖三: 圖三 2、建立一個更高的原理圖設計層次,利用以上獲得的1位全加器構成8位全加器,并完成編譯、綜合、適配、仿真和測試。運用以上包裝好的1 位半

13、加器、全加器,可畫以下8位的全加器,如圖四 圖四 仿真效果如圖五: 圖五四、注意:每一個設計(文本或原理圖)都能創(chuàng)建一個原理圖符號,并且也只可以在同工程設計中被調用。實驗四 設計含異步清零和同步時鐘使能的加法計數(shù)器一、實驗目的:學習計數(shù)器的設計、仿真,進一步熟悉VHDL設計技術。二、實驗原理:設計一個加法計數(shù)器,具有異步清零和同步時鐘使能功能。三、實驗內容:在QUARTUS 上對下列程序進行編輯、編譯、綜合、適配、仿真,說明程序中各語句的作用,詳細描述其功能特點,給出其所有信號的時序仿真波形。打開QUARTUS 后,建立一個文本文件然后在文本編輯器中輸入以下程序:LIBRARY IEEE;US

14、E IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT ( CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISBEGIN PROCESS(CLK,RST,EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='1&

15、#39; THEN CQI:=(OTHERS=>'0'); -計數(shù)器復位 ELSIF CLK'EVENT AND CLK='1' THEN -檢查時鐘上升沿 IF EN='1' THEN -檢查是否允許計數(shù) IF CQI<9 THEN CQI:=CQI+1; -允許計數(shù)檢查是否小于9 ELSE CQI:=(OTHERS=>'0'); -大于9計數(shù)器清零 END IF; END IF; END IF; IF CQI = 9 THEN COUT<='1'-計數(shù)大于9,輸出進位信號 ELS

16、E COUT<='0' END IF; CQ<=CQI;-將計數(shù)值向端口。 END PROCESS;END behav;再建立一個波形文件,進行時序仿真后得到圖(一): 圖(一)四、思考題:理解時序邏輯電路的設計的方法。實驗五 數(shù)控偶數(shù)倍分頻器的設計一、實驗目的:1、 學習數(shù)控分頻器的設計、分析和測試方法。2、 學習偶數(shù)倍分頻器的設計。二、實驗原理:數(shù)控分頻器的功能就是當在輸入端給定不同輸入數(shù)據時,將對輸入的時鐘信號有不同的分頻比。數(shù)控偶數(shù)倍分頻器可以用加法計數(shù)器來實現(xiàn)-將計數(shù)溢出位與預置數(shù)加載輸入信號相接即可。三、實驗內容:1:根據邏邏輯功能,用文本輸入法設計程序

17、如下:程序一、 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpin IS PORT ( CLK : IN STD_LOGIC; D : IN INTEGER RANGE 0 TO 255; FOUT : OUT STD_LOGIC );END;ARCHITECTURE one OF fenpin IS SIGNAL FULL : STD_LOGIC;SIGNAL TMEP :INTEGER RANGE 0 TO 255; BEGIN TMEP<=D/2; P_REG:

18、 PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CNT8 = TMEP THEN CNT8 := "00000000" FULL <= '1' ELSIF CLK'EVENT AND CLK = '1' THEN CNT8 := CNT8 + 1; FULL <= '0' end if; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC

19、; BEGIN IF FULL'EVENT AND FULL = '1' THEN CNT2 := NOT CNT2; IF CNT2 = '1' THEN FOUT <= '1' ELSE FOUT <= '0' END IF; END IF; END PROCESS P_DIV ;END;程序二、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpin IS PORT ( CLK : IN S

20、TD_LOGIC; D : IN STD_LOGIC_vector(7 downto 0); FOUT : OUT STD_LOGIC );END;ARCHITECTURE one OF fenpin IS SIGNAL FULL : STD_LOGIC;SIGNAL TMEP : STD_LOGIC_vector(7 downto 0); BEGINTmep(6 downto 0)<=d(7 downto 1);Tmep(7)<=d(0); P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGI

21、N IF CNT8 = TMEP THEN CNT8 := "00000000" FULL <= '1' ELSIF CLK'EVENT AND CLK = '1' THEN CNT8 := CNT8 + 1; FULL <= '0' end if; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULL'EVENT AND FULL = '1' THEN CNT2 := NO

22、T CNT2; IF CNT2 = '1' THEN FOUT <= '1' ELSE FOUT <= '0' END IF; END IF; END PROCESS P_DIV ;END;*理解進程P_REG和P_DIV的作用。2:輸入不同的CLK頻率和預置值D,給出時序波形如圖一。圖一3:擴展成16位分頻器,并提出此項設計的數(shù)項實用示例。仿真圖如圖二。圖二四、思考題:請給出幾種分頻電路的不同的設計方法。實驗六 用狀態(tài)機實現(xiàn)序列檢測器的設計一、實驗目的1、熟悉狀態(tài)機的作用及設計方法;2、學習用狀態(tài)機實現(xiàn)序列檢測器的設計,并對其進行仿

23、真和硬件測試。二、實驗原理序列檢測器可用于檢測一組或多組由二進制碼組成的脈沖序列信號,當序列檢測器連續(xù)收到一組串行二進制碼后,如果與檢測器預先設置的碼相同,則輸出為1,否則輸出為0。三、實驗內容1、狀態(tài)轉換圖2、設計一個序列檢測器,對1110010進行檢測。程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CHECK ISPORT(CLK,XI,CLR:IN STD_LOGIC;ZO:OUT STD_LOGIC);END CHECK ;ARCHITECTURE STR OF CHECK ISTYPE STATES IS(S0,S1,S2,

24、S3,S4,S5,S6,S7);SIGNAL STATE: STATES;BEGINPROCESS(clk,XI,clr,STATE) BEGIN IF CLR='1' THEN STATE<=S0; ELSIF(CLK'EVENT AND CLK='1')THEN CASE STATE IS WHEN S0=>ZO<='0'IF(XI='1')THEN STATE<=S1;ELSE STATE<=S0; END IF; WHEN S1=>ZO<='0'IF(XI=

25、'1')THEN STATE<=S2;ELSE STATE<=S0; END IF; WHEN S2=>ZO<='0'IF(XI='1')THEN STATE<=S3;ELSE STATE<=S0; END IF; WHEN S3=>ZO<='0'IF(XI='0')THEN STATE<=S4;ELSE STATE<=S3; END IF; WHEN S4=>ZO<='0'IF(XI='0')THEN STATE<=S5;ELSE STATE<=S1; END IF; WHEN S5=>ZO<='0'IF(XI='1')THEN STATE<=S6;ELSE STATE<=S0; END IF; WHEN S6=>ZO<='0'IF(XI='0')THEN STATE<=S7;ELSE STATE<=S2; END IF; WHEN S7=>ZO<='1'IF(XI=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論