第3章3 基本邏輯電路設(shè)計(jì)ppt課件_第1頁
第3章3 基本邏輯電路設(shè)計(jì)ppt課件_第2頁
第3章3 基本邏輯電路設(shè)計(jì)ppt課件_第3頁
第3章3 基本邏輯電路設(shè)計(jì)ppt課件_第4頁
第3章3 基本邏輯電路設(shè)計(jì)ppt課件_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 第三章第三章 硬件描述語言硬件描述語言VHDLVHDL) 第三部分第三部分 基本邏輯電路設(shè)計(jì)基本邏輯電路設(shè)計(jì)基本邏輯電路: 組合邏輯電路、 時(shí)序邏輯電路一 組合邏輯電路設(shè)計(jì) 簡單門電路、編碼器、譯碼器、 加法器、多路選擇器、三態(tài)門等。3.9 3.9 基本邏輯電路設(shè)計(jì)基本邏輯電路設(shè)計(jì)1、基本門電路2、編碼器 設(shè)計(jì)一個(gè) 8 輸入優(yōu)先級編碼器,y0 級別最低,y7 級別最高;輸出為3位編碼。Y7=1Vec=111Y6=1Vec=110Y5=1Vec=101Y4=1Vec=100Y3=1Vec=011Y2=1Vec=010Y1=1Vec=001Y0=1Vec=000方法方法1 1:利用:利用 if

2、if 多選擇語句自頂向下的優(yōu)先特性多選擇語句自頂向下的優(yōu)先特性方法方法2 2:進(jìn)程內(nèi)為順序語句,最先描述優(yōu)先級最低,:進(jìn)程內(nèi)為順序語句,最先描述優(yōu)先級最低, 最后描述優(yōu)先級最高,可實(shí)現(xiàn)優(yōu)先級編碼。最后描述優(yōu)先級最高,可實(shí)現(xiàn)優(yōu)先級編碼。方法方法3 3:利用條件賦值語句:利用條件賦值語句 architecture behavior of architecture behavior of priority is priority is begin begin vec = “111” when y7 = vec = “111” when y7 = 1 else1 else “110” when “11

3、0” when y6 = 1 else y6 = 1 else “101” when “101” when y5 = 1 elsey5 = 1 else “100” when “100” when y4 = 1 else y4 = 1 else “011” when “011” when y3 = 1 elsey3 = 1 else “010” when “010” when y2 = 1 elsey2 = 1 else “001” when “001” when y1 = 1 elsey1 = 1 else “000” when “000” when y0 = 1 elsey0 = 1 el

4、se “XXX”; “XXX”; end behavior; end behavior;3、譯碼器 譯碼器是編碼器的逆過程。如 3-8 譯碼器:sel=000Y=00000001sel =001Y=00000010sel =010Y=00000100sel =011Y=00001000sel =100Y=00010000sel =101Y=00100000sel =110Y=01000000sel =111Y=10000000方法方法1 1:使用邏輯左移運(yùn)算符:使用邏輯左移運(yùn)算符 library ieee;library ieee; use ieee.std_logic_1164.all; u

5、se ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_unsigned.all; entity decoder is entity decoder is port(inp : in port(inp : in std_logic_vector(2 downto 0);std_logic_vector(2 downto 0); outp : out outp : out std_logic_vector(7 downto 0);std_logic_vector(7 downto 0); en

6、d decoder; end decoder; architecture rtl of decoder is architecture rtl of decoder is begin begin outp=“00000001” outp=“00000001” sll(conv_integer(inp);sll(conv_integer(inp); end rtl; end rtl;方法方法2 2:使用:使用processprocess語句語句 library ieee;library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_1

7、164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_unsigned.all; entity decoder is entity decoder is port(inp : in std_logic_vector(2 port(inp : in std_logic_vector(2 downto 0);downto 0); outp : out outp : out std_logic_vector(7 downto 0);std_logic_vector(7 downto 0); end decoder; end deco

8、der; architecture rtl of decoder is architecture rtl of decoder is begin begin process(inp) process(inp) begin begin outp0); outp0); outp(conv_integer(inp)=1;outp(conv_integer(inp)=1; end process; end process; end rtl; end rtl;方法方法3 3:使用:使用 case case 語句實(shí)現(xiàn)。語句實(shí)現(xiàn)。譯碼輸出低有效方法方法4 4:使用條件賦值語句:使用條件賦值語句3-8譯碼器仿

9、真結(jié)果:譯碼輸出低有效4、多路選擇器 前面用 if 語句、case 語句、條件賦值語句、選擇賦值語句分別描述過4選1選擇器。5、三態(tài)門及總線緩沖器 VHDL語言通過指定大寫的Z值表示高阻狀態(tài) a : std_logic; a_bus:std_logic_vector(7 downto 0); 指定高阻狀態(tài)如下: a = Z ; a_bus = “ZZZZZZZZ” ;1三態(tài)門電路描述三態(tài)門仿真結(jié)果:2單向總線緩沖器DOUT7.0ENDIN7.0ENTRI_BUF8DOUT7.0DIN7.03雙向總線緩沖器B7.0ENDIRA7.0B7.0A7.0DIRENBIDIR二 時(shí)序邏輯電路設(shè)計(jì) 觸發(fā)器

10、、寄存器、計(jì)數(shù)器、分頻器、信號發(fā)生器等。一時(shí)序電路特殊信號的描述 時(shí)鐘信號和復(fù)位信號 1、時(shí)鐘信號描述 常用的描述方式: 1進(jìn)程的敏感信號是時(shí)鐘信號,在進(jìn)程內(nèi) 部用if 語句描述時(shí)鐘的邊沿條件。如: process (clock_signal) begin if (clock_edge_condition) then signal_out = signal_in ; 其它時(shí)序語句 end if ; end process ; 2在進(jìn)程中用wait until語句描述時(shí)鐘信號,此 時(shí)進(jìn)程將沒有敏感信號。 如: process begin wait until (clock_edge_condit

11、ion); signal_out = signal_in ; 其它時(shí)序語句 end process ; 注意: a.在對時(shí)鐘邊沿說明時(shí),一定要注明是上升沿 還是下降沿。 b.一個(gè)進(jìn)程中只能描述一個(gè)時(shí)鐘信號。 c.wait until 語句只能放在進(jìn)程的最前面或 最后面。3時(shí)鐘邊沿的描述 時(shí)鐘上升沿: (clockevent and clock = 1) 時(shí)鐘下降沿: (clockevent and clock = 0) 2、觸發(fā)器的復(fù)位信號描述 1同步復(fù)位:在只有以時(shí)鐘為敏感信號的進(jìn)程 中定義。 如: process (clock_signal) begin if (clock_edge_co

12、ndition) then if (reset_condition) then signal_out = reset_value; else signal_out = signal_in ; end if ; end if ; end process ; 2異步復(fù)位:進(jìn)程的敏感信號表中除時(shí)鐘信 號外,還有復(fù)位信號。 如:process (reset_signal, clock_signal) begin if (reset_condition) then signal_out = reset_value; elsif (clock_edge_condition) then signal_out

13、 = signal_in ; end if ; end process ; 二) 常用時(shí)序電路設(shè)計(jì) 1、觸發(fā)器Flip_Flop) 1D觸發(fā)器異步置位/復(fù)位D觸發(fā)器同步復(fù)位D觸發(fā)器比較:異步置位的鎖存器Latch) library ieee; use ieee.std_logic_1164.all; entity t_ff is port(t, clk : in std_logic; q : buffer std_logic); end t_ff; architecture rtl of t_ff is begin process(clk) begin if clkevent and clk=

14、1 then if t=1 then q=not q; else q=q; end if; end process; end rtl;TClkQQ2T觸發(fā)器 library ieee; use ieee.std_logic_1164.all; entity rs_ff is port(r, s, clk : in std_logic; q, qn : buffer std_logic); end rs_ff; architecture rtl of rs_ff is begin process(r, s, clk) begin if clkevent and clk=1 then if s =

15、 1 and r = 0 then q=0; qn=1; elsif s=0 and r=1 then q=1; qn=0; elsif s=0 and r=0 then q=q; qn=q n; else null; end if; end if; end process; end rtl;SClkQQRSRQQn00QQn01101001113RS觸發(fā)器2、寄存器 8位串行輸入、串行輸出移位寄存器:z0z1z2z3z4z5z6z7z88位移位寄存器描述結(jié)構(gòu)描述)移位寄存器仿真結(jié)果:3、計(jì)數(shù)器 計(jì)數(shù)器分為:同步計(jì)數(shù)器 異步計(jì)數(shù)器(1同步計(jì)數(shù)器 同步計(jì)數(shù)器指在時(shí)鐘脈沖計(jì)數(shù)脈沖的控 制下,構(gòu)成計(jì)數(shù)器的各觸發(fā)器狀態(tài)同時(shí)發(fā)生變化 的計(jì)數(shù)器。帶允許端的十二進(jìn)制計(jì)數(shù)器可逆計(jì)數(shù)器加減計(jì)數(shù)器)可逆計(jì)數(shù)器仿真結(jié)果:例:六十進(jìn)制分、秒計(jì)數(shù)器60進(jìn)制計(jì)數(shù)器仿真結(jié)果:(2異步計(jì)數(shù)器 異步計(jì)數(shù)器又稱為行波計(jì)數(shù)器,它的低位計(jì)數(shù)器的輸出作為高位計(jì)數(shù)器的時(shí)鐘信號。 異步計(jì)數(shù)器采用行波計(jì)數(shù),使計(jì)數(shù)延遲增加,計(jì)數(shù)器工作頻率較低。 描述異步計(jì)數(shù)器與同步計(jì)數(shù)器的不同主要體現(xiàn)在對各級時(shí)鐘脈沖的描述上。例:由8個(gè)觸發(fā)器構(gòu)成的行波計(jì)數(shù)器: 基本元件 dff

溫馨提示

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

評論

0/150

提交評論