版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第5章章 基本邏輯電路的基本邏輯電路的VHDL設(shè)計(jì)設(shè)計(jì)【學(xué)習(xí)目標(biāo)【學(xué)習(xí)目標(biāo)】 通過本章學(xué)習(xí)應(yīng)掌握組合邏輯電路設(shè)計(jì),主要有基本門電路、編碼器、譯碼器、加法器、三態(tài)輸出電路等組合邏輯電路設(shè)計(jì)技術(shù);時(shí)序邏輯電路設(shè)計(jì),主要有觸發(fā)器、移位寄存器、計(jì)數(shù)器等時(shí)序邏輯電路設(shè)計(jì)技術(shù);狀態(tài)機(jī)基本概念、狀態(tài)機(jī)設(shè)計(jì)流程、一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)、Moore型有限狀態(tài)機(jī)設(shè)計(jì)、Mealy型有限狀態(tài)機(jī)設(shè)計(jì)、有限狀態(tài)機(jī)的編碼等。5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.1 基本門電路設(shè)計(jì)基本門電路設(shè)計(jì) 1與非門電路與非門電路 與非門電路包括二輸入與非門、三輸入與非門、四輸入與非門和多輸入與非門等。下面介紹二輸入與
2、非門電路的設(shè)計(jì)方法,其他的設(shè)計(jì)方法與二輸入與非門的設(shè)計(jì)方法類似,在這里不作更多論述。二輸入與非門電路的邏輯方程式為Y= ,邏輯真值表見表5.1,二輸入與非門的電路符號(hào)如圖5.1所示AB輸入輸出ABY001011101110表5.1 二輸入與非門的真值表 圖5.1 二輸入與非門的電路符號(hào) 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.1 基本門電路設(shè)計(jì)基本門電路設(shè)計(jì) 1與非門電路與非門電路(1)VHDL設(shè)計(jì)方法二輸入與非門電路的邏輯真值表見表5.1,二輸入與非門的電路符號(hào)如圖5.1所示。5.1.1 基本門電路設(shè)計(jì)基本門電路設(shè)計(jì) 1與非門電路與非門電路(1)VHDL設(shè)計(jì)方法【例【例5.1】二輸入
3、與非門的VHDL描述方法一:LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY nand_2 ISPORT (a, b: IN STD_LOGIC; y: OUT STD_LOGIC);END;ARCHITECTURE one OF nand_2 ISBEGINy=a nand b;END;5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.1 基本門電路設(shè)計(jì)基本門電路設(shè)計(jì) 1與非門電路與非門電路(1)VHDL設(shè)計(jì)方法【例【例5.2】二輸入與非門的VHDL描述方法二:LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENT
4、ITY nand_2 ISPORT (a, b: INSTD_LOGIC; y: OUTSTD_LOGIC);END;ARCHITECTURE one OF nand_2 ISSIGNAL ab: STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINaby” 相當(dāng)于THEN或于是 when 01=yyyy=null;end case;end process;end; 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)(a) 用nand實(shí)現(xiàn)的二輸入 與非門的RTL電路(b)用 case語句實(shí)現(xiàn)的二輸入 與非門的RTL電路圖5.2 二輸入與非門RTL電路 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電
5、路設(shè)計(jì)5.1.1 基本門電路設(shè)計(jì)基本門電路設(shè)計(jì) 1與非門電路與非門電路(1)VHDL設(shè)計(jì)方法 二輸入與非門的功能仿真結(jié)果如圖5.3所示,觀察波形可知,輸入為a與b,輸出為y,且其邏輯關(guān)系滿足二輸入與非門真值表的要求。 圖5.3 二輸入與非門的功能仿真圖5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.1 基本門電路設(shè)計(jì)基本門電路設(shè)計(jì) 1與非門電路與非門電路(2)仿真結(jié)果)仿真結(jié)果5.1.1 基本門電路設(shè)計(jì)基本門電路設(shè)計(jì)2 基本邏輯門電路的基本邏輯門電路的VHDL描述描述【例【例5.3】基本邏輯門電路的VHDL描述LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;E
6、NTITY gate ISPORT (a, b: IN STD_LOGIC; y1,y2,y3,y4,y5,y6: OUT STD_LOGIC);END;ARCHITECTURE one OF gate IS BEGIN y1=a and b; -構(gòu)成與門 y2=a or b; -構(gòu)成或門 y3= not a ; -構(gòu)成非門 y4=a nand b; -構(gòu)成與非門 y5=a nor b; -構(gòu)成異或門 y6yyyyyyyyy=000; end case; end process; end process; end;5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.2 編碼器設(shè)計(jì)編碼器設(shè)計(jì)1. 8
7、線線-3線編碼器的線編碼器的VHDL描述描述 本例中,運(yùn)用了case語句完成了編碼器內(nèi)部邏輯結(jié)構(gòu)設(shè)計(jì),其RTL電路圖如圖5.4所示。 圖5.4 8線-3線編碼器的RTL電路圖 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.2 編碼器設(shè)計(jì)編碼器設(shè)計(jì)1. 8線線-3線編碼器的線編碼器的VHDL描述描述2. 8線線-3線編碼器的功能仿真線編碼器的功能仿真 8線-3線編碼器的功能仿真結(jié)果如圖5.5所示。圖5.5 8線-3線編碼器功能仿真波形圖 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.2 編碼器設(shè)計(jì)編碼器設(shè)計(jì)5.1.3 譯碼器設(shè)計(jì)譯碼器設(shè)計(jì) 譯碼是編碼的逆過程,它的功能是將具有特定含義的二進(jìn)制
8、碼進(jìn)行辨別,并轉(zhuǎn)換成控制信號(hào)。具有譯碼功能的邏輯電路稱為譯碼器。5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.3 譯碼器設(shè)計(jì)譯碼器設(shè)計(jì)1. 2線線- 4線譯碼器線譯碼器 2線-4線譯碼器的真值表見表5.3所示。 輸入 輸出 A1 A2Z3Z2Z1Z0000001010010100100111000表5.3 2線-4線譯碼器的真值表 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)(1)2線線-4線譯碼器的線譯碼器的VHDL設(shè)計(jì)設(shè)計(jì)library ieee; -【例【例5.5】 2線-4線譯碼器的VHDL代碼use ieee.std_logic_1164.all;use ieee.std_logic_
9、unsigned.all;entity decode_24 isport (a: in std_logic_vector(1 downto 0); z: out std_logic_vector(3 downto 0);end ;architecture str of decode_24 isBeginwith a select z LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED NULL ; END CASE; END PROCESS; END;5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.3 譯碼器設(shè)計(jì)譯碼器
10、設(shè)計(jì) 2. 7段數(shù)碼顯示譯碼器設(shè)計(jì)段數(shù)碼顯示譯碼器設(shè)計(jì) 例5.6中輸出信號(hào)LED 的7位分別接數(shù)碼管的7個(gè)段,高位在左,低位在右。例如當(dāng)LED輸出為“1101111”時(shí),數(shù)碼管的7個(gè)段:g、f、e、d、c、b、a分別接1、1、0、1、1、1、1;接有高電平的段點(diǎn)亮,低電平的段不亮,于是數(shù)碼管顯示“9”,其功能仿真如圖5.8所示。圖5.8 7段數(shù)碼顯示譯碼電路功能仿真波形 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.3 譯碼器設(shè)計(jì)譯碼器設(shè)計(jì) 2. 7段數(shù)碼顯示譯碼器設(shè)計(jì)段數(shù)碼顯示譯碼器設(shè)計(jì)5.1.4 加法器設(shè)計(jì)加法器設(shè)計(jì)1.四位二進(jìn)制全加器的VHDL5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)【
11、例【例5.7】 四位二進(jìn)制全加器的VHDL描述 LIBRARY ieee; USE ieee.STD_LOGIC_1164.ALL; USE ieee.STD_LOGIC_unsigned.ALL; ENTITY adder_4bit IS PORT (a, b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ci: IN STD_LOGIC; s: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co: OUT STD_LOGIC); END; ARCHITECTURE one OF adder_4bit IS SIGNAL temp: STD_LOG
12、IC_VECTOR (4 DOWNTO 0); BEGIN temp=(0&a)+b+ci; s=temp (3 downto 0); co=temp(4); END;圖5.9 4位二進(jìn)制全加器的RTL電路圖 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.4 加法器設(shè)計(jì)加法器設(shè)計(jì)2 4位全加器的仿真結(jié)果仿真結(jié)果 例5.7中的4位全加器的功能仿真結(jié)果如圖5-10所示,其時(shí)序仿真結(jié)果如圖5-17所示。從波形中可以看出, 當(dāng)a、b和ci取不同的值時(shí),執(zhí)行a+b+ci操作后,和數(shù)s與進(jìn)位co均滿足4位全加器的邏輯功能要求。5.10 4位二進(jìn)制全加器的功能仿真結(jié)果 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路
13、設(shè)計(jì)5.1.4 加法器設(shè)計(jì)加法器設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì) 三態(tài)門,是指邏輯門的輸出除有高、低電平兩種狀態(tài)外,還有第三種狀態(tài)高阻狀態(tài)的門電路,高阻態(tài)相當(dāng)于隔斷狀態(tài)。三態(tài)門都有一個(gè)EN為控制使能端,來控制門電路的通斷。具備這三種狀態(tài)的器件就叫做三態(tài)(門、總線、.)。VHDL設(shè)計(jì)中,如果用STD_LOGIC數(shù)據(jù)類型的Z對(duì)一個(gè)變量賦值,即會(huì)引入三態(tài)門,并在使能信號(hào)的控制下可使其輸出呈高阻態(tài),這等效于使三態(tài)門禁止輸出。 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì)1三態(tài)門設(shè)計(jì)三態(tài)門設(shè)計(jì) 【例5.8】4位三態(tài)控
14、制門電路的VHDL描述LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;USE ieee.STD_LOGIC_unsigned.ALL;ENTITY tri_gate IS PORT(en : IN STD_LOGIC; din: IN STD_LOGIC_VECTOR(3 DOWNTO 0); dout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE one OF tri_gate IS BEGIN PROCESS (en ,din) BEGIN IF (en=1) then dout=din; else
15、dout=ZZZZ; end if; end process;END;5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)圖5.11 三態(tài)門電路的RTL電路5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì)1三態(tài)門設(shè)計(jì)三態(tài)門設(shè)計(jì)圖5.12 三態(tài)門電路的功能仿真圖 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì)1三態(tài)門設(shè)計(jì)三態(tài)門設(shè)計(jì)2. 雙向總線緩沖器雙向總線緩沖器 雙向總線緩沖器用于對(duì)數(shù)據(jù)總線的驅(qū)動(dòng)和緩沖,典型雙向總線緩沖電路圖如圖5.13所示。 一般雙向總線緩沖器的模式為:兩個(gè)數(shù)據(jù)端口a、 b,一個(gè)使
16、能端en,一個(gè)方向控制端dr。其操作行為真值表如表5.4所示。 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì)2. 雙向總線緩沖器雙向總線緩沖器 ain=a; a=aout; 圖5.13 雙向總線驅(qū)動(dòng)電路 如果A為輸入端口,即ain=a時(shí),aout應(yīng)為“ZZZZZZZZ”EnDr功能00a=b01b=a1X高阻表5.4雙向總線驅(qū)動(dòng)電路真值表 5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì)2. 雙向總線緩沖器雙向總線緩沖器【例【例5.9】 雙向總線緩沖器的VHDL描述library iee
17、e;use ieee.std_logic_1164.all;ENTITY DUB_GATE ISPORT (a,b: INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);en: IN STD_LOGIC;dr: INOUT STD_LOGIC);END DUB_GATE;ARCHITECTURE a OF DUB_GATE ISSIGNAL abuf, bbuf: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINP1: PROCESS (a, dr, en)BEGINif (en=0) and (dr=1) thenbbuf = a; -接下頁5.1 組合
18、邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì) else - 接上頁 bbuf=ZZZZZZZZ;end if;b=bbuf; END PROCESS;P2: PROCESS (b,dr,en)BEGINif (en=0) and (dr=0) thenabuf = b;elseabuf=ZZZZZZZZ;end if;a=abuf;END PROCESS;END a;5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì)圖5.14 雙向總線緩沖器的RTL電路圖5.1 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)5.1
19、.5 三態(tài)門與雙向緩沖電路設(shè)計(jì)三態(tài)門與雙向緩沖電路設(shè)計(jì) 雙向總線緩沖器的RTL電路圖如圖5.14所示。5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.1 觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) 1.RS觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) RS觸發(fā)器由兩個(gè)與非門(或者或非門)的輸入和輸出交觸發(fā)器由兩個(gè)與非門(或者或非門)的輸入和輸出交叉連接而成,如圖叉連接而成,如圖5.15所示,所示, 真值表見表真值表見表5.5。 圖5.15 RS觸發(fā)器原理圖 輸入輸出RSQQ非0001011010不變不變11不定不定表5.5 RS觸發(fā)器真值表5.2.1 觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) 1.RS觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì)【例5.10】 RS觸發(fā)器的VHDL程
20、序代碼 LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY RSFF IS PORT(R, S: IN STD_LOGIC; Q, QB: OUT STD_LOGIC);END;ARCHITECTURE one OF RSFF ISSIGNAL Q_TEMP,QB_TEMP: STD_LOGIC;BEGIN Q_TEMP=S NAND QB_TEMP; QB_TEMP=R NAND Q_TEMP; Q=Q_TEMP; QB=QB_TEMP;END; 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)BUF (CUT)SQQBnode1Q_TEMP0QB_TEM
21、P0R圖5.16 RS觸發(fā)器的RTL電路圖5.17 RS觸發(fā)器功能仿真波形圖5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.1 觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) 1.RS觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì)5.2.1 觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) 2. JK觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) JK觸發(fā)器的狀態(tài)方程是:Q_tmp=j +q_temp。用VHDL邏輯表達(dá)式對(duì)JK觸發(fā)器進(jìn)行描述。其真值表見表5.6所示。 輸入輸出jkq00保持01010111翻轉(zhuǎn)表5.6 JK觸發(fā)器真值表5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.1 觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) 【例5.11】 JK觸發(fā)器VHDL程序library ieee;use ieee.std_
22、logic_1164.all;entity jkff1 is port (j, k, clk: in std_logic; q: out std_logic);end;architecture one of jkff1 is signal q_temp :std_logic;begin p1:processbegin wait until(clkevent and clk=1); q_temp=(j and (not q_temp) or (not k) and q_temp);end process; q=q_temp;end; 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)圖5.18 JK觸發(fā)器
23、的RTL電路圖5.19 JK觸發(fā)器的功能仿真圖5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.1 觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) 2. JK觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì) 5.2.2 移位寄存器設(shè)計(jì)移位寄存器設(shè)計(jì) 移位寄存器是一個(gè)具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用下依次左移或右移。既能左移又能右移的稱為雙向移位寄存器,只需要改變左、右移的控制信號(hào)便可實(shí)現(xiàn)雙向移位要求。根據(jù)移位寄存器存取信息的方式不同分為:串入串出、串入并出、并入串出、并入并出四種形式。 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.2 移位寄存器設(shè)計(jì)移位寄存器設(shè)計(jì)【例5.12】8位右移移位寄存器的VHDL描述LIB
24、RARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY SHFRT IS PORT (CLK, LOAD: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR (7 DOWNTO 0); QB: OUT STD_LOGIC);END;ARCHITECTURE ONE OF SHFRT ISBEGIN -接下頁5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì) PROCESS (CLK, LOAD) -接上頁 VARIABLE REG8:STD_LOGIC_VECTOR (7 DOWNTO 0); BEGIN IF CLKEVENT AND CL
25、K=1 THEN IF LOAD=1 THEN REG8:=DIN; ELSE REG8 (6 DOWNTO 0):=REG8(7 DOWNTO 1); END IF; END IF; QB0); -計(jì)數(shù)器高電平復(fù)位 ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THEN -計(jì)數(shù)器控制端高電平有效 IF CQI0); END IF; END IF; END IF; IF CQI=15 THEN COUT=1; -計(jì)數(shù)滿16產(chǎn)生一個(gè)進(jìn)位 ELSE COUT=0; END IF; CQ0 THEN CQI: =CQI-1; ELSE CQI: =1111; END I
26、F; END IF; END IF; CQ=CQI; END PROCESS;END; 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)十六進(jìn)制減法計(jì)數(shù)器的仿真結(jié)果如圖5.24所示。圖5.24 十六進(jìn)制減法計(jì)數(shù)器功能仿真波形圖 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì) 3.異步計(jì)數(shù)器設(shè)計(jì)異步計(jì)數(shù)器設(shè)計(jì) 異步計(jì)數(shù)器,它的下一位計(jì)數(shù)器的輸出作為上一位計(jì)數(shù)器的時(shí)鐘信號(hào),這樣一級(jí)一級(jí)串行連接起來就構(gòu)成了一個(gè)異步計(jì)數(shù)器。 用VHDL語言描述異步邏輯電路時(shí),由于一個(gè)時(shí)鐘進(jìn)程只能構(gòu)成對(duì)應(yīng)單一時(shí)鐘信號(hào)的時(shí)序電路,如果在進(jìn)程中需要構(gòu)成多觸發(fā)器時(shí)序電路,也只能產(chǎn)生對(duì)應(yīng)某個(gè)單一時(shí)鐘的同步時(shí)序邏
27、輯,異步時(shí)序邏輯一般采取多個(gè)時(shí)鐘進(jìn)程來構(gòu)成。 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì)【例5.15】4個(gè)觸發(fā)器構(gòu)成的異步計(jì)數(shù)器的VHDL底層模塊程序library ieee;use ieee.std_logic_1164.all;entity dffr isport (clk, clr, d:in std_logic; q, qb: out std_logic);end;architecture str of dffr issignal q_in:std_logic;Begin -接下頁5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì)qb=n
28、ot(q_in); -接上頁q=q_in;process (clk) begin if (clr=1) then q_in=0; elsif (clkevent and clk=1) then q_in=d; end if;end process;end; 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì)圖5.25 異步計(jì)數(shù)器的底層模塊的RTL電路圖 5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì)【例5.16】 4個(gè)觸發(fā)器構(gòu)成的異步計(jì)數(shù)器的頂層VHDL描述library ieee;use ieee.std_logic_1164.all;entity
29、 rplcont isport(clk,clr:in std_logic; count:out std_logic_vector(3 downto 0);end;architecture str of rplcont issignal count_in_bar:std_logic_vector(4 downto 0);-接下頁5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì)component dffr is -接上頁port(clk,clr,d:in std_logic; q,qb:out std_logic);end component;begin count_in_b
30、ar(0)count_in_bar(i), clr=clr,d=count_in_bar(i+1), q=count(i),qb=count_in_bar(i+1);end generate;end;5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì)圖5.26 4個(gè)觸發(fā)器構(gòu)成的異步計(jì)數(shù)器的RTL電路圖5.2 時(shí)序邏輯電路設(shè)計(jì)時(shí)序邏輯電路設(shè)計(jì)5.2.3計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì) 5.3.1 狀態(tài)機(jī)概述狀態(tài)機(jī)概述1.什么是狀態(tài)機(jī)什么是狀態(tài)機(jī) 通俗地說,狀態(tài)機(jī)就是事物存在狀態(tài)的一種綜合描述。 比如,一個(gè)單向路口的一盞紅綠燈,它有“亮紅燈”、“亮綠燈”和“亮黃燈”3種狀態(tài)。在不同情況下,
31、3種狀態(tài)可以互相轉(zhuǎn)換。轉(zhuǎn)換的條件可以是經(jīng)過多少時(shí)間,比如經(jīng)過30秒鐘由“亮紅燈”狀態(tài)變?yōu)椤傲辆G燈”狀態(tài);也可以是特殊條件,比如有緊急事件,不論處于什么狀態(tài)都將轉(zhuǎn)變?yōu)椤傲良t燈”狀態(tài)。而所謂的狀態(tài)機(jī),就是對(duì)這盞紅綠燈3種狀態(tài)的綜合描述,說明任意兩個(gè)狀態(tài)之間的轉(zhuǎn)變條件。 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 狀態(tài)機(jī)是由狀態(tài)寄存器狀態(tài)寄存器和組合邏輯電路組合邏輯電路構(gòu)成的,能夠根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號(hào)動(dòng)作、完成特定操作的控制中心。 狀態(tài)機(jī)可歸納為4個(gè)要素:即現(xiàn)態(tài)、條件、動(dòng)作及次態(tài)即現(xiàn)態(tài)、條件、動(dòng)作及次態(tài)。這樣的歸納,主要是出于對(duì)狀態(tài)機(jī)的內(nèi)在因果關(guān)系的考慮?!艾F(xiàn)態(tài)”和“條件
32、”是因,“動(dòng)作”和“次態(tài)”是果。 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.1 狀態(tài)機(jī)概述狀態(tài)機(jī)概述1.什么是狀態(tài)機(jī)什么是狀態(tài)機(jī) 現(xiàn)態(tài)現(xiàn)態(tài):是指當(dāng)前所處的狀態(tài)。條件:條件:又稱為“事件”。當(dāng)一個(gè)條件被滿足,將會(huì)觸發(fā)一個(gè)動(dòng)作,或者執(zhí)行一次狀態(tài)的遷移。動(dòng)作:動(dòng)作:條件滿足后執(zhí)行的動(dòng)作。動(dòng)作執(zhí)行完畢后,可以遷移到新的狀態(tài),也可以仍舊保持原狀態(tài)。動(dòng)作不是必需的,當(dāng)條件滿足后,也可以不執(zhí)行任何動(dòng)作,直接遷移到新狀態(tài)。次態(tài):次態(tài):條件滿足后要遷往的新狀態(tài)?!按螒B(tài)”是相對(duì)于“現(xiàn)態(tài)”而言的,“次態(tài)”一旦被激活,就轉(zhuǎn)變成新的“現(xiàn)態(tài)”了。 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.1 狀態(tài)機(jī)概述狀態(tài)機(jī)概述1.什么
33、是狀態(tài)機(jī)什么是狀態(tài)機(jī) 根據(jù)時(shí)序輸出信號(hào)產(chǎn)生機(jī)理的不同,狀態(tài)機(jī)可以分成兩類:摩爾摩爾(Moore)型型狀態(tài)機(jī)和和米勒米勒(Mealy)型型狀態(tài)機(jī)。 兩種狀態(tài)機(jī)的區(qū)別:兩種狀態(tài)機(jī)的區(qū)別: 前者的輸出僅是當(dāng)前狀態(tài)的函數(shù),后著的輸出 是當(dāng)前狀態(tài)和輸入信號(hào)的函數(shù)。 米勒型狀態(tài)機(jī)輸出的變化先于摩爾型。 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.1 狀態(tài)機(jī)概述狀態(tài)機(jī)概述1.什么是狀態(tài)機(jī)什么是狀態(tài)機(jī) 所有的狀態(tài)均可表達(dá)為CASE WHEN結(jié)構(gòu)中的一條CASE語句,而狀態(tài)的轉(zhuǎn)移則通過IF_THEN_ELSE語句實(shí)現(xiàn)。 應(yīng)用VHDL設(shè)計(jì)有限狀態(tài)機(jī)的流程如圖5.27所示。 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.
34、1 狀態(tài)機(jī)概述狀態(tài)機(jī)概述2. 有限狀態(tài)機(jī)的設(shè)計(jì)流程有限狀態(tài)機(jī)的設(shè)計(jì)流程根據(jù)系統(tǒng)要求建立狀態(tài)轉(zhuǎn)移圖根據(jù)狀態(tài)轉(zhuǎn)移圖編寫VHDL代碼利用EDA工具進(jìn)行仿真和驗(yàn)證 圖5.27 VHDL設(shè)計(jì)有限狀態(tài)機(jī)的流程圖 (1)選擇狀態(tài)機(jī)類型(2)建立狀態(tài)表或者畫出狀態(tài)圖(3)根據(jù)狀態(tài)表或狀態(tài)圖,構(gòu)建狀態(tài)機(jī)的VHDL模型(4)利用EDA工具進(jìn)行仿真、驗(yàn)證 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.1 狀態(tài)機(jī)概述狀態(tài)機(jī)概述2. 有限狀態(tài)機(jī)的設(shè)計(jì)流程有限狀態(tài)機(jī)的設(shè)計(jì)流程5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) 一般和最常用的狀態(tài)機(jī)通常包含: 說明部分 主控時(shí)序進(jìn)程 主控組合進(jìn)程 輔助進(jìn)程幾個(gè)部分5.
35、3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 1說明部分說明部分 使用TYPE語句定義新的數(shù)據(jù)類型,此數(shù)據(jù)類型為枚舉型, 其元素通常都用狀態(tài)機(jī)的狀態(tài)名來定義; 狀態(tài)變量(如現(xiàn)態(tài)和次態(tài))應(yīng)定義為信號(hào),便于信 息傳遞; 并將狀態(tài)變量的數(shù)據(jù)類型定義為含有既定狀態(tài)元素的新定 義的數(shù)據(jù)類型; 說明部分一般放在結(jié)構(gòu)體的ARCHITECTURE和BEGIN之 間。 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) 2主控時(shí)序進(jìn)程主控時(shí)序進(jìn)程 主控時(shí)序進(jìn)程是指負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在時(shí)鐘驅(qū)動(dòng)下負(fù)責(zé)狀態(tài) 轉(zhuǎn)換的進(jìn)程; 狀態(tài)機(jī)是隨外部時(shí)鐘信號(hào)、以同步時(shí)序方式工作的; 狀態(tài)機(jī)向下一狀態(tài)(包括
36、再次進(jìn)入本狀態(tài))轉(zhuǎn)換的實(shí)現(xiàn)僅僅取 決于時(shí)鐘信號(hào)的到來。 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) 3. 主控組合進(jìn)程主控組合進(jìn)程 主控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號(hào) (包括來自狀態(tài)機(jī)外部的信號(hào)和來自狀態(tài)機(jī)內(nèi)部其他非主控的組合或時(shí)序進(jìn)程的信號(hào)),或/和當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)(next_state)的取向,即next_state的取值內(nèi)容; 確定對(duì)外輸出或?qū)?nèi)部其他組合或時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì)4輔助
37、進(jìn)程輔助進(jìn)程 輔助進(jìn)程用于配合狀態(tài)機(jī)工作的組合進(jìn)程或時(shí)序進(jìn)程。例如為了完成某種算法的進(jìn)程,或用于配合狀態(tài)機(jī)工作的其他時(shí)序進(jìn)程,或?yàn)榱朔€(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存器等。 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) 圖5.28 一個(gè)狀態(tài)機(jī)的結(jié)構(gòu)框圖5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) 【例5.17】一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì),利用狀態(tài)機(jī)設(shè)計(jì)方法輸出一個(gè)方波信號(hào)。LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY A_EXAMPLE IS PORT (clk,reset:IN STD_
38、LOGIC; output:OUT STD_LOGIC);END;ARCHITECTURE ONE OF A_EXAMPLE IS TYPE STATE_TYPE IS(S0,S1,S2,S3); -狀態(tài)機(jī)說明部分SIGNAL state: STATE_TYPE;BEGIN -接下頁5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) -接上頁REG:PROCESS(clk,reset) -狀態(tài)機(jī)主控時(shí)序進(jìn)程 BEGIN IF reset=1 THEN state statestatestatestateoutputoutputoutputoutput
39、=0; END CASE;END PROCESS;END;5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) clkresets0s10101outputoutput1output0resetstateclk圖5.29 狀態(tài)機(jī)設(shè)計(jì)輸出一個(gè)方波信號(hào)的RTL電路 圖5.30 利用一般狀態(tài)機(jī)設(shè)計(jì)方法實(shí)現(xiàn)的方波信號(hào)5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.2 一般有限狀態(tài)機(jī)的一般有限狀態(tài)機(jī)的VHDL設(shè)計(jì)設(shè)計(jì) 5.3.3摩爾摩爾(Moore)型狀態(tài)機(jī)設(shè)計(jì)型狀態(tài)機(jī)設(shè)計(jì) 如圖5.31所示是摩爾型狀態(tài)機(jī)的結(jié)構(gòu)圖,圖中的輸出只與當(dāng)前的狀態(tài)有關(guān),而與當(dāng)前的輸入信號(hào)無關(guān)。
40、 其狀態(tài)圖如圖5.32所示,摩爾狀態(tài)機(jī)的VHDL描述如例5.18所示。 圖5.31 摩爾型狀態(tài)機(jī)的結(jié)構(gòu)圖5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 圖5.32 摩爾型狀態(tài)機(jī)的狀態(tài)圖5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.3摩爾摩爾(Moore)型狀態(tài)機(jī)設(shè)計(jì)型狀態(tài)機(jī)設(shè)計(jì) 【例5.18】摩爾狀態(tài)機(jī)的VHDL描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity moore_state isport(clk,x_in,rst:in std_lo
41、gic; key_en:out std_logic; y:out std_logic_vector(3 downto 0);end ;architecture str of moore_state istype state_type is (s1,s2,s3,s4);signal state:state_type;beginp1_state_p:process(clk,rst)Begin -接下頁5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.3摩爾摩爾(Moore)型狀態(tài)機(jī)設(shè)計(jì)型狀態(tài)機(jī)設(shè)計(jì) if rst=1 then state if x_in=0 then state if x_in=1 the
42、n state if x_in=0 then state if x_in=1 then statestatey=0001;key_eny=0010;key_eny=0100;key_eny=1000;key_ennull; end case;end process;end; 5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.3摩爾摩爾(Moore)型狀態(tài)機(jī)設(shè)計(jì)型狀態(tài)機(jī)設(shè)計(jì) x_inclkresets1s2s3s4key_en0clkx_inrstkey_eny3.0state圖5.33 摩爾型狀態(tài)機(jī)的RTL電路圖RTL電路圖如圖5.33所示,仿真波形如圖5.34所示。5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 5.3.3摩爾摩爾(Moore)型狀態(tài)機(jī)設(shè)計(jì)型狀態(tài)機(jī)設(shè)計(jì) 圖5.34 摩爾型狀態(tài)機(jī)的仿真波形5.3.4 米勒米勒(Mealy)型狀態(tài)機(jī)設(shè)計(jì)型狀態(tài)機(jī)設(shè)計(jì) 如圖5.35所示是米勒型狀態(tài)機(jī)的結(jié)構(gòu)圖,圖中的輸出不僅與當(dāng)前狀態(tài)有關(guān),還與當(dāng)前輸入信號(hào)有關(guān)。米勒型狀態(tài)機(jī)的狀態(tài)圖如圖5.36所示。 圖5.35 米勒型狀態(tài)機(jī)的結(jié)構(gòu)圖5.3 狀態(tài)機(jī)的設(shè)計(jì)狀態(tài)機(jī)的設(shè)計(jì) 圖5.36
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年幼兒園大班上學(xué)期工作計(jì)劃標(biāo)準(zhǔn)模板(八篇)
- 二零二五年度大型園林工程苗木供應(yīng)及種植勞務(wù)合同4篇
- 年度井下多功能測(cè)振儀產(chǎn)業(yè)分析報(bào)告
- 2025年度大型體育賽事策劃與執(zhí)行個(gè)人雇傭合同4篇
- 二零二五年度仿古面磚采購(gòu)及修復(fù)服務(wù)合同4篇
- 2025年路燈安裝工程環(huán)境保護(hù)及污染防治合同3篇
- 船舶貨運(yùn)技術(shù)課程設(shè)計(jì)
- 二零二五年度高空作業(yè)風(fēng)險(xiǎn)評(píng)估免責(zé)協(xié)議3篇
- 班級(jí)文化建設(shè)【共享-】
- 油松植苗施工方案
- 2024工貿(mào)企業(yè)重大事故隱患判定標(biāo)準(zhǔn)解讀
- 中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司招聘筆試題庫2024
- 【社會(huì)工作介入精神障礙社區(qū)康復(fù)問題探究的文獻(xiàn)綜述5800字】
- 節(jié)前停工停產(chǎn)與節(jié)后復(fù)工復(fù)產(chǎn)安全注意事項(xiàng)課件
- 設(shè)備管理績(jī)效考核細(xì)則
- 中國(guó)人民銀行清算總中心直屬企業(yè)2023年招聘筆試上岸歷年典型考題與考點(diǎn)剖析附帶答案詳解
- (正式版)SJT 11449-2024 集中空調(diào)電子計(jì)費(fèi)信息系統(tǒng)工程技術(shù)規(guī)范
- 人教版四年級(jí)上冊(cè)加減乘除四則混合運(yùn)算300題及答案
- 合成生物學(xué)技術(shù)在生物制藥中的應(yīng)用
- 消化系統(tǒng)疾病的負(fù)性情緒與心理護(hù)理
- 高考語文文學(xué)類閱讀分類訓(xùn)練:戲劇類(含答案)
評(píng)論
0/150
提交評(píng)論