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

下载本文档

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

文档简介

计算机组成原理实践环节

基础2——Able语言简介12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第1页!可编程逻辑器件设计语言ABEL前言1ABEL-HDL语言的基本语法2ABEL-HDL语言源文件的基本结构3逻辑描述12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第2页!前言开发使用PLD的系统时,应使用语言或逻辑图来描述该PLD的功能,并通过编译、连接、适配,产生可对芯片进行编程的目标艾件(该文件一股采用熔丝图格式,如标准的JED文件),然后再下载并写入芯片中。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第3页!常用的可编程逻辑器件设计语言为ABEL-HDL(ABEL硬件描述语言),它是DATAI/O公司开发的一种可编程逻辑器件设计语言,它可支持绝大多数可编程逻辑器件。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第4页!ABEL-HDL源文件是由各种语句组成的,这些语句是由ABEL-HDL语言的基本符号构成的,这些符号必须满足一定的格式才能正确描述逻辑功能。语句的每一行最长为150个字符。在源文件的语句中标识符、关键字、数字之间至少必须有一个空格,以便将它们分隔开来。但在标识符列表中标识符以逗号分隔。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第5页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第6页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第7页!1.2ASCII字符在ABEL-HDL语言中,其合法的ASCII字符除了数字0-9,大小写的英文字母外,还包括空格符及下述符号:!@#$?+&*()[];:‘“–,.<>/^%12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第8页!3.标识符其他的宇母可采用大、小写字母、数字及下划线;4.标识符中不能包括空格符;5.除保留标识符(即关键宇)外,标识符中同一个字母的大、小写表示不同的含义;6.除了合法的点扩展外,标识符中同一个字母的大、小写表示不同的含义。·12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第9页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第10页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第11页!例如:{Thisisablock}再如:{Thisisalsoablock,anditspansmorethanoneline}再如:{A=B#CD=[0,1]&[1,0]}12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第12页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第13页!1.8字符串字符串用于标题、模块及选项的表达,也用于管脚、节点和属性的定义,它包含在一对单引号中。如字符串中有单引号或反斜杠,则必须在它们之前再加一反斜杠。字符串可写几行,但不能超过324个字符。如:TITLE‘1to8linedemultiplexer’;DMI’P16L8’;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第14页!2.算术运算(1)取负-例-A(2)加+例A+B(3)减-例A-B(4)乘(无符号整数)*例A*B(5)除(无符号整数)/例A/B(6)取模(无符号整数)%例A%B(7)左移<<例A<<B(8)右移>>例A>>B12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第15页!4.赋值运算组合输出为(非时钟赋值)=寄存器输出为(时钟赋值):=12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第16页!1.10表达式和等式表达式由标示符和运算符组成。在表达式中可出现任何逻辑、算术或关系运算,表达式中的运算次序按运算优先级决定,也可加括号改变执行次序。赋值运算仅用于等式,它将表达式的运算结果通过等式赋给输出信号(包括组合赋值和时序(寄存器)赋值)。一个信号可以被多次赋值,而其最终结果是所有这些赋值的或,而不是最后一次的赋值。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第17页!1.13集合集合是作为一个独立单元进行操作的一组信号或常量。它采用一个标识符,用方括号内的一组信号或常量表示,其中的每一个信号或常量称为集合的元素。定义集合的方法有枚举法、界限符法或它们的组合。例如:

ADD=[A5,A4,A3,A2,A1,A0]为枚举法

ADD=[A5..A0]为界限符法

ADD=[A5,A4,A3..A0]为两种方法的组合

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第18页!例:(ADD>=^h10)&(ADD<=^h2F)等价于A5^A4VA5^A4ABEL-HDL语言处理集合时,将它们作为二进制数来对待,二进制数中的每一位代表了集合中的每一个元素的取值。例如:[A0,A1,A2]=3

等效于A0=0,A1=1,A2=1。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第19页!其逻辑功能等效于ChipSel=A15&A14&A13

因为如果Addr==[1,0,1],即A15=1,A14=0,A13=1,那么ChipSel为真。上述集合方程也可以写成:

ChipSel=Addr=5;本例定义了一个包含16位地址线中高3位的一个集合,并用于集合运算中,也可用其他方法对全部地址进行效果相同的操作。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第20页!1.14变量及变量代换哑变量:在宏定义、模块或指示字中可被真实变量替代的标识符;真实变量:用于宏定义、模块或指示字中的变量。在需要用真实变量取代哑变量的地方,哑变量前要加一个问号“?”,以与其他标识符区分开来。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第21页!2ABEL-HDL语言源文件的基本结构2.1引言ABEL-HDL语言源文件由一个或多个相互独立的模块构成,每一个模块包含了一个完整的逻辑描述。源文件中的所有模块都可以被ABEL-HDL软件同时处理。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第22页!模块结构必须遵从以下原则:模块开头为module语句,结束必须用相应的end语句;2.若使用flash语句,必须为module语句的第一条语句;3.若使用title语句,必须为flags语句后的第一条语句。若没有title语句,则必须为module语句后的条语句;4.一个模块至少有一个定义段,模块中可按需要以任意次序使用多个定义段。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第23页!ModuleGATEOptions’_tracewave’Title’exampleofgate’DeclarationsgateDEVICE’GAL16V8’;A,BPIN1,2;X,YPIN18,17;EquationsX=A&B;Y=A$B;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第24页!在这个模块中有标头段、定义段、逻辑描述段、测试向量段及结束语句段五部分组成。在这五部分中,标头段为模块的开始;定义段的定义部分指定或定义用于设计的器件、信号、常量宏和库;逻辑描述段对所设计的逻辑进行功能描述;测试向量段写出了测试向量,用以验证所设计的逻辑;结束语句段表示一个模块的结束。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第25页!2.2标头段在例1中标头段如下:

ModuleGATEOptions’_tracewave’Title’exampleofgate’

标头段包括模块语句、选项和标题三个元素组成。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第26页!模块语句的关键字是Module,其格式为:Modulemodulename[(dummy_arg[,dummy_arg]…)]其中modulename为命名模块的合法标识符,在本例中为GATE。dummy_arg是哑变量名称,如不利用哑变量则可以略去。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第27页!2.选项选项为可选语句。其作用是语言处理器控制源文件的处理。选项的关键字是Options,其格式为Options’sting’string为选项字符串。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第28页!2.3定义段在例1中定义段如下:

DeclarationsgateDEVICE’GAL16V8’;A,BPIN1,2;X,YPIN18,17;

定义段包括定义段关键字、器件定义、信号定义、常量定义、宏定义、库定义等元素。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第29页!1.器件定义器件定义是可选项,它的作用是将模块中所使用的器件名与实际所采用的可编程逻辑器件联系起来。器件定义的关键字是DEVICE,其格式为Device_idDEVICEreal_device;

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第30页!2.信号定义信号定义包括了管脚定义、节点定义及属性定义。其作用是定义信号,并可选择和管脚及节点相联系。节点/管脚定义用于定义信号名,并将信号同具体的器件节点/管脚序数联系起来。如不用FUSASM和JEDSIM处理文件,可以不设定具体的器件节点/管脚序数。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第31页!(1).管脚定义管脚定义的格式为:[!]pin_id[,[!]pin_id…]PIN[pin#[,pin#][ISTYPE’attributes’];其中[!]pin_id是逻辑设计中用于指示模块中管脚的标识符,pin#为实际器件中的管脚(可为?,由系统分配),attributes为在节点可编程的器件中用于指明属性的字符串,有以下几种:

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第32页!例:!Clock,Rest,SIpininU12,12,15,3;这行代码将器件U12的管脚12,15,3分别用标示符Clock,Rest,SI来表示。若模块中不止定义一个器件,必须用语句中的in项来指明器件。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第33页!(2).节点定义节点定义的格式为:[!]node_id[,[!]node_id…]NODE[node#[,node#][IETYPE’attributes’];其中[!]node_id是逻辑设计中用于表示节点的标识符,node#为实际器件中的节点号,Attributes为在节点可编程的器件中用于指明属性的字符串(同管脚定义)。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第34页!(3).属性定义属性定义的格式为:signal[signal…][PINNODE[##S]]ISTYPE’attributes’[,attributes’];signal是管脚或节点的标识符,attributes为指明属性的字符串。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第35页!常量定义常量定义用于定义模块中的常量,常量的关键字是=,其格式为:id[,id…]=expr[,expr…];id为模块中所使用的常量的标识符。expr为定义常量值的表达式。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第36页!4.宏定义宏定义用于定义模块中的宏。这个宏包含了源文件中的某一部分,这样,用户在建立文件时,不必每次书写相同的内容,而可以调用宏。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第37页!例:若定义了NAND3MACRO(A,B,C){!(?A&?B&?C};则引用D=NAND3(Clock,Hello,Busy);相当于D=!(Clock&Hello&Busy);12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第38页!2.4逻辑描述段在例1中逻辑描述段如下:EquationsX=A&B;Y=A$B;ABEL-HDL语言描述逻辑的方式有方程、真值表、状态图、熔丝和异或因子,其中每一种描述方法均以关键字或符号开始,以引导某种描述的开始。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第39页!在方程中允许使用WHEN-THEN-ElSE语句。方程的表达形式如下:Equations[WHENconditionTHEN][!]element=expression;[ELSEequations];或者12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第40页!2.真值表的形式它以表格的形式描述了输出与输入逻辑之间的关系。真值表由表头向量和表格组成。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第41页!其中inids为逻辑关系中的输入信号标识符。outids为逻辑关系中的输出信号标识符。regids为逻辑关系中的寄存器型信号标识符。inputs为逻辑关系中的输入信号。outputs为逻辑关系中的输出信号。regouts为信号寄存后的输出。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第42页!(2).真值表格式格式由真值表的表头向量定义,真值表本身即为按格式定义格式排列的一组输入输出信号。真值表中使用的所用信号必须是常量。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第43页!例:定义一个简单的状态机。当前状态用放在一个集合里的信号A,B表示,下一个状态用寄存器输出信号C,D表示,它们也放在一个集合中。输出信号为一简单的组合型信号。该状态机工作时,在各状态之间循环。当A=0,B=1时,将E置为低电平。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第44页!3.状态图的形式状态图采用了状态机的结构,专门用于描述时序逻辑,它可以更简便地设计如计数器、顺序控制器等状态机构。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第45页!(1).IF-THEN-THEN语句语法:if表达式then状态表达式[else状态表达式];例:ifX-YthenJelseK;若X-Y不等于零,转入J态,否则转入K态。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第46页!(3).CASE-ENDCASE语句语法:case[表达式:状态表达式];[表达式:状态表达式];[表达式:状态表达式];……endcase;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第47页!(4).GOTO语句语法:goto状态表达式;例:gotox+y;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第48页!它的关键字是XOR_Factors,表达式为:XOR_FactorsSingal_name=xor_factors式中Singal_name为信号名,xor_factors为异或表达式。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第49页!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];12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第50页!测试向量的关键字是Test_vectors,测试向量的表达形式为:Test_vectors[note](input[,input…]->output[,output])invalues->outvalues;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第51页!测试向量表的格式由表头格式所决定,每一向量中的信号都按表头格式语句中的定义进行排列。测试向量表中列出了各种输入信号的组合及相应的输出信号,这些信号组合可包含所有的组合形式或其中的一部分。表中所有的信号值必须为定义过的常量、数值常量或特殊常且如'.X.'.C.'等。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第52页!对于采用状态机描述的逻辑,其测试向量必须是顺序的,即必须通过合法的状态转换。跟踪说明用来控制PLAsim和Jedsim模拟结果的显示特性。跟踪说明的关键字是TRACE,其表达形式为:TRACE(inputs->outputs)12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第53页!2.7指示字在源文件中还允许有选择地加上一些指令。这些指令被处理时,可能影响源文件的内容。指令的关键字是@,表示形式为:·@directive[option]12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第54页!方程的形式它以扩展的布尔方程来描述逻辑功能。根据采用的赋值符,这种方法可描述组合逻辑或者时序逻辑。方程中便用的WHEN-THEN-ELSE语句则使逻辑描述更方便。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第55页!表12-4译码器的真值表12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第56页!例2:以方程的方法描述一个二选一的多路选择器,它根据选择信号的输入信号中的一组送到输出端。设输入信号为B3,B2,B1,B0,A3,A2,A1,A0,输出信号为Y3,Y2,Y1,Y0,控制信号为S。当S为“0”时,输出A组信号。当S为“1”输出B组信号。描述上述逻辑关系可采用真值表,输出Y0的真值表如表2。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第57页!根据上述真值表能得到方程式Y0=S·A0+S·B0Y1=S·A1+S·B1Y2=S·A2+S·B2Y3=S·A3+S·B312/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第58页!如将输入输出信号分别设置为集合BB,AA,YY,则表示为:EQUATIONSYY=!S&AA#S&BB;还可用下述形式描述:EQUATIONSWHENS==0THENYY=AA;ELSEYY=BB;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第59页!表3两位并行计数器的状态表12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第60页!1ABEL-HDL语言的基本语法1.1ABEL源文件构成在用ABEL-HDL进行逻辑设计时,描述逻辑功能的源文件必须是符合ABEL-HDL语言语法规定的ASII码文件。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第61页!

在表达式中,标识符和数字用操作符或括号分隔。空格、点号不能夹在标识符、关键字、数字之间。如空格夹在标识符、数字之间将会被看作两个标识符或数数字。以大写、小写或大小写混合写的关键字被看作同一个关键字,而以大写、小写或大小写混合写写的标识符将被看作不同的标识符。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第62页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第63页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第64页!1.3标识符标识符是用合法的ASCII字符按次序排列定义的名字,其作用是标识器件、管脚、节点、集合、输入输出信号、常量、宏以及变量。所有的标识符必须符合下述规定:1.标识符的长度不超过31个字符;2.标识符必须以字母或下划线开始;

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第65页!在ABEL-HDL中保留的标识符称为关键字,关键字不能用于命名器件、管脚、节点、集合、宏或信号,而代表了这个字所特指的功能。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第66页!1.4常量在ABEL-HDL语言的逻辑描述中,常量用于赋值语句、真值表和测试向量的表达,有时也用于给某些标识符赋值,以使该标识符在整个模块的逻辑描述中代表该常量的值。常量可以是数值常量,也可以是非数值的特殊常量。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第67页!1.5块块是包含在一对大括号中的文本,它用于宏和指令。括号中的文本内容可以是一行,也可以是多行。块可以嵌套,即块中包含块。如在块的文本的字符中包含了大括号,则应在其之前加上反斜杠。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第68页!1.6注释注释是对源文件的解释,注释以双引号开始,以另一个双引号或行结束符号结束,注释不能用于关键字之间。例如:

“declarationsection”moduleBasic_logic;”givesthemoduleaname(回车)12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第69页!1.7数字ABEL-HDL中的所有的数值运算精度都是32位,合法的数值范围是0~232-1。数字可采用二进制、八进制、十进制或十六进制,它们分别以符号^b、^o、^d或^h表示,如不用符号则认为是十进制数。在ABEL-HDL中数字还可用字符表示,在字符之前加上单引号后,即以字母ASCII码作为数值,例如‘a’=^h61,‘ab’=^h6162。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第70页!1.9运算符ABEL-HDL支持四类基本运算:逻辑运算、算术运算、关系运算及赋值运算。

1.逻辑运算(1)非:!例!A(2)与:&例A&B(3)或:#例A#B(4)异或$例A$B(5)同或!$例A!$B·12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第71页!3.关系运算关系运算为无符号运算,其结果为位(布尔值)。(1)等于:==例A==B(2)不等号:!=例A!=B(3)小于:<例A<B(4)小于等于:<=例A<=B(5)大于:>例A>B(6)大于等于:>=例A>=B例如:2==3值为false3<5值为true-1>2值为false12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第72页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第73页!1.12引脚和寄存器的特别说明1.三态允许端:.OE,它为1有效,仅适用于引脚。2.寄存器复位端:.RS,它为1有效3.寄存器置位端:.PR,它为1有效4.寄存器时钟:.CLK,它为上跳触发5.JK触发器输入端:.J和.K6.T触发器输入端:.T7.RS触发器输入端:.R和.S8.D触发器输入端:.D也可使用:=12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第74页!集合可以进行逻辑、加、减、关系运算。逻辑运算是对集合中每一个元素作相应的运算,因此如果需对两个或两个以上集合进行运算时,这些参与运算的集合的元素数目必须相同。但单个变量与集合进行逻辑运算为该变量与集合的每个元素进行逻辑运算。加、减、关系运算为对整个集合执行该运算。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第75页!例1:用集合运算实现布尔方程ChipSel=A15&A14&A13;首先,定义一个包含A15,A14,A13的常量集合Addr=[A15,A14,A13];于是方程ChipSel=Addr==[1,0,1];12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第76页!例2:

如果在定义段中定义了常量:Addr=[A15..A0];X=.X.;那么,下例两种方法等效于地址线集合中只使用地址高三位的方法:方法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);12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第77页!如下面的宏定义

OR_EMMACRO(a,b,c){?a#?b#?c};中,a,b,c就是哑变量。下列方程式对OR_EM宏的宏引用

D=OR_EM(X,Y,Z);其中X,Y,Z是真实变量。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第78页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第79页!例1:设计一个模块,要求以GAL6V8构成一个两输入端的"与"门和一个两输入端的“异或门”,设输入信号为A,B,输出信号为X,Y,则X=A·B,Y=A⊕B。如在源文件中仅有一个这样的模块,其源文件如下所示:12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第80页!Test_vections([A,B]->[X,Y])[0,0]->[0,0][0,1]->[0,1][1,0]->[0,1][1,1]->[1,0];EndGATE12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第81页!此外在模块中还允许有选择地加上一些指令。每一个模块只能有一个标头段,它与结束语句段配对使用,而定义段、逻辑描述段、测试向量段则可以任意次序重复,定义语句必须紧跟标头或定义段的关键字。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第82页!1.模块语句模块语句是必不可少的,其作用是命名模块并标志模块的开始,它与结束语句配对使用,同时也可指出是否利用哑元。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第83页!若模块选用哑变量,则在使用语言处理程序处理模块时,可将真实变量传给模块。哑变量可为模块引用。模块中,凡带有“?”的哑变量,语法分析程序都用真实变量将其替代。例:

modulemy_example(A,B)……C=?B+?A;……endmy_example12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第84页!3.标题标题为可选语句,其作用是给出模块一个标题,此标题将作为语言处理程序所生的编程器下载文件及设计编制文件的题头。标题的关键字是Title,其格式为:Title’string’string为标题字符串。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第85页!定义段的关键字是Declarations,后面可跟任何合法的定义语句。定义段的关键字允许定义段可在源文件的任何一部分进行定义。如定义语句紧跟标头段,则可略去定义段关键字。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第86页!此表达式中,device_id为模块中所使用的器件名,在本例中为gate。real_device为实际际所使用的某一个特定可编程逻辑器件的型号,在本例中为GAL16V8。值得注意的是device_id必须是合法的文件名,因为编程器装载文件的文件名由device_id加上扩展名“jde”产生的。

12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第87页!属性用于定义信号的特性,它既可用于器件的节点/管脚说明中,作为节点/管脚定义的一部分,也可设在器件的节点/管脚定义之后,作为一个独立的定义部分。它们的关键字分别为PIN,NODE,ISTYPE。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第88页!12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第89页!例:管脚的属性可由语句中的属性项或ISTYPE语句定义,比如FOpin13=‘neg,reg’;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第90页!关键字NODE并没有把信号限制在器件上的内部节点上,当一个信号用NODE定义后,也可能被器件装配器分配给器件的I/O引脚上。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第91页!例:FO,Aistype‘neg,latch’;将FO和A定义为负极性锁存信号12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第92页!例:A,B,C=5,[1,0],6;G=[1,2]+[3,4]12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第93页!宏定义的关键字是MACRO,其格式为:Macro_idMACRO(dummy_arg[,dummy_arg]…)block;Macro_id为表示宏的宏的标识符。dummy_arg为哑变量。block为块。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第94页!5.库定义库定义的关键字是Library,其格式为:Library’name’name为定义库文件名的字符串,不含扩展名。库定义使用户指定的文件内容从name.inc库文件中抽取出来,并被插到源文件中。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第95页!方程的形式它以扩展的布尔方程来描述逻辑功能;方程语句表示与某个器件相关的一组方程的开始;方程语句的关键字是Epuations,其赋值符为=或:=,其中:=为组合逻辑的赋值操作符,:=为时序逻辑的赋值操作符。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第96页![WHENconditionTHEN]equations;[ELSEequations];其中condition为任何合法的表达式。element命名一个或一组信号,或一个实际集合的一个标识符。equation为任何合法的表达式。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第97页!(1).表头向量它的关键字是TRUTHTABLE,它的表达形式为:TRUTHTABLE(inids->outids)inputs->outputs;或者TRUTHTABLE(inids:>regids)inputs:>regsouts;或者TRUTHTABLE(inids:>regids->outids)inputs:>regsouts->outputs;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第98页!这三种形式中种适合于描述组合逻辑,第二种适合于描述时序逻辑,第三种适合于描述既包含组合逻辑又包含时序逻辑的较复杂的逻辑电路。符号->表示输入输出关系为组合型,符号:>表示输入输出关系为寄存器型。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第99页!例:定义带使能的异或门

truth_tableinIC6([EN,A,B]->C)[0,.X.,.X.]->.X.;[1,0,0]->0;[1,0,1]->1;[1,1,0]->1;[1,1,1]->0;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第100页!truth_tableinIC17([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_tableinIC17([A,B]:>[C,D]->E)0:>1->1;1:>2->0;2:>3->1;3:>0->1;12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第101页!它的关键字是STATEDIAGRAM,其表达形式为:

STATEDIAGRAMStatereg[->stateout]STATEstateexp[equation][equation]...[trans-stmt…]12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第102页!(2).链式IF-THEN-THEN语句语法:if表达式then状态表达式[else状态表达式];

elseif表达式then状态表达式elseif表达式then状态表达式else状态表达式

可链接的数目没有限制,但最后一个语句必须以分号结尾12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第103页!例:casea==0:1;a==1:2;a==2:3;a==3:0;endcase12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第104页!5.异或因子的形式异或因子部分可以指定一个布尔表达式,这个表达式从简化的乘积形式方程中提取公因子,并与这个方程异或。这样当一个设计在具有异或门结构的器件中实现时,可以大大地简化方程的表达式。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分:实验基础2——able语言共117页,您现在浏览的是第105页!6.关于点扩展点扩展的语言符号为Singal_name.ext信号点扩展类似于属性,它可以精确地描述电路的行为,其主要应用是复杂的语言情况。12/11/2022计算机组成原理清华计算机组成原理实践环节课件第3部分

温馨提示

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

评论

0/150

提交评论