精选清华计算机组成原理实践环节课件第3部分:实验基础2——able语言资料
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/7/4
计算机组成原理
1.8 字符串 字符串用于标题、模块及选项的表达,
也用于管脚、节点和属性的定义,它包含在 一对单引号中。如字符串中有单引号或反斜 杠,则必须在它们之前再加一反斜杠。字符 串可写几行,但不能超过324个字符。如: TITLE ‘1 to 8 line demultiplexer’; DMI’P16L8’;
}
再如:
{
A=B#C
D=[0,1]&[1,0]
}2019/7/4
计算机组成原理
1.6 注释 注释是对源文件的解释,注释以双引
号开始,以另一个双引号或行结束符号 结束,注释不能用于关键字之间。
例如:
“declaration section” module Basic_logic; ”gives the module a name(回车)
D=OR_EM(X,Y,Z);
其中X,Y,Z是真实变量。
2019/7/4
计算机组成原理
2 ABEL-HDL语言源文件的基本结构 2.1 引言
ABEL-HDL语言源文件由一个或多个相 互独立的模块构成,每一个模块包含了一个 完整的逻辑描述。源文件中的所有模块都可 以被ABEL-HDL软件同时处理。
2019/7/4
列定义的名字,其作用是标识器件、管脚、 节点、集合、输入输出信号、常量、宏以及 变量。所有的标识符必须符合下述规定: 1. 标识符的长度不超过31个字符; 2. 标识符必须以字母或下划线开始;
2019/7/4
计算机组成原理
3. 标识符其他的宇母可采用大、小写字母、
数字及下划线;
4. 标识符中不能包括空格符;
2019/7/4
计算机组成原理
例:(ADD>=^h10)&(ADD<=^h2F) 等价于A5^A4VA5^A4
ABEL-HDL语言处理集合时,将它们作 为二进制数来对待,二进制数中的每一位代 表了集合中的每一个元素的取值。
例如:[A0,A1,A2]=3 等效于A0=0,A1=1,A2=1。
2019/7/4
2019/7/4
计算机组成原理
在表达式中,标识符和数字用操作符或括 号分隔。空格、点号不能夹在标识符、关键字、 数字之间。如空格夹在标识符、数字之间将会 被看作两个标识符或数数字。以大写、小写或 大小写混合写的关键字被看作同一个关键字, 而以大写、小写或大小写混合写写的标识符将 被看作不同的标识符。
方程 也可以写成:
ChipSel=Addr=5; 本例定义了一个包含16位地址线中高3 位的一个集合,并用于集合运算中,也可用
其他方法对全部地址进行效果相同的操作。
2019/7/4
计算机组成原理
例2:
如果在定义段中定义了常量:
Addr=[A15..A0];
X=.X.;
那么,下例两种方法等效于地址线集合中只使
计算机组成原理
例1: 用集合运算实现布尔方程
ChipSel=A15&A14&A13; 的常首量先集,合定义一个包含A15,A14,A13
Addr=[A15,A14,A13];
于是方程
ChipSel=Addr==[1,0,1];
2019/7/4
计算机组成原理
其逻辑功能等效于
ChipSel= A15&A14&A13 因为如果Addr==[1,0,1],即A15=1, A14=0, A13=1,那么ChipSel为真。上述集合
2019/7/4
计算机组成原理
ABEL-HDL源文件是由各种语句组成的, 这些语句是由ABEL-HDL语言的基本符号构 成的,这些符号必须满足一定的格式才能正 确描述逻辑功能。语句的每一行最长为150个 字符。在源文件的语句中标识符、关键字、数 字之间至少必须有一个空格,以便将它们分隔 开来。但在标识符列表中标识符以逗号分隔。
计算机组成原理
模块结构必须遵从以下原则:
1. 模块开头为module语句,结束必须用相应 的end语句; 2. 若使用flash语句,必须为module语句的第 一条语句;
3. 若使用title语句,必须为flags语句后的第 一条语句。若没有title语句,则必须为module 语句后的第一条语句;
2019/7/4
计算机组成原理
Test_vections ( [A,B]->[X,Y] ) [0,0]->[0,0] [0,1]->[0,1] [1,0]->[0,1] [1,1]->[1,0];
End GATE
2019/7/4
计算机组成原理
在这个模块中有标头段、定义段、逻辑 描述段、测试向量段及结束语句段五部分组 成。
2019/7/4
计算机组成原理
1.9 运算符
ABEL-HDL支持四类基本运算:逻辑运
算、算术运算、关系运算及赋值运算。
1. 逻辑运算
(1)非: !
例 !A
(2)与: &
例 A&B(3)或: #Fra bibliotek例 A#B
(4)异或 $
例 A$B
(5)同或 !$
例 A!$B·
2019/7/4
计算机组成原理
2. 算术运算
值)。
(1)等于: ==
例A==B
(2)不等号: ! =
例A!=B
(3)小于: <
例A<B
(4)小于等于:<=
例A<=B
(5)大于: >
例A>B
(6)大于等于: >=
例A>=B
例如:
2==3
值为false
3<5
值为true
-1>2 2019/7/4
计算值机组成为原理false
4. 赋值运算 组合输出为(非时钟赋值) = 寄存器输出为(时钟赋值) :=
6. T触发器输入端: .T
7. RS触发器输入端: .R和.S
8. D触发器输入端: .D也可使用:=
2019/7/4
计算机组成原理
1.13 集合
集合是作为一个独立单元进行操作的一组
信号或常量。它采用一个标识符,用方括号内
的一组信号或常量表示,其中的每一个信号或
常量称为集合的元素。
定义集合的方法有枚举法、界限符法或它
4. 一个模块至少有一个定义段,模块中可按需 要以任意次序使用多个定义段。
2019/7/4
计算机组成原理
例1:设计一个模块,要求以GAL6V8构成 一个两输入端的"与"门和一个两输入端的 “异或门”,设输入信号为A,B,输出信号 为X,Y,则X=A·B,Y=A⊕B。如在源文件 中仅有一个这样的模块,其源文件如下所示:
2019/7/4
计算机组成原理
1.2 ASCII字符 在ABEL-HDL语言中,其合法的
ASCII字符除了数字0-9,大小写的 英文字母外,还包括空格符及下述符 号:
!@#$?+&*() [ ] ; : ‘ “ – ,. < > / ^ %
2019/7/4
计算机组成原理
1.3 标识符 标识符是用合法的ASCII字符按次序排
2019/7/4
计算机组成原理
1.4 常量 在ABEL-HDL语言的逻辑描述中,常
量用于赋值语句、真值表和测试向量的表 达,有时也用于给某些标识符赋值,以使 该标识符在整个模块的逻辑描述中代表该 常量的值。
常量可以是数值常量,也可以是非数值 的特殊常量。
2019/7/4
计算机组成原理
1.5 块 块是包含在一对大括号中的文本,它
2019/7/4
计算机组成原理
2019/7/4
计算机组成原理
1.10 表达式和等式
表达式由标示符和运算符组成。在表达式
中可出现任何逻辑、算术或关系运算,表达式
中的运算次序按运算优先级决定,也可加括号
改变执行次序。
赋值运算仅用于等式,它将表达式的运算
结果通过等式赋给输出信号(包括组合赋值和
时序(寄存器)赋值)。一个信号可以被多次赋值,
用地址高三位的方法:
方法1:
ChipSel=Addr==[1,0,1,X,X,X,X,X,X,X,X,X,X,X,X,X]
方法2:
ChipSel=(Addr>=^hA000)&(Addr<=^hBFFF);
2019/7/4
计算机组成原理
1.14 变量及变量代换
哑变量:在宏定义、模块或指示字中可被真
计算机组成原理实践环节 基础2——Able语言简介
2019/7/4
计算机组成原理
可编程逻辑器件设计语言ABEL
前言
1 ABEL-HDL语言的基本语法 2 ABEL-HDL语言源文件的基本结构 3 逻辑描述
2019/7/4
计算机组成原理
前言 开发使用PLD的系统时,应使用语言或 逻辑图来描述该PLD的功能,并通过编译、 连接、适配,产生可对芯片进行编程的目 标艾件(该文件一股采用熔丝图格式,如 标准的JED文件),然后再下载并写入芯 片中。
实变量替代的标识符;
真实变量:用于宏定义、模块或指示字中的
变量。
在需要用真实变量取代哑变量的地方,
哑变量前要加一个问号“?”,以与其他标识
区分开来。
2019/7/4
计算机组成原理
如下面的宏定义
OR_EM MACRO(a,b,c) {?a # ?b # ?c};
中,a,b,c就是哑变量。下列方程式对OR_EM 宏的宏引用
在这五部分中,标头段为模块的开始;定 义段的定义部分指定或定义用于设计的器件、 信号、常量宏和库;逻辑描述段对所设计的逻 辑进行功能描述;测试向量段写出了测试向量, 用以验证所设计的逻辑;结束语句段表示一个 模块的结束。
2019/7/4
计算机组成原理
1.7 数字 ABEL-HDL中的所有的数值运算精度
都是32位,合法的数值范围是0~232-1。 数字可采用二进制、八进制、十进制
或十六进制,它们分别以符号^b、^o、^d 或^h表示,如不用符号则认为是十进制数。
在ABEL-HDL中数字还可用字符表示, 在字符之前加上单引号后,即以字母ASCII 码作为数值,例如‘a’=^h61,‘ab’=^h6162
2019/7/4
计算机组成原理
常用的可编程逻辑器件设计语言为 ABEL-HDL(ABEL硬件描述语言), 它是DATA I/O公司开发的一种可编程 逻辑器件设计语言,它可支持绝大多数 可编程逻辑器件。
2019/7/4
计算机组成原理
1 ABEL-HDL语言的基本语法 1.1 ABEL源文件构成
在用ABEL-HDL进行逻辑设计时,描述 逻辑功能的源文件必须是符合ABEL-HDL语 言语法规定的ASII码文件。
(1)取负 -
(2)加 +
(3)减 -
(4)乘(无符号整数) *
(5)除(无符号整数) /
(6)取模(无符号整数) %
(7)左移<<
(8)右移>>
2019/7/4
计算机组成原理
例 -A 例A+B 例A-B 例A*B 例A/B 例A%B 例A<<B 例A>>B
3. 关系运算
关系运算为无符号运算,其结果为位(布尔
们的组合。例如:
ADD=[A5,A4,A3,A2,A1,A0] 为枚举法
ADD=[A5..A0]
为界限符法
ADD=[A5,A4,A3..A0] 为两种方法的组合
2019/7/4
计算机组成原理
集合可以进行逻辑、加、减、关系运算。 逻辑运算是对集合中每一个元素作相应的运 算,因此如果需对两个或两个以上集合进行 运算时,这些参与运算的集合的元素数目必 须相同。但单个变量与集合进行逻辑运算为 该变量与集合的每个元素进行逻辑运算。加、 减、关系运算为对整个集合执行该运算。
而其最终结果是所有这些赋值的或,而不是最
后一次的赋值。
2019/7/4
计算机组成原理
1.12 引脚和寄存器的特别说明 1. 三态允许端: .OE,它为1有效,仅
适用于引脚。
2. 寄存器复位端: .RS,它为1有效
3. 寄存器置位端: .PR,它为1有效
4. 寄存器时钟:
.CLK,它为上跳触发
5. JK触发器输入端: .J和.K
5. 除保留标识符(即关键宇)外,标识符中同
一个字母的大、小写表示不同的含义;
6. 除了合法的点扩展外,标识符中同一个字
母的大、小写表示不同的含义。
·
2019/7/4
计算机组成原理
在ABEL-HDL中保留的标识符称为关 键字,关键字不能用于命名器件、管脚、 节点、集合、宏或信号,而代表了这个字 所特指的功能。
2019/7/4
计算机组成原理
Module GATE Options’_trace wave’
Title’example of gate’
Declarations gate DEVICE’GAL16V8’; A,B PIN 1,2; X,Y PIN 18,17; Equations X=A&B; Y=A$B;
用于宏和指令。括号中的文本内容可以是 一行,也可以是多行。块可以嵌套,即块 中包含块。如在块的文本的字符中包含了 大括号,则应在其之前加上反斜杠。
2019/7/4
计算机组成原理
例如:
{This is a block}
再如:
{
This is also a block,and it
spans more than one line