文档介绍:在系统可编程技术
第4讲
ABEL语音源文件元素
数据类型(4种):
二进制数:^B1010 ^b1010
八进制数:^O 57 ^o57
十进制数:^D37 ^d37
十六进制数:^H7EF ^h7EF
默认数制:十进制 3 20
一、数据类型
ABEL语音中所有数值运算精度都是128位,合法的在0~2128-1之间。
MODULE example
CP PIN;
Q3,Q2,Q1,Q0 PIN ISTYPE’REG’;
Q=[Q3,Q2,Q1,Q0];
EQUATIONS
=CP;
TRUTH_TABLE(Q:>Q)
^B0000:>^B0001; ^B0001:>^B0010; ^B0010:>^B0011; ^B0011:>^B0100; ^B0100:>^B0101; ^B0101:>^B0110;
^B0110:>^B0111; ^B0111:>^B1000; ^B1000:>^B1001;
^B1000:>^B1010; ^B1010:>^B1011; ^B1011:>^B0000;
TEST_VECTORS(CP->Q)
***@REPEAT 15{.C.->.X.;}
END
例:ABEL语音设计一个十二进制的计数器
二进制表示法
TRUTH_TABLE(Q:>Q)
^O0:>^O1; ^O1:>^O2; ^O2:>^O3; ^O3:>^O4; ^O4:>^O5; ^O5:>^O6;
^O6:>^O7; ^O7:>^O10; ^O10:>^O11;
^O11:>^O12; ^O12:>^O13; ^O13:>^O0;
八进制表示法
TRUTH_TABLE(Q:>Q)
0:>1; 1:>2; 2:>3;
3:>4; 4:>5; 5:>6;
6:>7; 7:>8; 8:>9;
9:>10; 10:>11; 11:>0;
十进制表示法
TRUTH_TABLE(Q:>Q)
^H0:>^H1; ^H1:>^H2; ^H2:>^H3; ^H3:>^H4; ^H4:>^H5; ^H5:>^H6;
^H6:>^H7; ^H7:>^H8; ^H8>^H9;
^H9:>^HA; ^HA:>^HB; ^HB:>^H0;
十六进制表示法
二、字符串
用单引号括起来的ASCII码系列,主要用于以下场合:
标题语句TITLE
例:TITLE ’This is an example.’
引脚定义语句PIN,说明引脚属性
例:Y PIN ISTYPE ’COM,BUFFER’
节点语句NODE,说明内部节点属性
例: Y1,Y2 NODE ’;
集合是作为一个整体来进行运算的一组信号和常量。
集合的定义:
例:
① Address=[ A7,A6,A5,A4,A3,A2,A1,A0 ];
② Address=[ A7..A0 ];
③ x=.x.; Address=[ A7,A6,A5,A4,x,x,x,x ];
EQUATIONS
!IO=(Address>=^h10)&(Address<=^h60)
三、集合
集合的索引号能使用户使用集合中的元素。
例:
① AD=[ A15.. A0 ];
② DATA=[D7..D0 ];
③ DATA=AD[8..15];
其意义是 D7=A7 ……D0=A0
因集合的最左边的元素的索引号是0,
故:AD[0]=A15,AD[1]=A14….
AD[8]=A7,AD[9]=A6…AD[15]=A0
集合的索引号
是对集合的每一个元素进行的。两集合运算,必须具有相同的元素。
例:①若已定义 sign=[A,B,C];
则可以这样赋值:sign=[1,1,0]; 或者 sign=6;
也可以这样运算:sign=[1,1,0]&[1,0,1]; 或者
sign=6&5;
②[a,b]=^bxx11; 等同于[a,b]=^b11;
③[a,b]=^b1; 等同于[a,b]=^b01;
④[a,b]=c&d; 等同于 a=c&d; b=c&d;
集合的赋值和运算