版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1D觸發(fā)器電路全加器主要內(nèi)容
DFF的VHDL描述
全加器的VHDL描述第1頁(yè)/共46頁(yè)libraryieee;useieee.std_logic_1164.all;entitydff1isport(clk,d:
instd_logic;
q:outstd_logic);end;architecturebhvofdff1issignalq1:std_logic;beginprocess(clk)beginif(clk'eventandclk='1')thenq1<=d;endif;endprocess;q<=q1;end;庫(kù)、程序包實(shí)體結(jié)構(gòu)體第2頁(yè)/共46頁(yè)STD_LOGIC標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類(lèi)型STD_LOGIC比BIT包含的內(nèi)容豐富和完整
BIT:’0’、’1’
STD_LOGIC數(shù)據(jù)類(lèi)型通常在設(shè)計(jì)中通常使用std_logic類(lèi)型這里我們借D觸發(fā)器對(duì)這類(lèi)數(shù)據(jù)類(lèi)型進(jìn)行一個(gè)描述,并非時(shí)序電路都要用這類(lèi)數(shù)據(jù)類(lèi)型第3頁(yè)/共46頁(yè)‘U’--Uninitialized(未初始化的)
‘X’--ForcingUnknown(強(qiáng)未知的)
‘0’--Forcing0(強(qiáng)0)
‘1’--Forcing1(強(qiáng)1)
‘Z’--HighImpedance(高阻態(tài))
‘W’--WeakUnknown(弱未知的)
‘L’--Weak0(弱0)
‘H’--Weak1(弱1)
‘-’--Don‘tcare(忽略)返回第4頁(yè)/共46頁(yè)
庫(kù)、程序包
std_logic、std_logic_vector:定義在std_logic_1164.all程序包中,而此包由IEEE定義。所以,使用到這兩種數(shù)據(jù)類(lèi)型時(shí),需包含
libraryieee;useieee.std_logic_1164.all;返回第5頁(yè)/共46頁(yè)
SIGNAL信號(hào)名:數(shù)據(jù)類(lèi)型[:=初始值];區(qū)別:
signal:描述實(shí)體內(nèi)部節(jié)點(diǎn),不定義輸入輸出方向,在結(jié)構(gòu)體中作為一個(gè)數(shù)據(jù)的暫存器,進(jìn)行賦值。端口:描述實(shí)體與外界的接口數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象返回第6頁(yè)/共46頁(yè)
Event信號(hào)屬性函數(shù)
s’Event:如果在當(dāng)前一個(gè)相當(dāng)小的時(shí)間間隔內(nèi),事件發(fā)生了,則函數(shù)將返回”TURE”、否則返回”FLASE”
上升沿:clock’eventandclock=‘1’;
下降沿:clock’eventandclock=‘0’;
上升沿:rising_edge(clock);
下降沿:falling_edge(clock);上升沿檢測(cè)表達(dá)方式和信號(hào)屬性使用函數(shù)要注意打開(kāi)相關(guān)程序包第7頁(yè)/共46頁(yè)時(shí)鐘的描述方法上升沿:CP’EVENTANDCP=‘1’下升沿:CP’EVENTANDCP=‘0’Clk=0Clk=0Clk=1Clk=1Clock’EVENTClock’EVENTClock’EVENTClock’EVENT為信號(hào)的屬性函數(shù),有事件發(fā)生為“真”,否則為“假”第8頁(yè)/共46頁(yè)architecturebhvofdff2isbeginprocess(clk)beginif(clk'eventandclk='1')thenq<=d;endif;endprocess;end;時(shí)序電路由于這條語(yǔ)句的存在?第9頁(yè)/共46頁(yè)不完整條件語(yǔ)句與時(shí)序電路
if(clk'eventandclk='1')thenq1<=d;endif;此IF語(yǔ)句未利用ELSE指明IF語(yǔ)句不滿(mǎn)足條件時(shí),作何操作(不完整的條件語(yǔ)句);引入時(shí)序元件保存q1的原值;不完整語(yǔ)句,綜合器如何處理?第10頁(yè)/共46頁(yè)上升沿D觸發(fā)器描述方法一:使用信號(hào)屬性函數(shù)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS
PORT(D,CP: INSTD_LOGIC; Q: OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISSIGNALQ1:STD_LOGICBEGIN
PROCESS(CP)
BEGIN
IF(CP’EVENTANDCP=‘1’)THENQ1<=D;
ENDIF;
ENDPROCESS;Q<=Q1;ENDtest;CP定義的數(shù)據(jù)類(lèi)型有9種狀態(tài),不能完全代表信號(hào)由0跳變到1第11頁(yè)/共46頁(yè)方法二:使用WAIT語(yǔ)句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS
PORT(D,CP: INSTD_LOGIC; Q: OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN
PROCESS
BEGIN
WAITUNTILCP=‘1’; Q<=D;
ENDPROCESS;ENDtest;上升沿D觸發(fā)器描述使用waituntil語(yǔ)句后就不用列出敏感信號(hào)等效對(duì)時(shí)鐘信號(hào)CP的一個(gè)跳變判斷第12頁(yè)/共46頁(yè)方法三:使用上升沿檢測(cè)函數(shù)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP: INSTD_LOGIC; Q: OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN
PROCESS(cp)
BEGIN
IF(rising_edge(cp))THEN Q<=D; ENDIF;
ENDPROCESS;ENDtest;上升沿D觸發(fā)器描述使用函數(shù)要注意打開(kāi)相關(guān)程序包第13頁(yè)/共46頁(yè)方法四:使用進(jìn)程的啟動(dòng)特性LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS
PORT(D,CP: INSTD_LOGIC; Q: OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS(CP)
BEGIN
IFCP=‘1’THEN Q<=D; ENDIF;
ENDPROCESS;ENDtest;上升沿D觸發(fā)器描述使用進(jìn)程對(duì)敏感信號(hào)的檢測(cè),來(lái)實(shí)現(xiàn)對(duì)時(shí)鐘信號(hào)的邊沿檢測(cè)第14頁(yè)/共46頁(yè)由波形可見(jiàn),Q的變化發(fā)生在clk的上升沿時(shí)刻D的取值。clk=0時(shí),Q值不變。上升沿D觸發(fā)器描述第15頁(yè)/共46頁(yè)髙電平D觸發(fā)器描述方法:使用進(jìn)程的啟動(dòng)特性LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q: OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS(CP,D)
BEGIN
IFCP=‘1’THEN Q<=D; ENDIF; ENDPROCESS;ENDtest;注意進(jìn)程的敏感信號(hào)第16頁(yè)/共46頁(yè)由圖可見(jiàn),當(dāng)CLK=1時(shí),Q隨D變化而變化。clk=0時(shí),Q保持不變。髙電平D觸發(fā)器描述第17頁(yè)/共46頁(yè)uvw全加器設(shè)計(jì)含有層次結(jié)構(gòu)的VHDL程序例化語(yǔ)句的學(xué)習(xí)case語(yǔ)句的認(rèn)識(shí)第18頁(yè)/共46頁(yè)--以下是半加器的描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;--以下是半加器的實(shí)體描述ENTITYH_adderISPORT(in_a,in_b:INSTD_LOGIC;
out_s,out_co:OUTSTD_LOGIC);END;--以下是半加器結(jié)構(gòu)體描述ARCHITECTURE
one
OFH_adderISBEGIN out_s<=in_aXORin_b; out_co<=in_aANDin_b;END
one;第19頁(yè)/共46頁(yè)……architecture
one
of
h_adderissignal
P:
std_logic_vector(1downto0);begin
P<=a&b;process
(P)
begin
case
P
is
when"00"=>so<='0';co<='0';
when"01"=>so<='1';co<='0';
when"10"=>so<='1';co<='0';
when"11"=>so<='0';co<='1';
whenothers=>null;endcase;endprocess;
end;--以下是半加器的結(jié)構(gòu)體描述CASE語(yǔ)句當(dāng)a和b分別為‘0’和‘0’時(shí),即P為‘00’不是操作符,含義相當(dāng)于then/“于是”滿(mǎn)足條件后執(zhí)行語(yǔ)句判斷P的值相當(dāng)于寫(xiě)出真值表第20頁(yè)/共46頁(yè)--以下是或門(mén)描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;--以下是或門(mén)實(shí)體描述ENTITYOr_2ISPORT
(x,y:INSTD_LOGIC;z:OUTSTD_LOGIC);END
Or_2;--以下是或門(mén)結(jié)構(gòu)體描述ARCHITECTURE
one
OFOr_2ISBEGIN
Z<='1'WHEN(x='0'ANDy='1')ELSE
'1'WHEN(x='1'ANDy='0')ELSE
'1'WHEN(x='1'ANDy='1')ELSE
'0';ENDbehavioral;第21頁(yè)/共46頁(yè).....--以下是或門(mén)另一種結(jié)構(gòu)體描述architectureoneofor_2isbeginc<=aorb;end;第22頁(yè)/共46頁(yè)--以下是一位全加器結(jié)構(gòu)描述的頂層設(shè)計(jì)ENTITYfull_adderISPORT(a,b,ci:INSTD_LOGIC;
s,co:OUTSTD_LOGIC);ENDfull_adder;ARCHITECTUREoneOFfull_adderISCOMPONENT
H_adder
-----半加器部件聲明PORT(in_a,in_b:INSTD_LOGIC;
out_s,out_co:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENT
OR_2
----二輸入或門(mén)部件聲明PORT(x,y:INSTD_LOGIC;
z:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALu,v,w:STD_LOGIC;------定義內(nèi)部三條連線BEGINU1:H_adderPORTMAP(in_a=>a,in_b=>b,
out_s=>v,out_co=>u);
--端口映射U2:H_adderPORTMAP(in_a=>v,in_b=>ci,
out_s=>s,out_co=>w);U3:Or_2PORTMAP(x=>u,y=>w,z=>co);END;
第23頁(yè)/共46頁(yè)元件例化語(yǔ)句
元件例化語(yǔ)句:即將從前設(shè)計(jì)的實(shí)體當(dāng)作本設(shè)計(jì)的一個(gè)元件,然后用VHDL語(yǔ)句將各元件之間的連接關(guān)系描述出來(lái);VHDL設(shè)計(jì)實(shí)體、來(lái)自FPGA元件庫(kù)中的元件、Verilog設(shè)計(jì)的實(shí)體、IP核、FPGA中的嵌入式硬IP核等;第24頁(yè)/共46頁(yè)COMPONENT元件名IS【GENERIC(類(lèi)屬表);】PORT(端口名表);
ENDCOMPONENT元件名;
例化名:元件名PORTMAP([元件端口名=>]連接端口名,…);元件定義語(yǔ)句:將一個(gè)現(xiàn)成的設(shè)計(jì)實(shí)體定義為本設(shè)計(jì)的一個(gè)元件;與實(shí)體的port()一樣。元件例化語(yǔ)句:描述元件與當(dāng)前設(shè)計(jì)實(shí)體的連接關(guān)系第25頁(yè)/共46頁(yè)[元件端口名=>]連接端口名其中,元件端口名是元件定義語(yǔ)句中的端口名表中已定義好的;連接端口名是當(dāng)前系統(tǒng)與準(zhǔn)備接入的元件對(duì)應(yīng)端口相連的通信端口;端口名和當(dāng)前系統(tǒng)的連接端口名的接口表達(dá)名字關(guān)聯(lián):端口名和關(guān)聯(lián)符號(hào)”=>”必須存在位置關(guān)聯(lián):只需列出連接端口U1:H_adderPORTMAP(in_a=>a,in_b=>b,
out_s=>v,out_co=>u);
--端口映射第26頁(yè)/共46頁(yè)architectureabcofshifteriscomponentdffport(d,clk:inbit;q:outbit);endcomponent;signald:bit_vector(0to4);begind(0)<=din;u0:dffportmap(d=>d(2),clk=>clk,q=>d(3));u1:dffportmap(d=>d(3),clk=>clk,q=>d(4));dout<=d(4);endabc;元件例化(映射)語(yǔ)句的位置:在結(jié)構(gòu)體的BEGIN和END之間;元件定義語(yǔ)句的位置:結(jié)構(gòu)體聲明部分名字關(guān)聯(lián)方式返回第27頁(yè)/共46頁(yè)CASE語(yǔ)句根據(jù)滿(mǎn)足的條件直接選擇多項(xiàng)順序語(yǔ)句中的一項(xiàng)執(zhí)行;
CASE表達(dá)式ISWHEN值1=>語(yǔ)句A;
WHEN值2=>語(yǔ)句B;
…WHENOTHERS
=>
語(yǔ)句C;ENDCASE;這里的=>不是關(guān)系運(yùn)算符,僅描述:值和對(duì)應(yīng)執(zhí)行語(yǔ)句的對(duì)應(yīng)關(guān)系,相當(dāng)于THEN的作用返回判斷前面的情況都不存在時(shí),作為最后一種條件取值第28頁(yè)/共46頁(yè)std_logic標(biāo)準(zhǔn)位類(lèi)型std_logic_vector標(biāo)準(zhǔn)一維數(shù)組使用std_logic_vector表示多通道端口或者總線。使用std_logic_vector時(shí)要注明其數(shù)組寬度:如:B:out
std_logic_vector(7downto0);downto表示最左邊為最高位,位數(shù)向右依次遞減。如:A:outstd_logic_vector(1to4);to表示最左邊為最低位,位數(shù)向右遞增。前例中定義內(nèi)部信號(hào)P為兩個(gè)元素的std_logic_vector第29頁(yè)/共46頁(yè)&-------并置操作符:將操作數(shù)或數(shù)組合并起來(lái)形成新的數(shù)組;返回P<=a&b;表示P為a和b組成的數(shù)組當(dāng)a,b分別為’0,0‘;P為’00‘’0,1‘;P為’01‘’1,0‘;p為'10'’1,1‘;p為'11'第30頁(yè)/共46頁(yè)一種計(jì)數(shù)器的設(shè)計(jì)entitycnt4isport(clk:inbit;Q:buffer
integer
range15downto0);end;architecturebhvofcnt4isbeginprocess(clk)beginifclk’eventandclk=‘1’thenQ<=Q+1;endif;endprocess;endbhv;第31頁(yè)/共46頁(yè)數(shù)據(jù)對(duì)象:Buffer在“<=”的左右兩邊都出現(xiàn)Q,表明Q應(yīng)具有輸入和輸出兩種端口模式,同時(shí)它的輸入特性應(yīng)是反饋方式,即傳輸符號(hào)“<=”的右邊Q應(yīng)該來(lái)自左邊的Q的反饋。BUFFER與INTOUT的區(qū)別在于buffer的輸入來(lái)自反饋,所以這里將Q定義為buffer類(lèi)型最為合適。返回第32頁(yè)/共46頁(yè)數(shù)據(jù)類(lèi)型:integer對(duì)應(yīng)“+、-”的操作數(shù)必須定義為整數(shù)類(lèi)型(integer)。表達(dá)式:Q<=Q+1;式中“Q”和“1”都是整數(shù),滿(mǎn)足“<=”左右兩邊都是整數(shù)(類(lèi)型相同),“+”左右兩邊都是整數(shù)的條件。VHDL綜合器要求必須使用“RANGE”句子為所定義的數(shù)限定范圍,再根據(jù)所定義的范圍來(lái)決定表示此信號(hào)或變量的二進(jìn)制數(shù)的位數(shù)。Q:bufferintegerranger15downto0;定義了Q的取值范圍是0~15;可以用四位二進(jìn)制數(shù)表示。第33頁(yè)/共46頁(yè)整數(shù)的表達(dá)式不加引號(hào),如:1,0,25;而邏輯位的數(shù)據(jù)要加引號(hào),如:’1’,’0’,”0”,”1111”。自然數(shù):natural:0~正整數(shù);正整數(shù):positive:比自然數(shù)少個(gè)0;返回第34頁(yè)/共46頁(yè)另一種計(jì)數(shù)器表達(dá)方式libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt4isport(clk:instd_logic;
Q:outstd_logic_vector(3downto0));end;architecturebhvofcnt4issignalQ1:std_logic_vertor(3downto0);beginprocess(clk)beginifclk’eventandclk=‘1’thenQ1<=Q1+1;endif;endprocess;Q<=Q1;endbhv;第35頁(yè)/共46頁(yè)ieee.std_logic_unsigned.all表達(dá)式:Q1<=Q1+1;加號(hào)左右兩個(gè)數(shù)據(jù)類(lèi)型不相同,Q1(邏輯矢量)1(整數(shù));ieee庫(kù)中std_logic_unsigned程序包中預(yù)先定義的操作符允許不同數(shù)據(jù)類(lèi)型的操作數(shù)之間用運(yùn)算符進(jìn)行運(yùn)算。返回第36頁(yè)/共46頁(yè)Q端口模式是“out”,由于Q沒(méi)有輸入的端口模式,因此Q不能如前例那樣直接用表達(dá)式:Q<=Q+1;在計(jì)數(shù)器內(nèi)部定義一個(gè)信號(hào)signal,無(wú)需定義方向,所以Q1的方向是不受方向限制的,可以用Q1<=Q1+1;完成累加任務(wù);第37頁(yè)/共46頁(yè)一般計(jì)數(shù)器的設(shè)計(jì)方法異步復(fù)位同步時(shí)鐘使能變量賦值省略賦值操作符第38頁(yè)/共46頁(yè)architecturebehofcnt10isbeginprocess(clk,rst,en)variableCQI:std_logic_vector(3downto0);beginifrst=‘1’thenCQI:=(OTHERS=>’0’);
elseifclk’eventandclk=‘1’thenifen=‘1’thenifCQI<9thenCQI:=CQI+1;elseCQI:=(OTHERS=>’0’);endif;endif;ensif;ifCQI=9thencout<=‘1’;els
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025二手房買(mǎi)賣(mài)合同簡(jiǎn)單版
- 2024年斗型布草車(chē)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 2024年廢棄資源和廢舊材料回收加工品項(xiàng)目申請(qǐng)報(bào)告模范
- 2024年無(wú)碳復(fù)寫(xiě)紙項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025公司資產(chǎn)劃轉(zhuǎn)合同
- 信息技術(shù)在學(xué)校資產(chǎn)管理中的應(yīng)用
- 2024年媒體云項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025試用期內(nèi)用人單位能否與員工解除勞動(dòng)合同
- 2025快遞員勞動(dòng)合同
- 2025民間借貸標(biāo)準(zhǔn)合同
- MOOC 線性代數(shù)-同濟(jì)大學(xué) 中國(guó)大學(xué)慕課答案
- 橋式起重機(jī)定期檢查記錄表
- MOOC 警察禮儀-江蘇警官學(xué)院 中國(guó)大學(xué)慕課答案
- 2023-2024學(xué)年度九上圓與無(wú)刻度直尺作圖專(zhuān)題研究(劉培松)
- 2024年廣東省2024屆高三二模英語(yǔ)試卷(含標(biāo)準(zhǔn)答案)
- 2023年-2024年醫(yī)療器械知識(shí)測(cè)試題與答案(含A.B卷)
- 2023年度四川公需科目:數(shù)字經(jīng)濟(jì)與驅(qū)動(dòng)發(fā)展
- 汽車(chē)制造業(yè)的柔性生產(chǎn)與敏捷制造
- 2024年制鞋工專(zhuān)業(yè)知識(shí)考試(重點(diǎn))題庫(kù)(含答案)
- 2023年政府采購(gòu)評(píng)審專(zhuān)家入庫(kù)考試模擬真題一套(含正確答案)
- 2023-2024學(xué)年廣州大附屬中學(xué)中考一模物理試題含解析
評(píng)論
0/150
提交評(píng)論