计算机组成原理实践环节课件第3部分:实验基础2——able语言-_第1页
计算机组成原理实践环节课件第3部分:实验基础2——able语言-_第2页
计算机组成原理实践环节课件第3部分:实验基础2——able语言-_第3页
计算机组成原理实践环节课件第3部分:实验基础2——able语言-_第4页
计算机组成原理实践环节课件第3部分:实验基础2——able语言-_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理实践环节基础2Able语言简介7/21/2022计算机组成原理可编程逻辑器件设计语言ABEL前言1 ABEL-HDL语言的基本语法2 ABEL-HDL语言源文件的基本结构3 逻辑描述7/21/2022计算机组成原理 前言 开发使用PLD的系统时,应使用语言或逻辑图来描述该PLD的功能,并通过编译、连接、适配,产生可对芯片进行编程的目标艾件(该文件一股采用熔丝图格式,如标准的JED文件),然后再下载并写入芯片中。7/21/2022计算机组成原理 常用的可编程逻辑器件设计语言为ABEL-HDL(ABEL硬件描述语言),它是DATA I/O公司开发的一种可编程逻辑器件设计语言,它可支持

2、绝大多数可编程逻辑器件。7/21/2022计算机组成原理1 ABEL-HDL语言的基本语法1.1 ABEL源文件构成 在用ABEL-HDL进行逻辑设计时,描述逻辑功能的源文件必须是符合ABEL-HDL语言语法规定的ASII码文件。 7/21/2022计算机组成原理 ABEL-HDL源文件是由各种语句组成的,这些语句是由ABEL-HDL语言的基本符号构成的,这些符号必须满足一定的格式才能正确描述逻辑功能。语句的每一行最长为150个字符。在源文件的语句中标识符、关键字、数字之间至少必须有一个空格,以便将它们分隔开来。但在标识符列表中标识符以逗号分隔。 7/21/2022计算机组成原理 在表达式中,

3、标识符和数字用操作符或括号分隔。空格、点号不能夹在标识符、关键字、数字之间。如空格夹在标识符、数字之间将会被看作两个标识符或数数字。以大写、小写或大小写混合写的关键字被看作同一个关键字,而以大写、小写或大小写混合写写的标识符将被看作不同的标识符。 7/21/2022计算机组成原理7/21/2022计算机组成原理7/21/2022计算机组成原理7/21/2022计算机组成原理7/21/2022计算机组成原理1.2 ASCII字符 在ABEL-HDL语言中,其合法的ASCII字符除了数字0-9,大小写的英文字母外,还包括空格符及下述符号: ! # $ ? + & * ( ) ; : “ ,. /

4、%7/21/2022计算机组成原理1.3 标识符 标识符是用合法的ASCII字符按次序排列定义的名字,其作用是标识器件、管脚、节点、集合、输入输出信号、常量、宏以及变量。所有的标识符必须符合下述规定:1. 标识符的长度不超过31个字符;2. 标识符必须以字母或下划线开始; 7/21/2022计算机组成原理3. 标识符其他的宇母可采用大、小写字母、数字及下划线;4. 标识符中不能包括空格符;5. 除保留标识符(即关键宇)外,标识符中同一个字母的大、小写表示不同的含义;6. 除了合法的点扩展外,标识符中同一个字母的大、小写表示不同的含义。7/21/2022计算机组成原理 在ABEL-HDL中保留的

5、标识符称为关键字,关键字不能用于命名器件、管脚、节点、集合、宏或信号,而代表了这个字所特指的功能。7/21/2022计算机组成原理7/21/2022计算机组成原理1.4 常量 在ABEL-HDL语言的逻辑描述中,常量用于赋值语句、真值表和测试向量的表达,有时也用于给某些标识符赋值,以使该标识符在整个模块的逻辑描述中代表该常量的值。 常量可以是数值常量,也可以是非数值的特殊常量。 7/21/2022计算机组成原理7/21/2022计算机组成原理1.5 块 块是包含在一对大括号中的文本,它用于宏和指令。括号中的文本内容可以是一行,也可以是多行。块可以嵌套,即块中包含块。如在块的文本的字符中包含了大

6、括号,则应在其之前加上反斜杠。7/21/2022计算机组成原理例如:This is a block再如:This is also a block,and it spans more than one line再如: A=B#C D=0,1&1,07/21/2022计算机组成原理1.6 注释 注释是对源文件的解释,注释以双引号开始,以另一个双引号或行结束符号结束,注释不能用于关键字之间。 例如: “declaration section” module Basic_logic; ”gives the module a name(回车)7/21/2022计算机组成原理7/21/2022计算机组成原

7、理1.7 数字 ABEL-HDL中的所有的数值运算精度都是32位,合法的数值范围是0232-1。 数字可采用二进制、八进制、十进制或十六进制,它们分别以符号b、o、d或h表示,如不用符号则认为是十进制数。 在ABEL-HDL中数字还可用字符表示,在字符之前加上单引号后,即以字母ASCII码作为数值,例如a=h61,ab=h6162。7/21/2022计算机组成原理1.8 字符串 字符串用于标题、模块及选项的表达,也用于管脚、节点和属性的定义,它包含在一对单引号中。如字符串中有单引号或反斜杠,则必须在它们之前再加一反斜杠。字符串可写几行,但不能超过324个字符。如:TITLE 1 to 8 li

8、ne demultiplexer;DMIP16L8;7/21/2022计算机组成原理1.9 运算符 ABEL-HDL支持四类基本运算:逻辑运算、算术运算、关系运算及赋值运算。 1. 逻辑运算 (1)非: ! 例 !A (2)与: & 例 A&B (3)或: # 例 A#B (4)异或 $ 例 A$B (5)同或 !$ 例 A!$B7/21/2022计算机组成原理2. 算术运算 (1)取负 - 例 -A (2)加 + 例A+B (3)减 - 例A-B (4)乘(无符号整数) * 例A*B (5)除(无符号整数) / 例A/B (6)取模(无符号整数) % 例A%B (7)左移 例A 例AB7/2

9、1/2022计算机组成原理3. 关系运算 关系运算为无符号运算,其结果为位(布尔值)。 (1)等于: = 例A=B (2)不等号: ! = 例A!=B (3)小于: 例AB (4)小于等于:= 例A 例AB (6)大于等于: = 例A=B 例如: 2=3 值为false 32 值为false7/21/2022计算机组成原理4. 赋值运算组合输出为(非时钟赋值) =寄存器输出为(时钟赋值) :=7/21/2022计算机组成原理7/21/2022计算机组成原理1.10 表达式和等式 表达式由标示符和运算符组成。在表达式中可出现任何逻辑、算术或关系运算,表达式中的运算次序按运算优先级决定,也可加括号

10、改变执行次序。 赋值运算仅用于等式,它将表达式的运算结果通过等式赋给输出信号(包括组合赋值和时序(寄存器)赋值)。一个信号可以被多次赋值,而其最终结果是所有这些赋值的或,而不是最后一次的赋值。 7/21/2022计算机组成原理1.12 引脚和寄存器的特别说明1. 三态允许端: .OE,它为1有效,仅 适用于引脚。2. 寄存器复位端: .RS,它为1有效3. 寄存器置位端: .PR,它为1有效4. 寄存器时钟: .CLK,它为上跳触发5. JK触发器输入端: .J和.K6. T触发器输入端: .T7. RS触发器输入端: .R和.S8. D触发器输入端: .D也可使用:=7/21/2022计算机

11、组成原理1.13 集合 集合是作为一个独立单元进行操作的一组信号或常量。它采用一个标识符,用方括号内的一组信号或常量表示,其中的每一个信号或常量称为集合的元素。 定义集合的方法有枚举法、界限符法或它们的组合。例如: ADD=A5,A4,A3,A2,A1,A0 为枚举法 ADD=A5.A0 为界限符法 ADD=A5,A4,A3.A0 为两种方法的组合 7/21/2022计算机组成原理 集合可以进行逻辑、加、减、关系运算。逻辑运算是对集合中每一个元素作相应的运算,因此如果需对两个或两个以上集合进行运算时,这些参与运算的集合的元素数目必须相同。但单个变量与集合进行逻辑运算为该变量与集合的每个元素进行

12、逻辑运算。加、减、关系运算为对整个集合执行该运算。 7/21/2022计算机组成原理 例:(ADD=h10)&(ADD=hA000)&(AddrX,Y ) 0,0-0,0 0,1-0,1 1,0-0,1 1,1-1,0; End GATE7/21/2022计算机组成原理 在这个模块中有标头段、定义段、逻辑描述段、测试向量段及结束语句段五部分组成。 在这五部分中,标头段为模块的开始;定义段的定义部分指定或定义用于设计的器件、信号、常量宏和库;逻辑描述段对所设计的逻辑进行功能描述;测试向量段写出了测试向量,用以验证所设计的逻辑;结束语句段表示一个模块的结束。 7/21/2022计算机组成原理 此外

13、在模块中还允许有选择地加上一些指令。每一个模块只能有一个标头段,它与结束语句段配对使用,而定义段、逻辑描述段、测试向量段则可以任意次序重复,定义语句必须紧跟标头或定义段的关键字。7/21/2022计算机组成原理2.2 标头段 在例1中标头段如下: Module GATE Options_trace wave Titleexample of gate 标头段包括模块语句、选项和标题三个元素组成。 7/21/2022计算机组成原理1. 模块语句 模块语句是必不可少的,其作用是命名模块并标志模块的开始,它与结束语句配对使用,同时也可指出是否利用哑元。 7/21/2022计算机组成原理 模块语句的关键

14、字是Module,其格式为:Module modulename(dummy_arg,dummy_arg) 其中modulename为命名模块的合法标识符,在本例中为GATE。 dummy_arg是哑变量名称,如不利用哑变量则可以略去。7/21/2022计算机组成原理 若模块选用哑变量,则在使用语言处理程序处理模块时,可将真实变量传给模块。哑变量可为模块引用。模块中,凡带有“?”的哑变量,语法分析程序都用真实变量将其替代。例: module my_example (A,B) C=?B+?A; end my_example7/21/2022计算机组成原理2. 选项 选项为可选语句。其作用是语言处理

15、器控制源文件的处理。 选项的关键字是Options,其格式为 Optionsstingstring为选项字符串。 7/21/2022计算机组成原理3. 标题 标题为可选语句,其作用是给出模块一个标题,此标题将作为语言处理程序所生的编程器下载文件及设计编制文件的题头。 标题的关键字是Title,其格式为: Titlestring string为标题字符串。 7/21/2022计算机组成原理2.3 定义段 在例1中定义段如下: Declarations gate DEVICEGAL16V8; A,B PIN 1,2; X,Y PIN 18,17; 定义段包括定义段关键字、器件定义、信号定义、常量定

16、义、宏定义、库定义等元素。7/21/2022计算机组成原理 定义段的关键字是Declarations,后面可跟任何合法的定义语句。定义段的关键字允许定义段可在源文件的任何一部分进行定义。如定义语句紧跟标头段,则可略去定义段关键字。7/21/2022计算机组成原理1. 器件定义 器件定义是可选项,它的作用是将模块中所使用的器件名与实际所采用的可编程逻辑器件联系起来。 器件定义的关键字是DEVICE,其格式为 Device_id DEVICE real_device; 7/21/2022计算机组成原理 此表达式中,device_id为模块中所使用的器件名,在本例中为gate。real_device

17、为实际际所使用的某一个特定可编程逻辑器件的型号,在本例中为GAL16V8。值得注意的是device_id必须是合法的文件名,因为编程器装载文件的文件名由device_id加上扩展名“jde”产生的。 7/21/2022计算机组成原理2. 信号定义 信号定义包括了管脚定义、节点定义及属性定义。其作用是定义信号,并可选择和管脚及节点相联系。 节点/管脚定义用于定义信号名,并将信号同具体的器件节点/管脚序数联系起来。如不用FUSASM和JEDSIM处理文件,可以不设定具体的器件节点/管脚序数。7/21/2022计算机组成原理 属性用于定义信号的特性,它既可用于器件的节点/管脚说明中,作为节点/管脚定

18、义的一部分,也可设在器件的节点/管脚定义之后,作为一个独立的定义部分。它们的关键字分别为PIN,NODE,ISTYPE。7/21/2022计算机组成原理(1). 管脚定义 管脚定义的格式为:!pin_id,!pin_idPINpin#,pin#ISTYPEattributes;其中!pin_id是逻辑设计中用于指示模块中管脚的标识符,pin#为实际器件中的管脚(可为?,由系统分配),attributes为在节点可编程的器件中用于指明属性的字符串,有以下几种: 7/21/2022计算机组成原理7/21/2022计算机组成原理例:!Clock,Rest,SI pin in U12,12,15,3;

19、 这行代码将器件U12的管脚12,15,3分别用标示符Clock,Rest,SI来表示。若模块中不止定义一个器件,必须用语句中的in项来指明器件。7/21/2022计算机组成原理例: 管脚的属性可由语句中的属性项或ISTYPE语句定义,比如 FO pin 13=neg,reg;7/21/2022计算机组成原理(2). 节点定义 节点定义的格式为:!node_id,!node_idNODEnode#,node#IETYPEattributes;其中!node_id是逻辑设计中用于表示节点的标识符,node #为实际器件中的节点号,Attributes为在节点可编程的器件中用于指明属性的字符串(同

20、管脚定义)。 7/21/2022计算机组成原理 关键字NODE并没有把信号限制在器件上的内部节点上,当一个信号用NODE定义后,也可能被器件装配器分配给器件的I/O引脚上。7/21/2022计算机组成原理(3). 属性定义 属性定义的格式为:signalsignalPIN NODE# #SISTYPEattributes,attributes;signal是管脚或节点的标识符,attributes为指明属性的字符串。 7/21/2022计算机组成原理例: FO , A istype neg,latch;将FO和A定义为负极性锁存信号7/21/2022计算机组成原理常量定义 常量定义用于定义模块

21、中的常量,常量的关键字是=,其格式为: id ,id = expr ,expr ; id为模块中所使用的常量的标识符。 expr为定义常量值的表达式。7/21/2022计算机组成原理例:A , B , C = 5 , 1,0 , 6;G = 1,2 + 3,47/21/2022计算机组成原理4. 宏定义 宏定义用于定义模块中的宏。这个宏包含了源文件中的某一部分,这样,用户在建立文件时,不必每次书写相同的内容,而可以调用宏。 7/21/2022计算机组成原理 宏定义的关键字是MACRO,其格式为:Macro_id MACRO(dummy_arg,dummy_arg)block; Macro_id

22、为表示宏的宏的标识符。 dummy_arg为哑变量。 block为块。7/21/2022计算机组成原理例:若定义了NAND3 MACRO(A,B,C)!(?A&?B&?C;则引用D=NAND3(Clock,Hello,Busy);相当于D=!(Clock&Hello&Busy);7/21/2022计算机组成原理5. 库定义 库定义的关键字是Library,其格式为: Libraryname name为定义库文件名的字符串,不含扩展名。 库定义使用户指定的文件内容从name.inc 库文件中抽取出来,并被插到源文件中。7/21/2022计算机组成原理2.4 逻辑描述段 在例1中逻辑描述段如下:

23、Equations X=A&B; Y=A$B; ABEL-HDL语言描述逻辑的方式有方程、真值表、状态图、熔丝和异或因子,其中每一种描述方法均以关键字或符号开始,以引导某种描述的开始。7/21/2022计算机组成原理方程的形式 它以扩展的布尔方程来描述逻辑功能; 方程语句表示与某个器件相关的一组方程的开始; 方程语句的关键字是Epuations,其赋值符为=或:=,其中:=为组合逻辑的赋值操作符,:=为时序逻辑的赋值操作符。7/21/2022计算机组成原理 在方程中允许使用WHEN-THEN-ElSE语句。 方程的表达形式如下:EquationsWHEN condition THEN ! el

24、ement = expression;ELSE equations; 或者7/21/2022计算机组成原理WHEN condition THEN equations;ELSE equations; 其中condition 为任何合法的表达式。 element 命名一个或一组信号,或一个实际集合的一个标识符。 equation 为任何合法的表达式。7/21/2022计算机组成原理2. 真值表的形式 它以表格的形式描述了输出与输入逻辑之间的关系。真值表由表头向量和表格组成。7/21/2022计算机组成原理(1). 表头向量它的关键字是TRUTH TABLE,它的表达形式为: TRUTH TABLE

25、(in ids-out ids) inputs-outputs;或者 TRUTH TABLE(in ids:reg ids) inputs:regs outs;或者 TRUTH TABLE(in ids:reg ids-out ids) inputs:regs outs-outputs;7/21/2022计算机组成原理 其中in ids为逻辑关系中的输入信号标识符。 out ids为逻辑关系中的输出信号标识符。 reg ids为逻辑关系中的寄存器型信号标识符。 inputs为逻辑关系中的输入信号。 outputs为逻辑关系中的输出信号。 reg outs为信号寄存后的输出。7/21/2022计

26、算机组成原理 这三种形式中第一种适合于描述组合逻辑,第二种适合于描述时序逻辑,第三种适合于描述既包含组合逻辑又包含时序逻辑的较复杂的逻辑电路。 符号-表示输入输出关系为组合型,符号:表示输入输出关系为寄存器型。7/21/2022计算机组成原理(2). 真值表格式 格式由真值表的表头向量定义,真值表本身即为按格式定义格式排列的一组输入输出信号。真值表中使用的所用信号必须是常量。7/21/2022计算机组成原理例:定义带使能的异或门 truth_table inIC6 (EN,A,B-C) 0, .X., .X.-.X.; 1, 0, 0-0; 1, 0, 1-1; 1, 1, 0-1; 1, 1

27、, 1-0;7/21/2022计算机组成原理例: 定义一个简单的状态机。当前状态用放在一个集合里的信号A,B表示,下一个状态用寄存器输出信号C,D表示,它们也放在一个集合中。输出信号为一简单的组合型信号。 该状态机工作时,在各状态之间循环。当A=0,B=1时,将E置为低电平。7/21/2022计算机组成原理truth_table inIC17(A,B:C,D-E)0,0:0,1-1;0,1:1,0-0;1,0:1,1-1;1,1:0,0-1;也可写为truth_table inIC17(A,B:C,D-E)0:1-1;1:2-0;2:3-1;3:0-1;7/21/2022计算机组成原理3. 状

28、态图的形式 状态图采用了状态机的结构,专门用于描述时序逻辑,它可以更简便地设计如计数器、顺序控制器等状态机构。7/21/2022计算机组成原理 它的关键字是STATE DIAGRAM,其表达形式为: STATE DIAGRAM State reg -state out STATE state exp equation equation . . . trans-stmt7/21/2022计算机组成原理(1). IF-THEN-THEN语句语法:if 表达式 then 状态表达式 else 状态表达式;例: if X-Y then J else K;若X-Y不等于零,转入J态,否则转入K态。 7/

29、21/2022计算机组成原理(2). 链式IF-THEN-THEN语句语法:if 表达式 then 状态表达式 else 状态表达式; else if 表达式 then 状态表达式 else if 表达式 then 状态表达式 else 状态表达式 可链接的数目没有限制,但最后一个语句必须以分号结尾7/21/2022计算机组成原理(3). CASE-ENDCASE语句语法:case 表达式:状态表达式; 表达式:状态表达式; 表达式:状态表达式; endcase;7/21/2022计算机组成原理例: case a=0:1; a=1:2; a=2:3; a=3:0; endcase7/21/20

30、22计算机组成原理(4). GOTO语句 语法:goto 状态表达式; 例: goto x+y;7/21/2022计算机组成原理5. 异或因子的形式 异或因子部分可以指定一个布尔表达式,这个表达式从简化的乘积形式方程中提取公因子,并与这个方程异或。这样当一个设计在具有异或门结构的器件中实现时,可以大大地简化方程的表达式。7/21/2022计算机组成原理 它的关键字是XOR_Factors,表达式为: XOR_Factors Singal_name = xor_factors 式中Singal_name为信号名, xor_factors为异或表达式。7/21/2022计算机组成原理6. 关于点扩

31、展 点扩展的语言符号为Singal_name.ext信号点扩展类似于属性,它可以精确地描述电路的行为,其主要应用是复杂的语言情况。7/21/2022计算机组成原理2.5.测试向量段 在例1中测试向量段如下: Test_vections ( A,B-X,Y ) 0,0-0,0 0,1-0,1 1,0-0,1 1,1-1,0;7/21/2022计算机组成原理 测试向量段是可选项,它包括了测试向量和跟踪说明两部分。 测试向量用于验证逻辑设计的功能,它通过定义输出为输入的一个函数来指定用户所期望的器件的逻辑运算,以便在仿真时确定逻辑功能是否正确。 7/21/2022计算机组成原理 测试向量的关键字是T

32、est_vectors,测试向量的表达形式为: Test_vectors note ( input ,input-output,output ) invalues-outvalues;7/21/2022计算机组成原理其中note为说明测试向量的字符串。 inputs表示输入信号或输入反馈信号的一个或一组标识符。 outputs表示一个或一组器件输出信号的一个或一组标识符。 invalues输入值或其集合。 outvalues由给定的输入得到的输出值或其集合。 7/21/2022计算机组成原理 测试向量表的格式由表头格式所决定,每一向量中的信号都按表头格式语句中的定义进行排列。测试向量表中列出了

33、各种输入信号的组合及相应的输出信号,这些信号组合可包含所有的组合形式或其中的一部分。表中所有的信号值必须为定义过的常量、数值常量或特殊常且如.X. .C.等。7/21/2022计算机组成原理例: test_vectors(A,B-C,D) 0,0-1,1; 0,1-1,0; 1,0-0,1; 1,1-0,0;7/21/2022计算机组成原理 对于采用状态机描述的逻辑,其测试向量必须是顺序的,即必须通过合法的状态转换。 跟踪说明用来控制PLAsim和Jedsim模拟结果的显示特性。 跟踪说明的关键字是TRACE,其表达形式为: TRACE(inputs-outputs)7/21/2022计算机组

34、成原理2.6 结束段 在例1中结束段如下: END GATE 它标志一个模块的结束。它的关键字是END,表示形式为: END module_name;7/21/2022计算机组成原理2.7 指示字 在源文件中还允许有选择地加上一些指令。这些指令被处理时,可能影响源文件的内容。 指令的关键字是,表示形式为: directive option7/21/2022计算机组成原理3 逻辑描述 ABEL-HDL语言描述逻辑的主要方式是方程、真值表及状态图,用户可选用最适合其设计的逻辑的一种方法或者选用这三种方法中的两种或三种来描述。7/21/2022计算机组成原理方程的形式 它以扩展的布尔方程来描述逻辑功能。根据采用的赋值符,这种方法可描述组合逻辑或者时序逻辑。方程中便用的WHEN-THEN-ELSE语句则使逻辑描

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论