




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.ABEL-HDL语言简明教程一 . ABEL-HDL 简介ABEL-HDL( ABEL Hardware Description Language)语言是一种层次化的硬件描述语言,它支持多种行为级输入形式,其中包括逻辑方程式、状态图和真值表等。 ABEL 编译器和 ispLEVER ispDesignEXPERT ISP Synario版本软件中的 ABEL-HDL 编译器可通过仿真对 ABEL-HDL 语言设计进行功能验证。此后,编译器在 PLD 或 FPGA 等可编程 IC 上实现此设计。ABEL-HDL 设计还可以通过标准格式的设计传输文件转移到其它设计环境中去使用。二 . ABEL-
2、HDL 语法ABEL-HDL源文件中的每一行必须符合以下语法规则:一行最多为 150 个字符长。每一行可用按回车键来结束;除开始、结束、标题等语句外,多以分号“;”结束。不同的关键字、标识符和数之间最少要用一个空格隔开。在同一关键字、数、运算符或标识符中不可嵌入空格和句点。关键字及特殊常量 可用大写、小写或大小写字母混合方式键入, 关键字及特殊常量与大小写无关 。一般标识符 也可以是大写、小写或大小写字母混用,但必须注意: 一般标识符与大小写有关,这点在编写程序时要特别小心,极易出错。2.1 ABEL-HDL基本语法1. 标识符标识符(用户提供的名字和标号)用于标识下列各项的名称 :器件 (P
3、16V8R)器件引脚及节点 (LD,Q3,Q2,Q1,Q0,N_1) 功能块 (?A&?B&?C)集合 (Q3.Q0)输入或输出信号 (I3,I2,I1,I0,Q3,Q2,Q1,Q0) 常量 (H,L,.X.,.C.)宏 (NAND3) 哑变量 (A,B,C)不管标识符描述的是什么,其规则和限制是相同的:1). 标识符最长为31 个字符。2). 标识符必须以一个字母或下划线开头。3). 除标识符的第一个字符外,其余字符均可以是大小写字母、数字,波浪线()和下划线( _)。4). 在标识符中不得出现空格,可使用下划线或大写字母来区分一个标识符中的各个字词。5). 除保留的标识符(即关键字和特殊常
4、量)外,标识符与字母大小写有关,即大小写字母的含义不同。6). 除了合法的点后缀(或称为点扩展名,参见“基本逻辑器件的描述” )外,在标识符中不能用句号。注意以下几点:标识符应该做到“见名知意” ,如 And_In1,And_In2 ,表示二个输入与门的二个输入信;.号。标识符应简单明了,易于区分,避免使用大量相似的标识符。一个标识符如用几个单词组成, 则各单词之间宜用下划线或大小写字符来区分, 以便阅读。如利用标识符 THIS_IS_A_COUNTER 比利用标识符 THISISACOUNTER 就更容易阅读和理解。使用标识符, 需要特别注意: 关键字在编程时不得用来给器件、 引脚、节点、数
5、组常量、集合、宏或信号命名。2. 特殊常量在赋值语句、真值表和测试向量中,用户可使用常量;也可将一常量赋给标识符,并在整个模块中用此标识符代表该常量。 常量的值可以是数值, 也可以是非数值的 特殊常量(或称为专用常量,是一种特殊的标识符) 。常用的特殊常量有:H 逻辑高电平 L 逻辑低电平.C. 时钟输入(低电平 -高电平 -低电平转换).K. 时钟输入(高电平 -低电平 -高电平转换).U. 时钟上升沿(低电平 -高电平转换).D.时钟下降沿(高电平 -低电平转换).X.任意值.Z.高阻态3. 运算符ABEL-HDL 语言的运算符分为四种基本类型:逻辑运算符、算术运算符、关系运算符及赋值运算
6、符, 下面对它们进行说明:1). 逻辑运算符:逻辑代数中的各种逻辑运算如与、或、非、异或等,在 ABEL-HDL 语句中均有专门的符号,如下所示:运算符定义举例逻辑代数中的含义!非!A&与A&BAB#或A#BA+B$异或A$BA B!$同或A!$BA B2). 算术运算符:算术运算符定义了表达式中各项之间的算术关系。移位操作运算符也属于此类中。运算符举例说明-A求负数(补码)-A-B减+A+B加*A*B乘/A/B无符号整除%A%B取模:无符号整除的余数AABA 右移 B 位注意:“ /”是无符号的取整除法,即其商为正整数。用求模运算符“ % ”可得到除的余数。移位操作执行无符号的逻辑移位;在右
7、移过程中零由左边移入,而在左移过程中零由右边;.移入。3). 关系运算符:比较一个表达式的两个项。用关系运算符形成的表达式产生一个布尔真(True)或伪( False)值。运算符说明=(两连写等号)等于!=不等于小于大于=大于等于所有的关系运算符都是无符号的。在使用关系运算符时,一般总是使用括号“ ( )”,以保证表达式的运算按希望的顺序进行。4). 赋值运算符:赋值运算符一般在 EQUATIONS 语句段的方程式中使用,而不在表达式中出现。组合型赋值(立即赋值)无延时地进行赋值,只要方程式算完就赋值;寄存器型赋值(时钟赋值)则在与该输出相关的时钟信号的下一个时钟脉冲有效边沿到来时进行赋值。运
8、算符说明=组合型赋值:=寄存器型赋值注意:在电子系统设计第 2 章的 RTL 语言中,用“ ”表示时钟赋值,而用“ := ” 表示立即赋值或定义命名变量。4. 表达式和方程式表达式是标识符和运算符的结合, 除赋值运算符不能在表达式中使用之外, 其它运算符包括逻辑运算符、算术运算符、关系运算符都可以用于表达式中。逻辑方程式 Equations 也称为布尔方程,表示输入信号和输出信号之间的逻辑关系。所有运算符(包括赋值运算符在内)都可以用于方程式中。5. 块 (block)块是包括在花括号“ ”中的一段文本。块常用于方程式、状态图、宏和命令中。一个块中的文本可以是一行或多行。例如:不用块的表达式:
9、WHEN (Mode=S_Data) THEN Out_data:=S_in;ELSE WHEN (Mode=T_Data) THEN Out_data:=T_in;WHEN (Mode=S_Data) THEN S_Valid:=1;ELSE WHEN (Mode=T_Data) THEN T_Valid:=1;用块的表达式,以上语句可被简化:WHEN (Mode=S_Data) THEN Out_data:=S_in; S_Valid:=1; ELSE WHEN (Mode=T_Data) THEN Out_Data:=T_in; T_Valid:=1; 6. 集合 (set)集合是信号及
10、常量的汇集。 集合简化了 ABEL-HDL 语言的逻辑描述和测试向量, 它允许把一组信号用一个名字来引用。由逗号或 范围运算符“ .”分开的常量及信号清单,再用方括号将其括起来,即可表示一个集合。例如: MultiOut 及 Select 集合定义为:;.MultiOut=B0,B1,B2,B3,B4,B5,B6,B7; Select=S2,S1,S0;以上集合也可用“ .”来表示:MultiOut=B0.B7; Select=S2.S0;用“ .”来定界范围的标识符必须有兼容(形式相似)的名字,它们必须以相同的字母开头,以数字结束,例如上面的 B0、 B1、 B2 等。注意:集合所支持的运算
11、符有限, 它支持大多数逻辑运算符、 关系运算符和赋值运算符,但仅支持算术运算符中的加“ +”、减“ ”、取负(取补码)“ ”。7. 字符和数ABEL-HDL 语言的字符由 ASCII 字符组成,可以使用大小写字母及 101 键盘使用的大部分字符 :az 小写字母AZ 大写字母09 数字空格符制表符! # $ ? + & * ( ) - _ = + ; : | , . / %总共有 96 个。字符可用于标识符、字符串和注释。8. 注释注释是使源文件易懂的另一种方法。用户可用如下方式进行注释:1). 用一双引号“ ”开始,以另一双引号或行结束来结束。2). 用一双斜杠“ /”开始,以一行结束来结束
12、。语言处理程序对双引号中的内容不进行处理。注释不可嵌于关键字中。注意:在单引号“ ”内的信息是所需的字符串,它是语句的一部分,而不是注释。如:IC4 device P16V8R;语句中的 P16V8R是语句的一部分,不是注释。9. 基本逻辑器件的描述基本逻辑器件有门和触发器(在 ABEL-HDL语言中,触发器统称为寄存器) 。门电路可直接用逻辑表达式表示,如:Out1=A&B&!C; 语句表示一个与门。寄存器需要时钟方程、输出方程、复位方程等一组方程才能完整地描述。为了简洁,通常对一个寄存器只定义一个标识符,而对于寄存器的时钟信号、复位信号等则在该寄存器标识符后面加点后缀来表示。 下表给出了
13、ABEL-HDL常用的点后缀:点后缀含义点后缀含义.AP异步寄存器置位.AR异步寄存器复位.CLK边沿触发器的时钟输入.DD 触发器的激励输入.FB寄存器反馈.JJK 触发器的 J 激励输入.KJK 触发器的 K 激励输入.LD寄存器并行置数输入.OE输出使能.LE寄存器的锁存使能输入.SP同步寄存器置位.SR同步寄存器复位在编程时,以上点后缀的方程要根据具体电路选用,没必要全用。;.例如,下图给出了一种典型的D 触发器的各个点后缀描述:ISTYPE reg_d.OE.SP (.AP)PRESET.DDQ.CLKQCLEAR.SR (.AR).Q.PIN与上图相对应的D 触发器的一段 ABEL
14、-HDL基本功能描述语句如下:d_d,cp,clear,preset PIN;/d_d 为 D 输入端信号,cp 为触发时钟信号,clear 为清零信号,preset 为预置信号q_d PIN ISTYPE reg_d;/q_d 为 Q 输出端信号,亦可写为ISTYPE reg (参见 2.2 小节中的ISTYPE 属性定义语句)EQUATIONSq_d.CLK=cp; /以该 D 触发器的 Q 输出端信号q_d 作为触发器标识符q_d.AR=clear; / 指定 clear 为异步清零信号q_d.AP=preset; /指定 preset 为异步预置信号q_d:=d_d; /指定该 D 触
15、发器的逻辑功能,在cp 上升沿时输入端d_d 置到输出端q_d10. 变量及变量代换变量的结构能用于宏、模块及命令中。 ABEL-HDL 语言支持两种变量,定义如下:哑变量(相当于“哑元” 、“形参”):宏、模块或指示字中可被真实变量替代的标识符。真实变量(相当于“实参” ):用于宏、模块或指示字中的变量,真实变量可以替代哑变量。一个真实变量可以是标识符、数字、字符串、运算符、集合或ABEL-HDL 语言的其它元素。可在宏说明中规定哑变量,也可在宏、模块或命令的体中规定哑变量(参见2.2 小节ABEL-HDL 源文件基本结构中的MACRO 宏定义语句)。例如:OR_EM MACRO (a,b,
16、c) ?a#?b#?c;定义了一个名为OR_EM 的宏,它是三个变量的逻辑或,这些变量在宏定义中用哑变量a、b、c 来表示;在大括号内的宏定义体中,哑变量前带上问号“ ?”构成一个整体,表示需要用真实变量来代替这个整体。例如:D=OR_EM(X,Y ,Z&L);就表示用真实变量X 、Y 和 Z&L 来调用 OR_EM 宏,结果为 D=X#Y#Z&L 。真实变量必须严格按其本身形式替代,其中的空格也不能忽略。哑变量与真实变量的关系总结如下:1). 哑变量的位置是保留给真实变量的。2). 前面带问号的哑变量需用真实变量替代。3). 变量替代在检查源文件前完成。4). 真实变量中空格有意义。;.2.
17、2 ABEL-HDL源文件基本 构一个完整的 ABEL-HDL 源文件由若干文件段 成,一般分 段、定 段、 描述段、 向量段和 束段。1. 段1). 模 句: MODULE格式 : MODULE模 名此 句是必 的。它是一个模 的 ,最后 必 有一个 End 句与之相配合。模 名是用 自定 的模 名称 符。 模 句相当于原理 文件中的元件符号。2). 句: TITLE格式 : TITLE 此 句 可 ,主要 明模 的内容、用途、作者、 和地点等, 引号中 明的内容。在 不 理此 句。2. 定 段 段 定 中使用的信号名称及其属性, 定 常量、 宏等, 明底 模 和 原理 的 ,以及 明一个器
18、件。每个模 至少有一个定 段,定 段一般在 段后面。1). DEVICE 器件定 句格式 :器件 符 DEVICE 器件 ;在 ispLEVER 其中, 器件 所代表的 器件的工 型号,用字符串表示。ispDesignEXPERT ISP Synario 件中所使用的 器件是在器件列表框中 的,故器件定 句可以省略。2). PIN 管脚定 句格式 : ! 信号名 ,! 信号名 PIN 管脚号 ,管脚号 ISTYPE 属性 , 属性 ;各信号是能与模 外部有 入 出关系的信号。信号缺省 高 平有效,前面加“! ”表示 信号 低 平有效, 各信号名与具体 ISP 器件管脚号 。 如果不希望 先 定
19、 ( 定)信号的管脚位置, 关 字 PIN 后面的管脚号可以不写。 例如:CLK,I3,I2,I1,I0 PIN 11,28,27,26,25;3). NODE 点定 句格式 : ! 点名 ,! 点名 NODE 点号 , 点号 ISTYPE 属性 , 属性 ; 点定 句与管脚定 句 构 似。 点定 用于 明模 中代表 器件内部 点的 符,或称 “ 管脚” ,它表示外部管脚上不能得到的内部(局部)信号,但它 形成中 信号很有用。4). ISTYPE 属性定 句属性定 句用于 其管脚及 点具有可 程特性的器件 行管脚及 点的属性定 ,一般跟 PIN 或 NODE 句 用。 下表是在 ISTYPE
20、下的属性(用 引号括起) :pos正极性neg 极性com(缺省 ) 合型( 信号与 无关)reg寄存器型( 信号与 同步)reg_dD 型寄存器reg_jkJK 型寄存器reg_srRS 型寄存器reg_tT 型寄存器reg_l 存器( 平触 );.5). 常量定 句格式 : 常量名 , 常量名 = 表达式 ,表达式 ;常量是模 中保持常数 的 符,它用“ =”符号来 定。常量定 句必 在定 段中或者在 CONST 命令之后。6). MACRO 宏定 句格式 :宏名MACRO ( 量 , 量 ) block;宏 明 句定 一个宏。使用宏可将函数名包含于源文件中,而无需重复 段代 。例如:NA
21、ND3 MACRO (A,B,C) !(?A&?B&?C);就定 了一个宏。如果引用 宏:D=NAND3(Clock,Hello,Busy); 得到的 果相当于:D=!(Clock&Hello&Busy);3. 描述段完成了以上的定 后,用 可用一个或多个以下的表达方式来描述 功能。1). EQUATIONS 方程 句格式 :EQUATIONS方程 句表示一 布 方程的开始。方程用布 函数来描述 功能。如下面的方程 句描述了2 线-4 路:EQUATIONSY0=!A2&!A1;Y1=!A2&A1;Y2=A2&!A1;Y3=A2&A1;2). TRUTH_TABLE 真 表 句格式 :TRUT
22、H_TABLE( 入向量 符 - 出向量 符 ) 入向量 - 出向量 ;或者:TRUTH_TABLE( 入向量 符 : 出向量 符 ) 入向量 : 出向量 ;或者:TRUTH_TABLE( 入向量 符 :寄存器向量 符 - 出向量 符 ) 入向量 :寄存器向量 - 出向量 ;其中,“ -”表示 入与 出(左与右的信号向量)关系 合型(与 无关,即左 化 右立即 化) ;“ :”表示 入与 出(左与右的信号向量)关系 寄存器型(同步 序型,即左 化而右不立即 化, 要等到下一 有效 沿 右才 生相 化)。如下面的真 表 句描述了一个 合 路4 线-2 器: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;3). STATE_DIAGRAM 状 句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借款担保合同样本简易
- led销售安装合同标准文本
- 2025保险公司注册商标专用权质押合同
- 充电站场地承包合同标准文本
- goufang劳务合同标准文本
- 主题酒店合同标准文本
- it服装兼职合同标准文本
- 企业集体工资合同样本
- 中介正规劳务合同样本
- 上汽劳务合同标准文本
- 湖北2023年中国邮政储蓄银行湖北分行春季校园招聘(第一批)考试参考题库含答案详解
- T-DLSHXH 002-2023 工业干冰标准规范
- 典型示功图应用与分析
- 出凝血完整版终版
- LY/T 2006-2012荒漠生态系统服务评估规范
- GB/T 31190-2014实验室废弃化学品收集技术规范
- 《地铁突发大客流应急管理》论文11000字
- 第五章-项目时间管理课件
- 导游人员管理法律制度课件
- 木箱检验作业指导书
- 初中级档案职称《档案事业概论》档案事业题库一
评论
0/150
提交评论