計(jì)算機(jī)組成試驗(yàn)abel_第1頁
計(jì)算機(jī)組成試驗(yàn)abel_第2頁
計(jì)算機(jī)組成試驗(yàn)abel_第3頁
計(jì)算機(jī)組成試驗(yàn)abel_第4頁
計(jì)算機(jī)組成試驗(yàn)abel_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

電子教案——

ABEL語言使用入門9.2ABEL簡介一、ABEL語言的基本語法二、ABEL源文件的基本結(jié)構(gòu)三、ABEL語言的語句四、ABEL語言電路設(shè)計(jì)舉例ABEL語言簡介ABEL語言是一種硬件描述語言(也稱為ABEL-HDL),是開發(fā)PLD的一種高級程序設(shè)計(jì)語言,由美國DATAI/O公司于1983~1988年推出。ABEL語言支持邏輯方程、真值表和狀態(tài)圖三種邏輯描述方式。具有簡單易學(xué)的特點(diǎn)。簡四位二進(jìn)制數(shù)的比較器ABEL樣本文件

ABEL程序moduleCOMP4declarations A3,A2,A1,A0 pin; B3,B2,B1,B0 pin; G,L,E pinistype'com’;

A=[A3..A0]; B=[B3..B0];equations

G=(A>B); L=(A<B); E=(A=B);test_vectors

([A,B]->[G,L,E]) [0,0]->[1,0,0]; [0,1]->[0,1,0]; [15,10]->[0,0,1];endCOMP4句尾分號模塊名邏輯方程段變量說明段測試向量段ABEL樣本文件一、

ABEL語言的基本語法標(biāo)識符與關(guān)鍵字專用常量注釋與數(shù)運(yùn)算符和邏輯表達(dá)式塊集合基本知識標(biāo)識符最長不得超過31個(gè)字符;標(biāo)識符與字母的大小寫有關(guān)。如En和en是兩個(gè)不同的標(biāo)識符。

1、標(biāo)識符與關(guān)鍵字標(biāo)識符用來表示標(biāo)識器件名稱、器件引腳名稱、輸入或輸出信號的名稱、狀態(tài)名稱、集合名稱、常量及模塊名稱等。

標(biāo)識符必須以英文字母或下劃線“

”開始,其后可跟數(shù)字、英文字母、波浪線“~”和下劃線“

”,標(biāo)識符與關(guān)鍵字(續(xù))關(guān)鍵字是一些具有特殊用途的保留標(biāo)識符。關(guān)鍵字不得用來給器件、引腳、節(jié)點(diǎn)、常量、集合、宏或信號命名。關(guān)鍵字可以用大寫、小寫或大小寫混合方式輸入,它們表示的含義相同。2、

專用常量表示方法是在英文字母的左下方及右下方各加一個(gè)圓點(diǎn)。專用常量字母可以用大寫或者小寫字母輸入,表示的含義相同。3、注釋用戶可用兩種方式進(jìn)行注釋:(2)用一雙斜杠//開始,以行結(jié)束來結(jié)束。(1)用一對雙撇號""括起來或用雙撇號"開始,以行結(jié)束來結(jié)束。(1)^b,^o,^d及^h(或^B,^O,^D及^H)表示,^d可以省略不寫。(2)可以用英文字母的字符串表示數(shù),如:'A'=^h41,'AE'=^h4145。4、數(shù)5、運(yùn)算符和邏輯表達(dá)式算術(shù)運(yùn)算符邏輯運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符算術(shù)運(yùn)算符優(yōu)先級最高邏輯運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符6、塊塊是括在大括號“{}”內(nèi)的一段ASCII碼文本,括號內(nèi)的文本可以是一行,也可以是多行。塊用于方程式、狀態(tài)圖、宏定義和指示字中,塊可以嵌套使用,即塊中包含塊。例:

WHEN(Mode==S_Data)THEN{Out_data:=S_in;S_Valid:=1;}ELSEWHEN(Mode==T_Data)THEN{Out_data:=T_in;T_Valid:=1;}7、集合集合是作為一個(gè)整體參與運(yùn)算的一組信號或常量。它采用一個(gè)標(biāo)識符,用方括號內(nèi)的一組信號或常量表示,其中的每一個(gè)信號或常量稱為集合的元素。例:Addr=[A7,

A6,A5,A4,A3,A2,A1,A0]; 為枚舉法

Addr=[A7..A0]; 為界限符法

Addr=[A7..A2,A1,A0]; 為兩種方法的組合

8、ABEL語言對寄存器的描述Q1.q:=;Q1.clk=;Q1.ar=;Q1.ap=;用Q1表示D寄存器寄存器的輸出Q1.d=;Q1.clk=;Q1.ar=;Q1.ap=;激勵(lì)信號點(diǎn)擴(kuò)展點(diǎn)擴(kuò)展

功能舉例

.FB

寄存器反饋信號

Q:=Q.FB+1

.D

D觸發(fā)器輸入

Q1.D=A&B

.J,.K

JK觸發(fā)器的J,K輸入

Q2.J=A;Q2.K=B

.AR

異步清零

Q.AR=CR

.CLR

同步清零

Q.CLR=CR

.CLK

時(shí)鐘輸入

Q.CLK=CLK.AP異步寄存器預(yù)置位Q.AP=AP二、ABEL源文件的基本結(jié)構(gòu)信號屬性的說明例.設(shè)計(jì)一個(gè)4-2線編碼器。MODULE

CODER24TITLE'CODER24'I3,I2,I1,I0PIN;O1,O0PINISTYPE'COM';TRUTH_TABLE

([I3,I2,I1,I0]->[O1,O0])[0,0,0,1]->[0,0];[0,0,1,0]->[0,1];[0,1,0,0]->[1,0];[1,0,0,0]->[1,1];END用真值表實(shí)現(xiàn)

ABEL_HDL語言組合型輸出模塊語句標(biāo)題語句定義段三、ABEL語言的語句方程式語句真值表語句狀態(tài)圖語句方程式中的賦值符為“=”或“:=”。在方程中允許使用WHEN-THEN-ELSE語句。但不能使用IF-THEN-ELSEEQUATIONS[WHEN

條件THEN][!]變量名=表達(dá)式;[ELSE

方程式;]或者[WHEN

條件THEN]方程式;[ELSE

方程式;]方程式語句EQUATIONSx=!(a&b);"與非門y=a#b;"或門!z=a$b;"異或門例:例:設(shè)計(jì)一個(gè)4位左移移位寄存器。

MODULESHIFT4TITLE'SHIFT4'DIN,CLK,CLRPIN;Q3..Q0PIN

ISTYPE

'REG';OUT=[Q3..Q0];EQUATIONSOUT.CLK=CLK;OUT.AR=CLR;Q0:=DIN;Q1:=Q0;Q2:=Q1;Q3:=Q2;

ENDABEL_HDL語言屬性說明邏輯方程段變量說明段輸入輸出信號定義例:設(shè)計(jì)一個(gè)4選1數(shù)據(jù)選擇器。MODULEMUX4S1TITLE'MUX4S1'S1,S0PIN;D3,D2,D1,D0PIN;Y PIN

ISTYPE

'COM';S=[S1,S0];EQUATIONSWHEN(S==0)THENY=D0;WHEN(S==1)THENY=D1;WHEN(S==2)THENY=D2;WHEN(S==3)THENY=D3;ENDWHEN_THEN語句的使用ABEL_HDL語言例:設(shè)計(jì)一位十進(jìn)制加法計(jì)數(shù)器。MODULEcount10q3,q2,q1,q0PIN

ISTYPE

'reg';clk,cdPIN;count=[q3..q0];EQUATIONScount.clk=clk;count.ar=cd;WHEN(count==9)THENcount:=0;

ELSEcount:=(count.fb+1);END注意WHEN_THEN_ELSE語句、

fb點(diǎn)擴(kuò)展的使用q3..q0的時(shí)鐘由clk提供它用表格的形式將輸出定義為輸入的函數(shù)。以關(guān)鍵字TRUTH_TABLE為開始,后面跟表頭向量和表格。TRUTH_TABLE(輸入->輸出)輸入->輸出;

或TRUTH_TABLE(輸入[:>寄存器型輸出]->輸出;)

輸入[:>寄存器型輸出]->輸出;

真值表語句2/4線譯碼器

MODULE

decoderDECLARATIONSa,b pin;y0,y1,y2,y3 pinistype'com';TRUTH_TABLE([a,b]->[y0,y1,y2,y3]) [0,0]->[1,0,0,0]; [0,1]->[0,1,0,0]; [1,0]->[0,0,1,0]; [1,1]->[0,0,0,1];END

decoder例:屬性說明例:設(shè)計(jì)一位十進(jìn)制加法計(jì)數(shù)器及七段譯碼電路。MODULEcountclk PIN;q3..q0PIN

ISTYPE

'REG';a,b,c,d,e,f,gPIN

ISTYPE

'COM';H,L=1,0;count=[q3..q0];EQUATIONS[q3..q0].clk=clk;輸入輸出信號定義

注意此設(shè)計(jì)中集合、clk點(diǎn)擴(kuò)展的使用TRUTH_TABLE([count]:>[count]->[a,b,c,d,e,f,g])[0]:>[1]->[1,1,1,1,1,1,0];[1]:>[2]->[0,1,1,0,0,0,0];[2]:>[3]->[1,1,0,1,1,0,1];[3]:>[4]->[1,1,1,1,0,0,1];[4]:>[5]->[0,1,1,0,0,1,1];[5]:>[6]->[1,0,1,1,0,1,1];[6]:>[7]->[0,0,1,1,1,1,1];[7]:>[8]->[1,1,1,0,0,0,0];[8]:>[9]->[1,1,1,1,1,1,1];[9]:>[0]->[1,1,1,0,0,1,1];END

用真值表實(shí)現(xiàn)

STATE_DIAGRAM

狀態(tài)寄存器

[->狀態(tài)輸出][STATE

狀態(tài)表達(dá)式:[方程式][方程式]

狀態(tài)轉(zhuǎn)移描述]ABEL語言提供三種語句來描述狀態(tài)轉(zhuǎn)移:無條件轉(zhuǎn)移語句(GOTO語句)條件轉(zhuǎn)移語句(IF-THEN-ELSE語句)多路轉(zhuǎn)移語句(CASE-ENDCASE);此外,狀態(tài)機(jī)在發(fā)生狀態(tài)轉(zhuǎn)移的同時(shí)可能有相應(yīng)的數(shù)據(jù)輸出,所以還有條件輸出語句(WITH語句)。狀態(tài)圖語句設(shè)計(jì)一個(gè)模為4的同步二進(jìn)制遞增計(jì)數(shù)器MODULE

cnt4DECLARATIONScp pin;q1,q0 pinistype'reg';

Copinistype'com';s0=^b00;s2=^b10;s1=^b01;s3=^b11;EQUATIONS[q1,q0].clk=cp;STATE_DIAGRAM[q1,q0]

STATEs0:GOTOs1WITHCo=0;

STATEs1:GOTOs2WITHCo=0;

STATEs2:GOTOs3WITHCo=0;

STATEs3:GOTOs0WITHCo=1;END例1:句尾分號狀態(tài)圖段邏輯方程段變量說明段q1、q0的時(shí)鐘由cp提供屬性說明步進(jìn)電機(jī)三相六拍脈沖分配器電路

例2:采用狀態(tài)機(jī)的方法進(jìn)行設(shè)計(jì)moduleMOTORdeclarationsCP,DIRpin;C,B,Apinistype'reg';CK,X,Z=.C.,.X.,.Z.;Q=[C,B,A];S0=^b000;S4=^b011;S1=^b100;S5=^b001;S2=^b110;S6=^b101;S3=^b010;S7=^b111;Mode=DIR;Up=1;Down=0;輸入輸出信號定義工作方式定義狀態(tài)定義

EQUATIONSQ.CLK=CP;STATE_DIAGRAMQ

StateS0:gotoS1;

StateS1:case(Mode==Up):S2;(Mode==Down):S6;

endcase;

StateS2:case(Mode==Up):S3;(Mode==Down):S1;

endcase;

StateS3:case(Mode==Up):S4;(Mode==Down):S2;

endcase;

StateS4:case(Mode==Up):S5;(Mode==Down):S3;endcase;狀態(tài)圖段邏輯方程段StateS5:case(Mode==Up):S6;(Mode==Down):S4;

endcase;

StateS6:case(Mode==Up):S1;(Mode==Down):S5;

endcase;StateS7:gotoS1;endMOTOR變模計(jì)數(shù)器的設(shè)計(jì)

例3:設(shè)計(jì)一個(gè)變模計(jì)數(shù)器,在S和T的控制下,實(shí)現(xiàn)同步模5或模10或模12遞增計(jì)數(shù)。

S T 模式 0 1 模5計(jì)數(shù) 1 0 模10計(jì)數(shù) 1 1 模12計(jì)數(shù)

方法:采用狀態(tài)機(jī)的方法進(jìn)行設(shè)計(jì)moduleMACHINEtitle'VARIABLE_MODULO_COUNTER'declarations CP,OE,S,T pin; Q3,Q2,Q1,Q0 pinistype'reg,buffer';"setdefinitionsQ=[Q3,Q2,Q1,Q0];A=[0,0,0,0];B=[0,0,0,1];C=[0,0,1,0]; D=[0,0,1,1];E=[0,1,0,0];F=[0,1,0,1];G=[0,1,1,0];H=[0,1,1,1];I=[1,0,0,0];J=[1,0,0,1];K=[1,0,1,0];L=[1,0,1,1];M=[1,1,0,0];N=[1,1,0,1];O=[1,1,1,0];P=[1,1,1,1];輸入輸出信號定義計(jì)數(shù)器狀態(tài)定義狀態(tài)圖段邏輯方程段equations[Q3,Q2,Q1,Q0].CLK=CP;[Q3,Q2,Q1,Q0].OE=!OE;state_diagramQ

stateA:gotoB;

stateB:gotoC;

stateC:gotoD;

stateD:gotoE;

stateE:if(!S&T)thenA

elseF;

stateF:gotoG;

stateG:gotoH;

stateH:gotoI;

sta

溫馨提示

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

提交評論