電子科大課件VHDL-17.ppt_第1頁(yè)
電子科大課件VHDL-17.ppt_第2頁(yè)
電子科大課件VHDL-17.ppt_第3頁(yè)
電子科大課件VHDL-17.ppt_第4頁(yè)
電子科大課件VHDL-17.ppt_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、時(shí)序電路的結(jié)構(gòu)與特點(diǎn) 內(nèi)部含有存儲(chǔ)器件(觸發(fā)器、鎖存器); 信號(hào)變化受時(shí)鐘控制; 通常采用狀態(tài)變化進(jìn)行描述; 采用進(jìn)程進(jìn)行設(shè)計(jì);,時(shí)序運(yùn)算模塊的VHDL設(shè)計(jì),同步時(shí)序電路的信號(hào)變化特點(diǎn),同步時(shí)序電路以時(shí)鐘信號(hào)為驅(qū)動(dòng); 電路內(nèi)部信號(hào)的變化(或輸出信號(hào)的變化)只發(fā)生在特定的時(shí)鐘邊沿; 設(shè)計(jì)要點(diǎn): 時(shí)鐘邊沿的檢測(cè); 輸出賦值的控制:是否改變、如何改變。,同步時(shí)序電路的時(shí)鐘控制,采用進(jìn)程描述可以有效控制執(zhí)行條件,進(jìn)程中的條件控制可以將時(shí)鐘信號(hào)(clk)做為控制信號(hào),只有當(dāng)時(shí)鐘信號(hào)變化時(shí),進(jìn)程才執(zhí)行;在時(shí)鐘條件不滿足時(shí),任何輸入信號(hào)的變化對(duì)電路(進(jìn)程)不起作用;,VHDL中的時(shí)鐘檢測(cè)方式,VHDL通常采

2、用屬性語(yǔ)句檢測(cè)時(shí)鐘邊沿; 與時(shí)鐘有關(guān)的屬性語(yǔ)句: clkevent :boolean,clk有變化時(shí)為true; clklast_value:bit,clk在變化之前的值;注意:上述屬性語(yǔ)句只能在子結(jié)構(gòu)中應(yīng)用(作為局部量)。,VHDL中的時(shí)鐘檢測(cè)方式,例:上升沿的檢測(cè): clkevent and clk=1 ; clkevent and clklast_value=0 ; 在由上升沿導(dǎo)致的進(jìn)程執(zhí)行時(shí),上述兩個(gè)表達(dá)式的值都為true;而在由其他輸入變化導(dǎo)致的進(jìn)程執(zhí)行時(shí),上述表達(dá)式的值就是faith;,時(shí)序電路的基本單元設(shè)計(jì),Latch:輸出受時(shí)鐘電平控制,在一段時(shí)間內(nèi)可受輸入變化影響發(fā)生而變化;

3、(電平控制) flip-flop:輸出只在時(shí)鐘邊沿時(shí)刻發(fā)生變化,輸入信號(hào)變化不能直接導(dǎo)致輸出變化;(邊沿控制),時(shí)序電路的基本單元設(shè)計(jì),例:D latch的設(shè)計(jì) p.678 表 8-4 process(clk,d) begin if clk=1 then q=d; end if; end process; d和clk的任何變化都會(huì)導(dǎo)致進(jìn)程執(zhí)行; 僅當(dāng)clk為1時(shí),d的變化才會(huì)導(dǎo)致q的變化;,時(shí)序電路的基本單元設(shè)計(jì),例:D flip-flop的設(shè)計(jì):p.679 表8-6 process (clk,d ) begin if clkevent and clk=1 then q=d; end if ;

4、 end process ; d和clk的任何變化都會(huì)導(dǎo)致進(jìn)程執(zhí)行; 只有在clk上升沿引發(fā)的進(jìn)程執(zhí)行中,d的變化才會(huì)導(dǎo)致q的變化;,時(shí)序電路的基本單元設(shè)計(jì),觸發(fā)沿選擇與清零設(shè)置問(wèn)題: process(clk,clr) begin if clr=1 then q=0; elsif clkevent and clk=1 then q=d; end if; end process; 異步清零,上升沿觸發(fā);,時(shí)序電路的基本單元設(shè)計(jì),觸發(fā)沿選擇與清零設(shè)置問(wèn)題: process(clk,clr) begin if clkevent and clk=0 if clr=0 then q=0; else q=

5、d; end if; end if; end process; 下降沿觸發(fā),同步清零;,時(shí)序電路的基本單元設(shè)計(jì),采用wait語(yǔ)句進(jìn)行時(shí)鐘檢測(cè): process begin wait on clk; if clk=1 then q=d; end if ; end process ;,時(shí)序電路的基本單元設(shè)計(jì),采用wait語(yǔ)句進(jìn)行時(shí)鐘檢測(cè): process begin wait until clk=0; q=d; end process;,關(guān)于寄存器生成的控制問(wèn)題,寄存器的作用是在輸入信號(hào)變化時(shí),保持輸出信號(hào)不變;當(dāng)程序設(shè)計(jì)中隱含這一要求時(shí),就會(huì)在綜合時(shí)引入寄存器; 寄存器只在滿足一定條件時(shí)才允許改

6、變輸出值,因此只能通過(guò)條件判斷語(yǔ)句才會(huì)引入寄存器;,關(guān)于寄存器生成的控制問(wèn)題,例1:寄存器的引入 process(clk,d) begin if clk=1 then q=d; else q=0; end if; end process;,關(guān)于寄存器生成的控制問(wèn)題,例1:寄存器的引入 process(clk,d) begin if clk=1 then q=d; else q=0; end if; end process;,關(guān)于寄存器生成的控制問(wèn)題,例2:雙輸出D觸發(fā)器的設(shè)計(jì)比較: library ieee;use ieee.std_logic_1164.all; entity vdffqqn

7、 is port (d,clk: in std_logic; q,qn: out std_logic); end vdffqqn; architecture beh of vdffqqn is signal qi:std_logic; begin process end beh;,關(guān)于寄存器生成的控制問(wèn)題,例2:雙輸出D觸發(fā)器的設(shè)計(jì)比較1: process(clk) begin if (clkevent and clk=1) then qi = d; q = qi; qn = not qi; end if; end process;,關(guān)于寄存器生成的控制問(wèn)題,例2:雙輸出D觸發(fā)器的設(shè)計(jì)比較2:

8、 process(clk) begin if (clkevent and clk=1) then qi=d; q=d; qn=not qi; end if; end process;,關(guān)于寄存器生成的控制問(wèn)題,例2:雙輸出D觸發(fā)器的設(shè)計(jì)比較3: process(clk) begin if (clkevent and clk=1) then q = d; qn= not d; end if; end process;,關(guān)于寄存器生成的控制問(wèn)題,例2:雙輸出D觸發(fā)器的設(shè)計(jì)比較4: process(clk) begin if (clkevent and clk=1) then qi=d; end i

9、f; q= qi; qn= not qi; end process;,關(guān)于寄存器的設(shè)計(jì)準(zhǔn)則,(1)一個(gè)進(jìn)程中只引入一個(gè)寄存器(組);只含有一條時(shí)間測(cè)試語(yǔ)句;只對(duì)時(shí)間的一個(gè)邊沿進(jìn)行測(cè)試; (2)引入寄存器的優(yōu)選語(yǔ)句應(yīng)該是IF/THEN語(yǔ)句,因?yàn)樵撜Z(yǔ)句更容易控制寄存器的引入;在該語(yǔ)句中只應(yīng)設(shè)置一條邊沿測(cè)試描述分句;,關(guān)于寄存器的設(shè)計(jì)準(zhǔn)則,(3)嚴(yán)格控制帶時(shí)間測(cè)試語(yǔ)句的IF/THEN語(yǔ)句中賦值語(yǔ)句的數(shù)量,將不必要的語(yǔ)句放到該語(yǔ)句以外; (4)在各類條件控制語(yǔ)句中,注意控制條件的完整性,避免因漏掉條件而生成寄存器; (5)在過(guò)程中不能設(shè)計(jì)寄存器。,寄存器的設(shè)計(jì)實(shí)例,16位鎖存寄存器設(shè)計(jì) p.680 表

10、8-8 帶有時(shí)鐘使能控制和輸出三態(tài)控制; library ieee; use ieee.std_logic_1164.all; entity kreg16 is port ( clk,clken,oe,clr: in std_logic; d:in std_logic_vector(1 to 16); q: out std_logic_vector(1 to 16); end kreg16;,寄存器的設(shè)計(jì)實(shí)例,architecture beh of kreg16 is signal iq: std_logic_vector(1 to 16); begin process ( clk,clr,o

11、e,iq) begin if clr=1 then iq0);,寄存器的設(shè)計(jì)實(shí)例,elsif clkevent and clk=1 then if clken = 1 then iqZ); end if; end process ; end beh;,時(shí)序電路的結(jié)構(gòu)與特點(diǎn),有限狀態(tài)機(jī)FSM的設(shè)計(jì),根據(jù)輸出函數(shù)的形式,可以分為moore機(jī)和mealy機(jī)兩類。,FSM的表達(dá)形式,通常采用狀態(tài)轉(zhuǎn)換圖表達(dá)電路信號(hào)的變化:,Moore: y = f(s) Mealy: y = f(s0,x),FSM的設(shè)計(jì)要點(diǎn),定義枚舉類型表達(dá)不同的狀態(tài)特點(diǎn); 設(shè)置信號(hào)表達(dá)現(xiàn)有狀態(tài)和轉(zhuǎn)換的狀態(tài); 對(duì)每一個(gè)現(xiàn)態(tài),利用選擇語(yǔ)

12、句,根據(jù)控制條件x決定轉(zhuǎn)換次態(tài); 根據(jù)現(xiàn)態(tài)和x決定輸出y。,Moore機(jī)設(shè)計(jì):例1,例1 簡(jiǎn)單的Moore狀態(tài)機(jī)設(shè)計(jì) 狀態(tài)轉(zhuǎn)換圖如下所示,要求設(shè)置reset控制,能直接使?fàn)顟B(tài)處于s0。,library ieee; use ieee.std_logic_1164.all; entity statmach is port(clk,input,reset: in std_logic; output: out std_logic); end statmach;,Moore機(jī)設(shè)計(jì):例1,architecture beh of statmach is type state_type is (s0,s1);

13、 -采用枚舉法設(shè)置狀態(tài) signal st: state_type; -表達(dá)當(dāng)前的狀態(tài) begin process(clk) -設(shè)置時(shí)鐘控制模塊 begin if reset=1 then st=s0;-異步復(fù)位 elsif clkevent and clk=1 then -邊沿檢測(cè),Moore機(jī)設(shè)計(jì):例1,case st is -根據(jù)現(xiàn)態(tài)決定下一狀態(tài) when s0 = st if input=1 then st=s0; end if; end case; end if; end process; output=1 when st=s1 else0; -根據(jù)狀態(tài)決定輸出 end beh;,M

14、oore機(jī)設(shè)計(jì):例1,例2 Moore狀態(tài)機(jī)的設(shè)計(jì) 該狀態(tài)機(jī)有5個(gè)狀態(tài),轉(zhuǎn)換圖如下所示:其中輸入控制ID為4位二進(jìn)制數(shù),在圖中表達(dá)為16進(jìn)制數(shù);,Moore機(jī)設(shè)計(jì):例2,library ieee; use ieee.std_logic_1164.all; entity moore2 is port(clk,rst: in std_logic; id: in std_logic_vector(3 downto 0); y: out std_logic_vector(1 downto 0); end moore2;,Moore機(jī)設(shè)計(jì):例2,architecture beh of moore2 is

15、 signal st: std_logic_vector(2 downto 0);-狀態(tài)表達(dá) -各狀態(tài)命名并根據(jù)輸出的特點(diǎn)進(jìn)行賦值 constant s0:std_logic_vector(2 downto 0):=000; constant s1:std_logic_vector(2 downto 0):=010; constant s2:std_logic_vector(2 downto 0):=011; constant s3:std_logic_vector(2 downto 0):=110; constant s4:std_logic_vector(2 downto 0):=111;

16、 begin,Moore機(jī)設(shè)計(jì):例2,process(clk,rst) -狀態(tài)轉(zhuǎn)移關(guān)系 begin if rst=1 then st if id=x3 then st st if id=x7 then st=s3; end if;,Moore機(jī)設(shè)計(jì):例2,when s3= if id=x7 then st if id=xb then stst=s0; end case; end if; end process; y=st(1 downto 0); -輸出方程 end beh;,Moore機(jī)設(shè)計(jì):例2,例3 簡(jiǎn)單狀態(tài)機(jī)設(shè)計(jì)( 教材7.4 /9.2.1),初始態(tài):z=0 連續(xù)2個(gè)觸發(fā)沿A=1,則z

17、=1; 若z=1且b=1, 則z保持1。,Moore機(jī)設(shè)計(jì):例3,例3 簡(jiǎn)單狀態(tài)機(jī)設(shè)計(jì)( 教材7.4 /9.2.1),Moore機(jī)設(shè)計(jì):例3,architecture beh of smexamp is type sreg_type is (init,a0,a1,ok0,ok1); signal sreg:sreg_type; begin process(clk) begin if clkevent and clk=1 then case sreg is when init = if a=0 then sreg=a0; elsif a=1 then sreg=a1; end if;,Moore

18、機(jī)設(shè)計(jì):例3,when a0 = if a=0 then sreg if a=0 then sreg if a=0 then sreg=ok0; elsif a=1 and b=0 then sreg=a1; elsif a=1 and b=1 then sreg=ok1; end if;,Moore機(jī)設(shè)計(jì):例3,when ok1 = if a=0 and b=0 then sregsreg=init; end case; end if; end process;,Moore機(jī)設(shè)計(jì):例3,with sreg select -根據(jù)狀態(tài)決定輸出 z= 0 when init|a0|a1, 1 when ok0|ok1, 0 when others; end beh;,綜合結(jié)果如下:,Moore機(jī)設(shè)計(jì):例3,通過(guò)對(duì)狀態(tài)圖的分析,可以簡(jiǎn)化:,使用1個(gè)寄存器專門存放觸發(fā)時(shí)的輸入a; 則狀態(tài)可以減少到3個(gè);結(jié)構(gòu)也簡(jiǎn)化了。,Moore機(jī)設(shè)計(jì):例4,architecture beh of smexamp is type sreg_type is (init,looking,ok); signal sreg:sr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論