




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、組員:黃權(quán) 江飛 8011102班電子科學(xué)與技術(shù)專業(yè)課實驗實 驗 報 告班級 08011102 學(xué)號 2011301809 姓名 黃 權(quán) 2014 年 11 月 6 日實驗一 組合邏輯半加器一 實驗?zāi)康?設(shè)計一個組合邏輯半加器。2.掌握組合邏輯電路的靜態(tài)測試方法。3.初步了解可編程邏輯器件設(shè)計的全過程。4.熟識quartusII軟件基本功能的使用。二 實驗原理半加器實現(xiàn)兩位不帶進位加法輸出和及進位。一位半加器有兩個輸入a、b;兩個輸出s,Co。三.實現(xiàn)代碼及原理圖1.實驗代碼library ieee;use ieee.std_logic_1164.all;entity half_adder i
2、sport(a,b: in std_logic;sum,cout: out std_logic);end half_adder;architecture half1 of half_adder issignal c,d:std_logic;beginc=a or b;d=a nand b;cout=not d;sum=c and d;end half1;2.實驗原理圖四.實驗結(jié)果及波形分析1.仿真波形2.波形分析a.如圖標記部分,在仿真波形圖中任取兩處為例進行分析:橢圓1處:輸入a為0,b為1,輸出進位Co為0,和S為1。橢圓2處:輸入a為1,b為0,輸出進位Co為0,和S為1。由于分析部分為
3、隨意抽取,具有普遍性,且分析結(jié)果符合半加器性能,所以實驗成功。b.圖中,在輸入a、b都是下降沿時,輸出S的波形出現(xiàn)毛刺,根據(jù)數(shù)電中學(xué)過的知識可以知道:產(chǎn)生毛刺是由于信號在通過半加器內(nèi)的連線和邏輯單元時,有一定的時延而產(chǎn)生冒險。實驗二 組合邏輯3-8譯碼器的設(shè)計一、實驗?zāi)康脑O(shè)計并實現(xiàn)一個組合邏輯3-8譯碼器。熟識quartus II軟件基本功能的使用。二、實驗原理常用的譯碼器有:2-4譯碼器、3-8譯碼器、4-16譯碼器,下面我們用一個3-8譯碼器的設(shè)計來介紹譯碼器的設(shè)計方法。3-8譯碼器如圖1所示,其真值表如表1。圖1 3-8譯碼器表1 3-8譯碼器真值表:輸入輸出G1G2AG2BABCY0N
4、Y1NY2NY3NY4NY5NY6NY7N0XXXXX111111111000000111111110000110111111100010110111111000111110111110010011110111100101111110111001101111110110011111111110三、實驗步驟 1、建立工程encode,新建VHDL文件輸入以下代碼保存為encode38.vhdl。打開encode38.vhdl文件,選擇File Creat/Update Creat Symbol Files for Current Files 生成頂層符號文件。 LIBRARY IEEE;USE
5、IEEE.STD_LOGIC_1164.ALL;ENTITY decoder38 ISPORT(A, B,C,G1,G2A,G2B: INSTD_LOGIC;Y: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END decoder38;ARCHITECTURE fun OF decoder38 ISSIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINindata YYYYYYYYY=XXXXXXXX;END CASE;ELSEY=11111111;END IF;END PROCESS encoder;END fun; 2、然后新
6、建一個Block Diagramm/Schematic File 原理圖文件,在空白處雙擊添加生成的頂層原理圖,并連接input、output(輸入輸出管腳)重命名后如圖2所示。保存文件encoder38.bdf。圖2 3-8譯碼器原理圖3、點擊主工具欄上的圖標進行半編譯,完成后新建一個波形仿真文件FileNewVerification/Debugging FilesVector Vaveform File.,然后在左邊空白處雙擊左鍵添加仿真管腳。完成后添加激勵信號的波形,首先使用鼠標選中一個信號(變藍),利用左邊工具添加仿真信號,根據(jù)需要依次添加各個信號并保存。4、功能仿真選擇Process
7、ingSimulator Tool 在彈出對話框中在仿真模式中選擇”Functional” 然后點擊”Generate Functional Simulation Netlist”生成功能仿真的Netlist,完成后點擊”Start”按鈕開始仿真,完成后點擊”Report”來查看仿真結(jié)果。如圖3所示。圖3 仿真結(jié)果四、實驗分析根據(jù)仿真結(jié)果圖可以看出,當(dāng)不滿足G1=1 ,G2A=0 ,G2B=0時,譯碼器的輸出全為1;當(dāng)滿足以上條件時,完成譯碼工作,即:當(dāng)CBA= 000時,輸出Y為 11111110;(Y0為0)當(dāng)CBA= 001時,輸出Y為 11111101;(Y1為0)可見,經(jīng)過仿真,該譯
8、碼器完成了正常譯碼功能。實驗三 四位寄存器一、 實驗?zāi)康?1. 掌握寄存器的設(shè)計方法和設(shè)計思路;2. 熟悉VHDL語言和Quartus II 軟件的使用。二、 設(shè)計原理: 單向四位寄存器輸入有三個端口,分別為時鐘clk,異步置位端r和4位數(shù)據(jù)輸入端d(3 downo0);一個4位輸出端q(3 downto 0)。當(dāng)r=1時,輸出端q清零;當(dāng)時鐘的上升沿到來時,把數(shù)據(jù)送到輸出端,完成數(shù)據(jù)的寄存。三、設(shè)計VHDL源代碼: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_
9、unsigned.all;entity jcq is port( clk:in std_logic; r:in std_logic; d:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0) );end jcq;architecture rtl of jcq is signal q_temp:std_logic_vector(3 downto 0); begin process(clk,r) begin if(r=1)then q_temp=0000; elsif(clkevent and clk=1)then
10、q_temp=d; end if; q=q_temp; end process;end rtl;四、生成的元件圖 五、仿真波形與分析1.當(dāng)r=1時:分析:r=1時,輸出端被清零,從波形圖可看出q在任意時刻始終為0.2.當(dāng)r=0時:分析:當(dāng)r=0時,數(shù)據(jù)輸入端d對數(shù)據(jù)接收端q的賦值并不是與時鐘完全同步,而是有一定的錯開,這是因為邏輯門總有一定的傳輸延遲導(dǎo)致的。經(jīng)實驗發(fā)現(xiàn),如果時鐘周期越大,則這種延遲越明顯,當(dāng)達到一定的臨界值時,輸入與輸出完全不對稱了。以下為時鐘clk=100ns數(shù)據(jù)輸入周期大于100ns的情形: 可見,數(shù)據(jù)輸入端d基本上與與數(shù)據(jù)接收端錯開了。實驗四 單時鐘同步十六進制加/減計數(shù)
11、器的設(shè)計一、 實驗?zāi)康模?. 掌握計數(shù)器的設(shè)計原理和方法;2. 理解雙向計數(shù)器的工作原理;3. 熟悉VHDL語言的使用和編程思想。二、 設(shè)計原理:該計數(shù)器共有5個輸入端,分別為時鐘clk、使能端enable、置數(shù)端load、和4個預(yù)置數(shù)端d1,d2,d3,d4;2個中間信號d和y,其中d接收d1,d2,d3,d4的數(shù)據(jù),即d=(d1 & d2 & d3 & d4);y作為臨時計數(shù)變量。兩個輸出端口c和4位的q,其中c是進位輸出,q是計數(shù)輸出。當(dāng)load=0,計數(shù)預(yù)置位y=d;進位c=0置零;當(dāng)時鐘上升沿到來且使能端enable=0時,允許計數(shù)。如果updown=0,進行加法計數(shù),如果updow
12、n=1,進行減法計數(shù);當(dāng)時鐘上升沿到來且使能端enable=1時,不計數(shù)而保持上一次的計數(shù)狀態(tài)。三、設(shè)計的源代碼: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ls191 is port(clk,enable,load,updown,d0,d1,d2,d3:in std_logic; c:out std_logic; q:out std_logic_vector(3 downto 0);end ls191;architec
13、ture rtl of ls191 issignal y,d:std_logic_vector(3 downto 0); beginprocess(clk,enable,load,updown) begin d=d3&d2&d1&d0; if(load=0)then y=d; c=0; elsif(clkevent and clk=1)then if enable=0 thenif updown=0 then if(y=1111)theny=0000;c=1; elsey = y+1;c=0; end if; elsif updown=1 then if(y=0000)theny=1111;c
14、=1; elsey=y-1;c=0; end if; end if; elsif enable=1then y=y; end if; end if; end process; q a,b=b,clk=clk,q=multtmp); U2:adder port map(add1=multtmp,add2=accum,clk=clk,sum=addertmp); U3:DTrigger port map(d=addertmp,clk=clk,q=accum); end architecture top_archi;2. 8x8乘法器: library ieee;use ieee.std_logic
15、_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_signed.all;entity mult8x8 is port( a,b:in std_logic_vector(7 downto 0); clk:in std_logic; q:out std_logic_vector(15 downto 0) );end mult8x8;architecture mult8x8_archi of mult8x8 is begin process(clk,a,b) variable a_reg,b_reg:signed(7 downto 0
16、); variable mult_reg:signed(15 downto 0); begin if(clkevent and clk=1)then a_reg := signed(a); b_reg := signed(b); mult_reg := a_reg * b_reg; end if; q = std_logic_vector(mult_reg); end process;end architecture mult8x8_archi;3. 16位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith
17、.all;use ieee.std_logic_signed.all;entity adder is port( clk:in std_logic; add1,add2:in std_logic_vector(15 downto 0); sum:out std_logic_vector(15 downto 0) );end adder;architecture adder_archi of adder is signal temp:signed(15 downto 0); begin process(clk,add1,add2) begin if(clkevent and clk=1)then
18、 temp = signed(add1) + signed(add2); else temp = temp; end if; end process; sum = std_logic_vector(temp);end architecture adder_archi;4. 8位D觸發(fā)器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity DTrigger is port( clk:in std_logic; d:in std_logic_vector(15 downto 0); q:out std_logic_vector(15 downto 0) );end entity DTrigger ;architecture DTrigger_archi of DTrigger is signal temp:signed(15 downto 0); begin process(clk,d) be
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC GUIDE 98-3-SP2:2011 EN Supplement 2 - Uncertainty of measurement - Part 3: Guide to the expression of uncertainty in measurement (GUM:1995) - Extension to any numbe
- 【正版授權(quán)】 IEC 62868-2-2:2020+AMD1:2025 CSV EN Organic light emitting diode (OLED) light sources for general lighting - Safety - Part 2-2: Particular requirements - Integrated OLED mod
- 語言結(jié)構(gòu)辨析課教案
- 新聞傳媒行業(yè)新聞寫作與編輯技能考核
- 銀行風(fēng)控考試試題及答案
- 疫情防控考試試題及答案
- 醫(yī)院醫(yī)德醫(yī)風(fēng)考試試題及答案
- 醫(yī)院禮儀考試試題及答案
- 六一幼兒園活動方案
- 六一活動帶水果活動方案
- 2025年河南高考真題化學(xué)試題含答案
- 陜西省榆林市2023-2024學(xué)年高二下學(xué)期期末質(zhì)量檢測政治試卷(含答案)
- 2025年高考全國二卷數(shù)學(xué)高考真題解析 含參考答案
- 2025年普通高等學(xué)校招生全國統(tǒng)一考試數(shù)學(xué)試題(全國一卷)(有解析)
- 護士文職面試題及答案
- 解剖期末試題題庫及答案
- 【高分復(fù)習(xí)筆記】胡裕樹《現(xiàn)代漢語》(重訂本)筆記和課后習(xí)題(含考研真題)詳解
- 中國未來幾年直流電源屏行業(yè)市場前景預(yù)測及投資價值評估分析報告
- 山西省萬家寨水務(wù)控股集團及所屬企業(yè)招聘筆試題庫2025
- 冷庫制作安裝合同協(xié)議書
- 花店學(xué)徒合同協(xié)議書模板
評論
0/150
提交評論