數(shù)字系統(tǒng)EDA技術:第三章 VHDL程序設計3_第1頁
數(shù)字系統(tǒng)EDA技術:第三章 VHDL程序設計3_第2頁
數(shù)字系統(tǒng)EDA技術:第三章 VHDL程序設計3_第3頁
數(shù)字系統(tǒng)EDA技術:第三章 VHDL程序設計3_第4頁
數(shù)字系統(tǒng)EDA技術:第三章 VHDL程序設計3_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1基本邏輯電路:組合邏輯電路、時序邏輯電路一組合邏輯電路設計簡單門電路、編碼器、譯碼器、加法器、多路選擇器、三態(tài)門等?!?.9基本邏輯電路設計21、基本門電路32、編碼器設計一個8輸入優(yōu)先級編碼器,y0級別最低,y7級別最高;輸出為3位編碼。Y7=1Vec=111Y6=1Vec=110Y5=1Vec=101Y4=1Vec=100Y3=1Vec=011Y2=1Vec=010Y1=1Vec=001Y0=1Vec=0004方法1:利用if多選擇語句自頂向下的優(yōu)先特性5方法2:進程內(nèi)為順序語句,最先描述優(yōu)先級最低,最后描述優(yōu)先級最高,可實現(xiàn)優(yōu)先級編碼。6方法3:利用條件賦值語句

architecturebehaviorofpriorityis

beginvec<=“111”

wheny7=‘1’

else

“110”

wheny6=‘1’

else

“101”

wheny5=‘1’

else

“100”

wheny4=‘1’

else

“011”

wheny3=‘1’

else

“010”

wheny2=‘1’

else

“001”

wheny1=‘1’

else

“000”

wheny0=‘1’

else

“XXX”;

endbehavior;73、譯碼器

譯碼器是編碼器的逆過程。如3-8譯碼器:sel=000Y=00000001sel=001Y=00000010sel=010Y=00000100sel=011Y=00001000sel=100Y=00010000sel=101Y=00100000sel=110Y=01000000sel=111Y=100000008方法1:使用邏輯左移運算符

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitydecoderis

port(inp:instd_logic_vector(2downto0);outp:outstd_logic_vector(7downto0));

end

entitydecoder;

architecturertlofdecoderisbeginoutp<=“00000001”sll(conv_integer(inp));end

architecturertl;9方法2:使用process語句

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydecoderis

port(inp:instd_logic_vector(2downto0);outp:outstd_logic_vector(7downto0));enddecoder;architecturertlofdecoderisbegin

process(inp)

beginoutp<=(others=>’0’);outp(conv_integer(inp))<=‘1’;

endprocess;endrtl;10方法3:使用case語句實現(xiàn)。11譯碼輸出低有效12方法4:使用條件賦值語句133-8譯碼器仿真結果:譯碼輸出低有效144、加法器

帶進位的4位加法器符號如下:Sum(i)=a(i)b(i)cinC(i+1)=a(i)b(i)+(a(i)+b(i))c(i)15方法1:用for–loop語句實現(xiàn)

16方法2:直接使用加法“+”函數(shù):17加法器仿真結果:185、多路選擇器

前面用if語句、case語句、條件賦值語句、選擇賦值語句分別描述過4選1選擇器。6、三態(tài)門

VHDL語言通過指定大寫的Z值表示高阻狀態(tài)

a:std_logic;a_bus:std_logic_vector(7downto0);

指定高阻狀態(tài)如下:

a<=‘Z’;a_bus<=“ZZZZZZZZ”;19三態(tài)門電路描述20三態(tài)門仿真結果:21二時序邏輯電路設計觸發(fā)器、寄存器、計數(shù)器、分頻器、信號發(fā)生器等。(一)時序電路特殊信號的描述時鐘信號和復位信號

1、時鐘信號描述常用的描述方式:

1)進程的敏感信號是時鐘信號,在進程內(nèi)部用if語句描述時鐘的邊沿條件。22如:

process(clock_signal)beginif(clock_edge_condition)thensignal_out<=signal_in;┇

其它時序語句┇

endif;endprocess;232)在進程中用waituntil語句描述時鐘信號,此

時進程將沒有敏感信號。如:

processbeginwaituntil(clock_edge_condition);signal_out<=signal_in;┇

其它時序語句┇

endprocess;24

注意:

a.在對時鐘邊沿說明時,一定要注明是上升沿還是下降沿。

b.一個進程中只能描述一個時鐘信號。

c.waituntil語句只能放在進程的最前面或最后面。3)時鐘邊沿的描述時鐘上升沿:

(clock’eventandclock=‘1’)

時鐘下降沿:

(clock’eventandclock=‘0’)

252、觸發(fā)器的復位信號描述

1)同步復位:在只有以時鐘為敏感信號的進程中定義。如:

process(clock_signal)beginif(clock_edge_condition)then

if(reset_condition)thensignal_out<=reset_value;elsesignal_out<=signal_in;┇endif;endif;endprocess;26

2)異步復位:進程的敏感信號表中除時鐘信號外,還有復位信號。如:process(reset_signal,clock_signal)begin

if(reset_condition)thensignal_out<=reset_value;elsif(clock_edge_condition)thensignal_out<=signal_in;┇endif;endprocess; 27clocksig_insig_out1sig_out2reset28二)常用時序電路設計

1、觸發(fā)器(Flip_Flop)

1)D觸發(fā)器29異步置位/復位D觸發(fā)器30同步復位D觸發(fā)器31比較:異步置位的鎖存器(Latch)32libraryieee;useieee.std_logic_1164.all;

entityt_ffis

port(t,clk:instd_logic;q:bufferstd_logic);endt_ff;

architecturertloft_ffisbegin

process(clk)

begin

ifclk’eventandclk=‘1’

then

ift=‘1’

thenq<=notq;

elseq<=q;

endif;

endprocess;

endrtl;tClkqq2)T觸發(fā)器33libraryieee;useieee.std_logic_1164.all;entityrs_ffisport(r,s,clk:instd_logic;q,qn:bufferstd_logic);endrs_ff;architecturertlofrs_ffisbeginprocess(r,s,clk)beginifclk’eventandclk=‘1’thenifs=‘1’andr=‘0’thenq<=‘0’;qn<=‘1’;elsifs=‘0’andr=‘1’thenq<=‘1’;qn<=‘0’;elsifs=‘0’andr=‘0’thenq<=q;qn<=qn;elsenull;endif;endif;endprocess;endrtl;sClkqqrSRQQn00QQn0110100111??3)RS觸發(fā)器342、寄存器

8位串行輸入、串行輸出移位寄存器:z0z1z2z3z4z5z6z7z8Data_indata_outReg_shift_8clockaclkb358位移位寄存器描述(結構描述)368位移位寄存器直接用信號連接描述37移位寄存器仿真結果:383、計數(shù)器

計數(shù)器分為:同步計數(shù)器異步計數(shù)器(1)同步計數(shù)器同步計數(shù)器指在時鐘脈沖(計數(shù)脈沖)的控制下,構成計數(shù)器的各觸發(fā)器狀態(tài)同時發(fā)生變化的計數(shù)器。39帶允許端的十二進制計數(shù)器40可逆計數(shù)器(加減計數(shù)器)41可逆計數(shù)器仿真結果:42例:六十進制(分、秒)計數(shù)器434460進制計數(shù)器仿真結果:45(2)異步計數(shù)器異步計數(shù)器又稱為行波計數(shù)器,它的低位計數(shù)器的輸出信號作為高位計數(shù)器的時鐘信號。異步計數(shù)器使計數(shù)延遲增加,計數(shù)器工作頻率較低。描述異步計數(shù)器與同步計數(shù)器的不同主要體現(xiàn)在對各級時鐘脈沖的描述上。46例:由8個觸發(fā)器構成的行波計數(shù)器:47

基本元件dffr的描述:48

采用元件例化描述8位行波計數(shù)器:498位行波計數(shù)器仿真結果:501)“01111110”序列發(fā)生器4、序列信號發(fā)生器、檢測器5152仿真結果:53(1)狀態(tài)機狀態(tài)譯碼器狀態(tài)寄存

溫馨提示

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

最新文檔

評論

0/150

提交評論