




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年宜興市丁蜀鎮(zhèn)人民政府直屬國企業(yè)公開招聘聘用人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省馬鞍山市鄭蒲港新區(qū)姥橋鎮(zhèn)政府招聘8人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽池州貴池區(qū)生態(tài)環(huán)境分局招聘編外人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽宣城事業(yè)單位聯(lián)考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽合肥肥西縣嚴(yán)店鄉(xiāng)招聘3人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安康西鄉(xiāng)縣事業(yè)單位招考工作人員工作(19名)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市奉化市市文廣新局招考編外人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025四川綿陽市九洲集團(tuán)軟件與數(shù)據(jù)智能軍團(tuán)招聘項(xiàng)目經(jīng)理崗位1人筆試參考題庫附帶答案詳解
- 2025年上半年寧波市住房公積金管理中心象山分中心招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波北侖區(qū)港航管理處招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 急癥手術(shù)預(yù)見性護(hù)理
- 鋼結(jié)構(gòu)安裝方案(彩鋼屋面)
- 混凝土模板支撐工程專項(xiàng)施工方案(140頁)
- 方管、矩形管規(guī)格與理論重量參考表82835
- 腫瘤標(biāo)志物檢驗(yàn)(課堂PPT)
- HY∕T 0289-2020 海水淡化濃鹽水排放要求
- 監(jiān)管方式征免性質(zhì)對應(yīng)關(guān)系表
- 預(yù)應(yīng)力錨索安全專項(xiàng)施工方案
- 在泰居留90天移民局報(bào)到表格(TM47)
- 銅陵職業(yè)技術(shù)學(xué)院“十三五”發(fā)展規(guī)劃編制工作方案
- 某屠宰場廢水處理工藝設(shè)計(jì)_畢業(yè)設(shè)計(jì)(論文)
評論
0/150
提交評論