10.4 PLD器件的應用
10.4.1 可編程器件的開發(fā)系統(tǒng)
10.4.2 ABEL硬件描述語言
一、ABEL源文件的結(jié)構(gòu)
二、ABEL的基本語法
10.4.3 應用舉例
10.4 PLD器件的應用
10.4.1 可編程器件的開發(fā)系統(tǒng)
10.4.2 ABEL硬件描述語言
一、ABEL源文件的結(jié)構(gòu)
看一個簡單的ABEL源程序文件的例子。
module G_3AND
title‘ This is an example of 3 _input AND gate useing a GAL16V8’
“device type;
3 _AND device‘GAL16V8’;
“input pins;
A,B,C pin 2,3,4;
“output pins;
Y pin 18;
“constants;
1,0=H,L;
equations
Y=A&B&C;
test_vectors([A,B,C]->[Y])
[0,0,0]一>[0];
[0,0,1]一>[0];
[0,1,0]一>[0];
[0,1,1]一>[0];
[1,0,0]一>[0];
[1,0,1]一>[0];
[1,1,0]一>[0];
[1,1,1]一>[1];
end
1.標題段
標題語句是可選語句,ABEL在編譯時不處理該語句。格式:
module (字符串)
title ‘(字符串)’
2.定義段
(1)器件定義:用來確定所使用的器件。語句格式為:
(器件序號) device‘器件名’;
如:U1 device‘GAL16R8’;它定義了序號為U1 的器件是 GAL16R8。
(2)信號和引腳及引腳類型定義:指定信號名稱及其對應的器件引腳,并說明信號的屬性,語句格式為:
[!]信號名,[!]信號名,…[!]信號名 pin引腳號,引腳號,…引腳號
[istype‘屬 性’];
(3)常量定義:用來定義設計者習慣的常量標識符替代ABEL語言中的一些專用常量標識符,其語句格式為:
標識符,標識符,… = 常量,常量,…;
如: 1,0,X,CP=H,L,.X.,.C.;
(4)數(shù)組定義和表達式定義
數(shù)組定義就是用一個標識符簡記一組數(shù)組元素。其語句格式為:
標識符=[元素1,元素2,…];
如: S=[ Q1, Q2, Q3];
(5)注釋行:為便于閱讀程序而加入的注釋。編譯程序是不會處理它。
如:“input pin;(輸入引腳)
“output pin;(輸出引腳)
3.邏輯描述段——編程設計的核心
(1)邏輯方程。其格式為:
equations
方程1 ;
方程2 ;
…
方程n ;
(2)真值表。其格式如下:
truth _ table
([元素1,元素2…]—>[元素1,元素2,…])
[×,×,…]—>[×,×,…]
…
[×。×,…]—>[×,×,…];
其中第一行是關(guān)鍵字,后面沒有分號,第二行是表頭,用圓括號括起來,后面沒有分號。括號內(nèi)左邊是輸入信號數(shù)組,右邊是輸出信號數(shù)組,兩數(shù)組之間用賦值號連接。對于組合邏輯,賦值號為“->”,對于觸發(fā)器輸出,賦值號為“:>”。表頭下面為真值表,表的每一行作為一條語句,用分號結(jié)束。關(guān)鍵字和表頭也可以寫在同一行,但關(guān)鍵字和表頭之間要用空格隔開。在輸入和輸出數(shù)組中的元素可以是變量標識符(如[A,B,C]),也可以是數(shù)組標識符(如[A,F(xiàn)F]),而FF=[Q2,Q1,Q0],就是說,數(shù)組中可以嵌套數(shù)組。
4.測試向量段——測試電路的邏輯功能是否正確
結(jié)構(gòu)如下:
test _ vectors
([元素 1,元素2,…]—>[元素 1,元素 2,…])
[×,×,…]—>[×,×,…];
…
[×,×…]—> [×,×,…];
5.結(jié)束段
模塊設計結(jié)束時,用關(guān)鍵字end表示結(jié)束。因此end只與module對應。end后面沒有分號。
下面給出了一個ABEL源文件的典型結(jié)構(gòu)。
module(字符串)
title‘(字符串)’
(字符串)device‘(器件名)’;
[?。菪盘柮郏。菪盘柮?hellip;,[!]信號名 pin 引腳號,引腳號,…,引腳號;
標識符,標識符,… = 常量,常量,…;
equations
方程1;
方程2;
…
方程n;
test _ vectors([輸入信號]>[輸出信號])
end
二、ABEL的基本語法
l.合法字符與語句
2.標識符與關(guān)鍵字
3,常量和數(shù)值
4.運算符
5.數(shù)組及其運算