第三章硬件编程语言 ABEL-HDL ABEL-HDL是 Synario软件主要的设计输入手段 第一节ABEL语言元素 标识符和关键字 1、标识符 标识符是一组字母数字串,用来代表器件、器件管脚、节 点、集合、输入信号、输出信号、宏、常量、及变量等 所有标识符必须遵守以下规则: (1)最大为31个字符; (2)以字母或下划线开头;
1 第三章 硬件编程语言ABEL-HDL ◼ ABEL-HDL是Synario软件主要的设计输入手段 ◼ 第一节 ABEL语言元素 ◼ 一、标识符和关键字 1、标识符 标识符是一组字母数字串,用来代表器件、器件管脚、节 点、集合、输入信号、输出信号、宏、常量、及变量等。 所有标识符必须遵守以下规则: (1)最大为31个字符; (2)以字母或下划线开头;
(3)不能使用空格,单词间的分隔用下划线 (4)大小写字母视为不同的字 例P71图5。3(a)Ld、CIk(b)out2 例X56 AND IN1而7S84不合法
2 (3)不能使用空格,单词间的分隔用下划线 (4)大小写字母视为不同的字 例 P71 图5。3 (a)Ld、CIk (b)out2 例 _X56 AND_IN1 而7S &4不合法
例P71图5。3(a)Ld、CIk(b) out2 例56 AND IN1而7s 84不合法
3 例 P71 图5。3 (a)Ld、CIk (b) out2 例 _X56 AND_IN1 而7S &4不合法
2、关键字 ■关键字是特殊的标识符,是软件的保留 标识符,具有特定意义,不能用来命名 器件、引脚、节点、数组、宏定义和命 名信号。 常用的关键字如表5。2所示P72 例如:PIN引脚、TILE标题 ■关键字不分大小写
4 2、关键字 ◼ 关键字是特殊的标识符,是软件的保留 标识符,具有特定意义,不能用来命名 器件、引脚、节点、数组、宏定义和命 名信号。 ◼ 常用的关键字如表5。2所示 P72 ◼ 例如:PIN 引脚、TITLE 标题 ◼ 关键字不分大小写
二、字符串和注释 1、字符串 字符串是用单引号括起开的一系列 ASCII码字符, 用于标题语句、模块语句及管脚、节点和属性的定义 中,之间可使用空格 例如:‘ use abel ■注:字符串中使用单引号需在前面加反斜线 例如:it\ s easy to use ABEL 2、注释 用于源文件的提示,不影响文件的含义,以双引号 开始,以行的末尾或另一个双引号结束
5 二、字符串和注释 1、字符串 ◼ 字符串是用单引号括起开的一系列ASCII码字符, 用于标题语句、模块语句及管脚、节点和属性的定义 中,之间可使用空格。 ◼ 例如:‘use ABEL’ ◼ 注:字符串中使用单引号需在前面加反斜线。 ◼ 例如 : ‘it\’s easy to use ABEL’ 2、注释 用于源文件的提示,不影响文件的含义,以双引号 开始,以行的末尾或另一个双引号结束
、操作数 ABEL支持基本数值运算。操作数可以用二进制、八进 制、十进制、十六进制数表示,并加前缀,具体如下: ^b二进制^O八进制 d十进制 h十六进制 注1)字母大小写均可 2)无数制符号时视为隐含数制十进制; 3)数值最高精度是32位; 4)操作数可以用字母表示,其实际值是字母转换为二 进制ASCI码,然后连接在一起构成数。 例:a=^h61=97abc=h616263=6382203
6 三、操作数 ◼ ABEL支持基本数值运算。操作数可以用二进制、八进 制、十进制、十六进制数表示,并加前缀,具体如下: ◼ ^b 二进制 ^O 八进制 ◼ ^d 十进制 ^h 十六进制 注1)字母大小写均可; 2)无数制符号时视为隐含数制十进制; 3)数值最高精度是32位; 4)操作数可以用字母表示,其实际值是字母转换为二 进制ASCII码,然后连接在一起构成数。 例:‘a’= ^h61 =97 ‘abc’= ^h616263=6382203
四、逻辑常量的表示(九种常量) ■H逻辑高电平 L逻辑低电平 ■.C.时钟输入(低高低).K.时钟输入(高低高) U.时钟上升沿(低高).D时钟下降沿(高低) F.浮动输入或输出信号.X.任意态 Z.高阻态 ■注:编程时可用字母定义上述逻辑常量。 例如:X=X.Z=Z
7 四、逻辑常量的表示 (九种常量) ◼ H 逻辑高电平 L 逻辑低电平 ◼ .C. 时钟输入(低高低) .K.时钟输入(高低高) ◼ .U. 时钟上升沿(低高) .D.时钟下降沿(高低) ◼ .F. 浮动输入或输出信号 .X. 任意态 ◼ .Z. 高阻态 ◼ 注:编程时可用字母定义上述逻辑常量。 ◼ 例如:X= .X. Z= .Z
五、运算符 ■1、逻辑运算 ■运算符运算符优先级 与或 算算算 8 # 异或运算—$ 234 同或运算——!$ 例如:逻辑代数:A[BC(A⊙B)+AD] ABEL语言:A&(B&!C&(A$B)#!A&D) ■注意:ABEL语言仅使用()
8 五、运算符 ◼ 1、逻辑运算 ◼ 运算符 运算符 优先级 ◼ 非运算—— ! 1 ◼ 与运算—— & 2 ◼ 或运算—— # 3 ◼ 异或运算—— $ 4 ◼ 同或运算——!$ 4 ◼ 例如:逻辑代数:A[BC(A⊙B)+ĀD] ◼ ABEL语言:A&(B&!C&(A!$B)#!A&D) ◼ 注意: ABEL语言仅使用()
2、算术运算 ■运算符意义 例 取二进制补码 A 算术减法 a-B 算术加法 A+B 大 算术乘法 a* B 算术除法 A/B 取模 A % B >A左移B位 a>>B
9 2、算术运算 ◼ 运算符 意义 例 ◼ - 取二进制补码 -A ◼ - 算术减法 A-B ◼ + 算术加法 A+B ◼ * 算术乘法 A*B ◼ / 算术除法 A/B ◼ % 取模 A%B ◼ << A左移B位 A<<B ◼ >> A左移B位 A>>B
3、关系运算 运算符意义 尊于 A==B 不等于A=B ■> 小于等于AB 大于等于A>=B
10 3、关系运算 ◼ 运算符 意义 例 ◼ == 等于 A==B ◼ != 不等于 A!=B ◼ 大于 A>B ◼ >= 大于等于 A>=B