ABEL部分程序解讀_第1頁
ABEL部分程序解讀_第2頁
ABEL部分程序解讀_第3頁
ABEL部分程序解讀_第4頁
ABEL部分程序解讀_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)字電路課程設(shè)計(jì) ABEL 部分程序例 1 組合電路實(shí)驗(yàn)MODULE comb_simple/ title This is a gal demo/ U9 device P16V8R; in1,in2,in3 pin ;out1,out2,out3 pin ;equationsout1=in1&in2&in3;out2=in1#in2#in3; out3=!in3;END例 2 組合電路實(shí)驗(yàn)的測試向量 MODULE comb_simple / title Thigsailsdaemo/ U9 device P16V8R; in1,in2,in3 pin ; out1,out2,out3 pin

2、; test_vectors (in1,in2,in3-out1,out2) 0,0,0-.x.,.x.; 0,0,1-.x.,.x.; 0,1,0-.x.,.x.; 0,1,1-.x.,.x.;1,1,1 -.x.,.x.;END例3 用GAL16V8設(shè)計(jì)如下6個基本邏輯門:P123與門,或門,與非門,或非門,異或門,同或門。解6個基本邏輯門的邏輯表達(dá)式為耳-F - 4媯懇=蟲屈片二喬頁 & = 4琬F廣聯(lián)幾根據(jù)上述邏輯表達(dá)式,采用一片GAL16V8就可以實(shí)現(xiàn)6個基本邏輯門。用ABLE-HDL語言寫出的基本邏輯門的設(shè)計(jì)源文件如下:MODULEBASIC-GATES頭部TITLE BASIC

3、GATES;說明部IC1 DEVICEP16V8S;A1,B1,A2,B2PIN19,1,2,3;輸入腳定義A3,B3,A4,B4PIN4,5,6,7;A5,B5,GNDPIN8,9,10;A6,B6,F6,F5PIN11,12,14,14;F4,F3,F2,F1PIN15,16,17,18;輸出腳定義EOUATIONS/邏輯描述部F1=A1 &B1;&表示 與”運(yùn)算F2=A2#B2;#表示或”運(yùn)算F3=!(A3&B3);!表示 非”運(yùn)算F4=!(A4#B4);F5=A5$B5;$表示異或”運(yùn)算F6=(A6!$B6); ! $表示同或”運(yùn)算TEST_VECTIORS(A1,B1,A2,B2,A

4、3,B3,A4,B4,A5,B5,A6,B6-F1,F2,F3,F4,F5,F6)INPUTOUTPUT0,0,0,0,0,0,0,0,0,0,0,0-0,0,1,1,0,10,1,0,1,0,1,0,1,0,1,0,1-0,1,1,0,1,01,0,1,0,1,0,1,0,1,0,1,0-0,1,1,0,1,01,1,1,1,1,1,1,1,1,1,1,1 -1,1,0,0,0,1END BASIC-GATES例 4 帶三態(tài)控制的四輸入與非門P153 例 2 一個帶三態(tài)控制的四輸入與非門的 ABLE-HDL 模塊源程序如下:MODULE GAL5/模塊 GAL5 開始TITLEable in

5、put file/ 標(biāo)題語句U05 DEVICE P16V8C/ 器件說明: U05 為 P16V8Ca,b,c,d PIN 2,3,4,5;/輸入管腳說明f PIN12;/ 輸出管腳說明ENB PIN6;/ 三態(tài)控制說明h,1,x,z=1,0,.x.,z.;/ 常量定義,便于向量測試使用EQUATIONS/ 邏輯方程描述部f=!(a&b&c&d);Enable f=enb;/測量向量部/.X.表示任意態(tài)(0或1)/Z 表示高阻態(tài)輸出/模塊 GAL5 結(jié)束TEST_VECTORS(end,a,b,c,d-f)h,0,.x.,.x.,.x.-1;h,.x.,0.x.,.x.-1;h,.x.,.x

6、.,0,.x.-1;h,.x.,.x.,.x.,0-1;h,1,1,1,1-0;1,x,x,x,x-z;END GAL5例52 位計(jì)數(shù)器P153 例 3 描述一個 2位計(jì)數(shù)器的 ABLE_HDL 模塊源程序如下:MODULE counter /頭部TITLE Two bits Counter Block ;DECLARATIONS/說明部InputClock PINPINCLROutputq0,q1 PINISTYPE reg;EQUATIONS/邏輯描述部q0.clk=clock;q1.clk=clock;q0.AR=CLR;q1. AR=CLR;q0:=!q0;q1:=!q1&q0 # q

7、1&!q0;END coubter / 結(jié)束部 例62 位計(jì)數(shù)器實(shí)驗(yàn)的測試向量MODULE counter / 頭部TITLE Two bits Counter Block ;DECLARATIONS/說明部InputClock PINCLR PINOutputq0,q1 PINISTYPE reg; test_vectors(CLR, Clock : q0,q1 )0, .C. : .x.,.x.;1, .C. : .x.,.x.;1, .C. : .x.,.x.;1, .C. : .x.,.x.;1, .C. : .x.,.x.;END例74位二進(jìn)制加法計(jì)數(shù)器P156例4用基本表達(dá)形式描述

8、一個4位二進(jìn)制加法計(jì)數(shù)器。解EQUATIONSCOUNT.CLK=CLK;COUNT.AR=CLR;COUNT:=(COUNT.FB)&!CAI#(COUNT.FB+1)&CAI;CAO=Q3.Q&Q2.Q&Q1.Q&Q0.Q&CAO;例8 狀態(tài)圖的設(shè)計(jì)P124例10采用GAL 16V8器件,用狀態(tài)圖方式描述圖4.24所示的狀態(tài)圖,用 ABLE-HDL語言寫出設(shè)計(jì)源文件。解 該狀態(tài)機(jī)具有四個狀態(tài)。在時鐘的作用下,該狀態(tài)機(jī)由一個狀態(tài)轉(zhuǎn)到下一狀 態(tài)。狀態(tài)機(jī)在這四個狀態(tài)之間輪流轉(zhuǎn)換。狀態(tài)機(jī)的狀態(tài)由A、B寄存器定義,在AB=01時,輸出信號Y為0,其余情況下,輸出 Y=1.首先要定義狀態(tài)名,狀態(tài)名由寄

9、存器 A、B的二進(jìn)制碼定義:S0=Ab00; S1=Ab01; S2=Ab10;S3=Ab11.其狀態(tài)圖如圖 4.24所示。然后用狀態(tài)機(jī)語言描述該狀態(tài)圖的轉(zhuǎn)換。下面只寫出設(shè)計(jì)的核心部分:DECLARATIONSSTATEMA=A,B;STATE0=0,0;STATE仁0,1;STATE2=1.0;STATE3=1,1;STATE_DIAGRAMSTATESTATE 0 :Y=1;GOTOSTATE 1STATESTATE 1:Y=0;GOTOSTATE 2STATESTATE 2:Y=1;GOTOSTATE 3STATESTATE 3 :Y=1;GOTOSTATE 0;P156 例 5 用條件

10、轉(zhuǎn)移方程形式描述例 4的 4位二進(jìn)制加法計(jì)數(shù)器。 解 EOUATIONSCOUNT.CLK=CLK;COUNT.AR=CLR;WHEN ! CAITHEN COUNT:=COUNT.FB ;ELSE COUNT:=COUNT.FB+1CAO=Q3.Q&Q2.Q&Q1.Q&Q0.Q&CAO;P157 例 6 描述一個具有使能端的異或門。TRUTH_TABLE IN IC5(EN,A,B-C)0,.x.,.x.-.z.; /使能端關(guān)閉,輸出高阻態(tài)1,0,0-0;1,0,1-1;1,1,0-1;1,1,1 -0;P157 例 7 描述一個簡單的狀態(tài)機(jī)。TRUTH_TABLE IN IC6A,B:C,

11、D-Y )0,0:0,1-1;0,1:1,0-0;1,0:1,1-1;1,1 :0,0-1;P157例8用狀態(tài)圖發(fā)描述例7的邏輯解 從例7分析知,該狀態(tài)機(jī)由4個狀態(tài),在時鐘作用下,狀態(tài)機(jī)在四個狀態(tài)之間輪流裝換。狀態(tài)機(jī)的狀態(tài)由A,B兩個寄存器(觸發(fā)器)定義,在 A,B分別為0,1時輸出信號Y=0,其余為1如圖所示。首先定義狀態(tài)名,狀態(tài)名由寄存器 A,B的二進(jìn)制碼定義:Y-tY=LS0=Ab00;S1=Ab01;S2=Ab10;S3=Ab11DECLARATIONSSTATEMA=A,B;STATE0=0,0;STATE仁0,1;STATE2=1.0;STATE3=1,1;STATE_DIAGRA

12、MSTATESTATE 0 : y=1;GOTOSTATE 1STATESTATE 1 :y=0;GOTOSTATE 2STATESTATE 2:y=1;GOTOSTATE 3STATESTATE 3 : y=1;GOTOSTATE 0;P158 例 9 用狀態(tài)圖法描述下圖所示的狀態(tài)機(jī)。 解 我們使用條件轉(zhuǎn)移語句 CASE 。CASE 的轉(zhuǎn)移條件是:滿足條件時為下一狀態(tài)表達(dá)式。在一個 CASE 語句中, 可并列若干轉(zhuǎn)移條件和狀態(tài)表達(dá)式,但必須保證轉(zhuǎn)移條件的互斥性。STATE_DIAGRAMSTATES0;CASEK=0:S0;K=1:S1;ENDCASESTATES1;CASEK=0:S1;K

13、=1:S2;ENDCASESTATES2;CASEK=0:S3;K=1:S2;ENDCASESTATES3;CASEK=0:S3;K=1:S0;ENDCASE例 9 層次說明舉例P171 例 7 層次說明舉例為了解釋層次說明,下面舉個簡單的的例子。底層模塊有 2 個,一個是 3 個輸入端, 1個輸出端的與門 AND1 ,另一個是 2個輸入端, 1 個輸出端的或門 OR1 。高層模塊 AND_OR_INVERT 是一個與或非門,它將 2 個 3 與門或起來 后求反。高層模塊:MODULE AND_OR_INVERTDeclarations/ 說明部AND INTERFACE(ia1,ia2,ia

14、3-oa1);AND_1functional_block AND;/與門接口說明/與門例化 1AND_2functional_block AND;/與門例化 2OR INTERFACE(ib1,i2-ob1)/或門接口說明OR1_1 functional_blockOR1;/或門例化I1,i2,i3,i4,i5,i6,o1 PIN/邏輯描述部EQUATIONSAND1_1.ia1=i1;AND1_1.ia2=i2;AND1_1.ia3=i3;AND1_2.ia1=i1;AND1_2.ia1=i2;AND1_2.ia1=i3;OR1_1.ib1=AND1_1.oa1;OR2_1.ib2=AND1

15、_2.oa1;O1=!OR1_1.ob1;END AND_OR_INVERT;低層模塊 1 與門MODULE AND1INTERFACE(ia1,ia2,ia3-oa1);TITLE 3 inputs AND gate;DECLARATIONS/說明部ia1,ia2,ia3,oa1 pin;EOUATIONS/邏輯描述部Oa1=ia1&ia2&ia3;End AND1低層模塊 2 或門ib1,ib2,ob1 PIN;/說明部,省略了 DECLARATIONS 關(guān)鍵字EOUATIONS/ 邏輯描述部Ob1=ib1#ib2;END OR1例 10 電子琴(1)頂層模塊piano的ABEL語言源文件

16、MODULE pianoDECLARATIONS/ lower module declarationvaluevalue_0interface (d1.d7,di - right); functional_blockvalue;/ inputclockpin 11;/ 時鐘輸入 100KHzd1 , d2,d3,d4pin 9,40,36,3;/ 琴鍵d5, d6, d7,d ipin 29, 1 0, 1 6,43;/ outputmupin 38 istype reg ; / 音頻輸出/ nodemu2node;mu0,mu1node;q0.q7node istype reg;/ 多模計(jì)數(shù)

17、器q = q7.q0 ;d = di,d7.d1;EQUATIONSvalue_0.di,d7.d1 = d;/ 多模計(jì)數(shù)器,模 191、模 170、模 151、模 143、模 128、模 114、模 101、 模 97q.clk = clock;q := ( q+1) & !mu2 & value_0.right;mu0 = (q = 190) & (d1 = 1) # (q = 169) & (d2 = 1) # (q = 150) & (d3 = 1) # (q = 142) & (d4 = 1) ;mu1 = (q = 127) & (d5 = 1) # (q = 113) & (d6

18、 = 1) # (q = 100) & ( d7 = 1) # (q = 96) & (di = 1) ;mu2 = mu0 # mu1;mu.clk = mu2;/ 二分頻計(jì)數(shù)器mu := !mu ;END(2)底層模塊value的ABEL語言源文件:MODULE valueDECLARATIONS/ inputd1.d7,di/ outputright/ node right0,right1 d=d1.d7,di;pin; / 琴鍵 1, 2, 3,4,5,6,7,ipin;/ 為 1 表示當(dāng)前按鍵有效node;EQUATIONSright。= (d = 500000001) # ( d

19、= 500000010) # (d = 500000100) # (d = 500001000);rightl = (d = 500010000) # (d = 500100000) # d = Ab01000000) # ( d = Ab10000000);right = right0 # right1 ;/ 為 1 表示當(dāng)前按鍵有效END例11P仃8例11名位Sequence的狀態(tài)機(jī)源文件舉例。標(biāo)示符 A,B 和 C 規(guī)定了各個狀態(tài)。這些標(biāo)示符在說明部中賦予十進(jìn)制的常 量值,即為代表各狀態(tài)的狀態(tài)寄存器規(guī)定了位置。 A,B,C 只是標(biāo)示符,并不代表 狀態(tài)機(jī)的位值情況。它們說明的值才為每個狀態(tài)

20、定義了狀態(tài)寄存器的值; A=0,B=1,C=2.MODULE SequenceTITLE state machin exampleSequence device p16r4q1,q0 pin 14,15 istype reg;cock,enab,start,hold,reset pin 1,11,4,2,3;Haltpin 17 istype reg;In_B,in_Cpin 12,13 istype com;Sreg=q1,q0;State ValueA=0; B=1; C=2;EQUATIONSq1,q0,halt.clk=clock;q1,q0,halt.oe=!enab;State_diagram sreg;State A: Hold in state Auntil start is activei_B=0;In_C=0;IT (start&!reset)THEN B WITHhalt:=0;ELSE A WITHhalt:=halt.fb;State B: Advance to state C unless reset isactivei_B=1; or hold is active.turn on halt indicatorIn_C=0;if resetIT (reset) THEN A WITH halt:=1;ELSE if(hold) T

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論