![EDA技术教程运算符赋值及结构_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-5/23/ed201f93-c7a1-411d-af4e-1d9258ad8865/ed201f93-c7a1-411d-af4e-1d9258ad88651.gif)
![EDA技术教程运算符赋值及结构_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-5/23/ed201f93-c7a1-411d-af4e-1d9258ad8865/ed201f93-c7a1-411d-af4e-1d9258ad88652.gif)
![EDA技术教程运算符赋值及结构_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-5/23/ed201f93-c7a1-411d-af4e-1d9258ad8865/ed201f93-c7a1-411d-af4e-1d9258ad88653.gif)
![EDA技术教程运算符赋值及结构_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-5/23/ed201f93-c7a1-411d-af4e-1d9258ad8865/ed201f93-c7a1-411d-af4e-1d9258ad88654.gif)
![EDA技术教程运算符赋值及结构_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-5/23/ed201f93-c7a1-411d-af4e-1d9258ad8865/ed201f93-c7a1-411d-af4e-1d9258ad88655.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第5 5章章 常用常用VerilogVerilog语法()语法()模块的结构模块的结构数据类型和变量数据类型和变量基本的运算符号基本的运算符号2 貌似极其简单的内容,与大家熟悉的貌似极其简单的内容,与大家熟悉的C语言在许多方面类似语言在许多方面类似 但时刻要记住,但时刻要记住,Verilog是面向硬件的是面向硬件的 在学习中逐渐体会和理解新概念新术语在学习中逐渐体会和理解新概念新术语 不要困惑于各种较多的新名词不要困惑于各种较多的新名词 在练习中学习,在学习中理解和提高在练习中学习,在学习中理解和提高35.1 Verilog5.1 Verilog HDL HDL基本结构基本结构1.Veri
2、log HDL1.Verilog HDL模块的结构模块的结构 VerilogVerilog的基本设计单元是的基本设计单元是“模块模块 (block) ” (block) ” 。 Verilog Verilog 模块的结构由在模块的结构由在modulemodule和和endmoduleendmodule关键词关键词之间的之间的4 4个主要部分组成:个主要部分组成:module block1(amodule block1(a,b,c,b,c,d ),d ); input a input a,b,b,c,c; output d output d; wire x wire x; assign d =
3、a | x assign d = a | x; assign x = ( b & assign x = ( b & c )c );endmoduleendmoduleI/O说明说明端口定义端口定义功能描述功能描述信号类型声明信号类型声明123445.1.1 5.1.1 模块的端口定义模块的端口定义 模块的端口定义模块的输入输出口,格式如下模块的端口定义模块的输入输出口,格式如下 module modele_name ( port1, port2, ) 端口分端口分输入、输出及双向输入、输出及双向 端口是与其它模块端口联系的标识端口是与其它模块端口联系的标识 例例11: : mo
4、dule adder ( count,sum,a,b,cin ); input 2:0 a,b; input cin; output count; output 2:0 sum; assign count,sum=a+b+cin; endmodule5模块引用时端口连接方法模块引用时端口连接方法1.引用时,严格按照模块定义的端口顺序来连接,不用标明原模块引用时,严格按照模块定义的端口顺序来连接,不用标明原模块定义时规定的端口名。定义时规定的端口名。 模块名(连接端口模块名(连接端口1信号名,连接端口信号名,连接端口2信号名,信号名, )2.使用使用“.”符号,符号,标明原模块是定义时规定的端口
5、名。标明原模块是定义时规定的端口名。 模块名(模块名(.端口端口1名(连接信号名(连接信号1名),名),.端口端口1名(连接信号名(连接信号1名)名),)举例举例 My DesignMK M1(.sin(SerialIn),.pout(ParallelOut),);方法方法2可以使端口名与被引用模块的端口对应,不必严格按方法可以使端口名与被引用模块的端口对应,不必严格按方法1的顺序,程序可读性可移植性好。的顺序,程序可读性可移植性好。5.1.1 5.1.1 模块的端口定义模块的端口定义61.模块的内容模块的内容I/O说明的格式说明的格式输入口:输入口: input 信号位宽信号位宽1:0 端口
6、名端口名1; input 信号位宽信号位宽1:0 端口名端口名2; input 信号位宽信号位宽1:0 端口名端口名 i;输出口:输出口: output 信号位宽信号位宽1:0 端口名端口名1; output 信号位宽信号位宽1:0 端口名端口名2; output 信号位宽信号位宽1:0 端口名端口名 i;输入输入/输出口输出口 inout 信号位宽信号位宽1:0 端口名端口名1; inout 信号位宽信号位宽1:0 端口名端口名2; inout 信号位宽信号位宽1:0 端口名端口名 i;5.1.2 5.1.2 模块的内容模块的内容75.1.2 5.1.2 模块的内容模块的内容 reg reg
7、width-1:0 R变量变量1,R变量变量2; Wire wirewidth-1:0 W变量变量1,W变量变量2;2. 模块内与端口有关的信号说明模块内与端口有关的信号说明85.1.2 5.1.2 模块的内容模块的内容3. 3. 逻辑功能定义逻辑功能定义 在在Verilog Verilog 模块中有模块中有3 3种方法可以描述电路的逻辑功能种方法可以描述电路的逻辑功能:(1 1)用用assign 语句语句 assign x = ( b & c );连续赋值语句连续赋值语句常用于描述组合组合逻辑门元件例化门元件例化模块元件例化模块元件例化例化元件名门元件关键字(2 2)用元件例化(用元
8、件例化(instantiate)and myand3( f,a,b,c);v 注注1 1:元件例化即是调用:元件例化即是调用VerilogVerilog HDL HDL提供的元件;提供的元件;v 注注2 2:元件例化包括:元件例化包括门门元件例化和元件例化和模块模块元件例化;元件例化;v 注注3 3:每个实例元件的名字必须每个实例元件的名字必须唯一唯一!以避免与其!以避免与其它调用元件的实例相混淆。它调用元件的实例相混淆。v 注注4 4:例化元件名也可以省略!例化元件名也可以省略!95.1.2 5.1.2 模块的内容模块的内容(3 3)用用 “always” “always” 块语句块语句 a
9、lways (posedge clk) / 每当时钟上升沿到来时执行一遍块内语句每当时钟上升沿到来时执行一遍块内语句 begin if(load) out = data; / 同步预置数据同步预置数据 else out = data + 1 + cin; / 加加1计数计数 end结构说明语句结构说明语句v注注1 1:“always” “always” 块语句块语句常用于描述常用于描述时序时序逻辑,也逻辑,也可描述可描述组合组合逻辑。逻辑。v注注2 2:“always” “always” 块块可用多种手段来表达逻辑关系可用多种手段来表达逻辑关系,如用,如用if-elseif-else语句或语句
10、或casecase语句。语句。v注注3 3: “always” “always” 块语句与块语句与assignassign语句是并发执行语句是并发执行的,的, assignassign语句一定要放在语句一定要放在“always” “always” 块语句之外块语句之外!105.1.2 5.1.2 模块的内容模块的内容v Verilog HDLVerilog HDL模块的模板(仅考虑用于逻辑综合的部分)模块的模板(仅考虑用于逻辑综合的部分)module () ; output 输出端口列表;输出端口列表; input 输入端口列表输入端口列表; /(1)使用)使用assign语句定义逻辑功能语句
11、定义逻辑功能 wire 结果信号名;结果信号名; assign = 表达式表达式 ; /(2)使用)使用always块定义逻辑功能块定义逻辑功能 always () begin /过程赋值语句过程赋值语句 /if语句语句 / case语句语句 / while,repeat,for循环语句循环语句 / task,function调用调用 end115.1.2 5.1.2 模块的内容模块的内容/ (3)元件例化)元件例化 (); / 模块元件例化模块元件例化 (); / 门元件例化门元件例化endmodule例化元件名例化元件名也可也可以省略!以省略!125.1.2 5.1.2 模块的内容模块的内
12、容 标识符标识符 任何用任何用Verilog Verilog HDLHDL语言描述的语言描述的“东西东西”都通过其名字来识别,都通过其名字来识别,这个名字被称为这个名字被称为标识符标识符。 如源文件名、模块名、端口名、变量名、常量名、实例名等。如源文件名、模块名、端口名、变量名、常量名、实例名等。 标识符可由字母、数字、下划线和标识符可由字母、数字、下划线和$ $符号构成;符号构成;但第一个字符但第一个字符必须是字母或下划线,不能是数字或必须是字母或下划线,不能是数字或$ $符号符号! 在在Verilog HDLVerilog HDL中变量名是区分大小写的!中变量名是区分大小写的! 合法合法的
13、名字的名字:A_99_ZReset_54MHz_Clock$Module 不合法不合法的名字:的名字:123a$datamodule7seg.v标识符标识符不能与不能与关键字关键字同名!同名!13顺序执行顺序执行 Vs 并行执行并行执行Very important concept145.1.3 5.1.3 并行执行与顺序执行并行执行与顺序执行assign a=b & c;assign a=b & c;and #2 u1(q,a,b);and #2 u1(q,a,b);always (posedge clk or posedge clralways (posedge clk or
14、 posedge clr) ) begin begin if (clr if (clr) q=0;) q=0; else if (en) q=d; else if (en) q=d; end end并行并行155.1.4 5.1.4 要点总结要点总结!1.1.VerilogVerilog中所有过程块(如中所有过程块(如initial, alwaysinitial, always)、连续赋值)、连续赋值语句、实例引用都是并行的语句、实例引用都是并行的2.2.它们表示的是一种通过变量名互相连接的关系它们表示的是一种通过变量名互相连接的关系3.3.在同一模块中这三者出现的先后顺序没有关系在同一模块中
15、这三者出现的先后顺序没有关系4.4.只有连续赋值语句只有连续赋值语句assignassign和实例引用可以独立于过程块而和实例引用可以独立于过程块而存在于模块的功能定义部分。存在于模块的功能定义部分。165.2 5.2 数据类型及常量、变量数据类型及常量、变量一、数据类型一、数据类型二、常量二、常量三、变量三、变量 175.2 5.2 数据类型及常量、变量数据类型及常量、变量一、数据类型一、数据类型 数据类型是用来表示数字电路中的数据存储和传送单元。数据类型是用来表示数字电路中的数据存储和传送单元。 Verilog HDLVerilog HDL中共有中共有19种数据类型;种数据类型; 其中其中
16、4个最基本的数据类型为:个最基本的数据类型为:integer型parameter型reg型wire型 其 它 数 据 类 型 :其 它 数 据 类 型 :large型、medium型、 scalared型、 small型、time型、tri型、tri0型、tri1型、triand型、trior型、trireg型、vectored型、wand型、wor型等二、常量二、常量 在程序运行过程中,其值不能被改变的量,称为在程序运行过程中,其值不能被改变的量,称为常量常量。数字数字(包括整数,x和z值,负数)parameterparameter常量常量(或称符号常量)185.2 5.2 数据类型及常量、
17、变量数据类型及常量、变量整常数的整常数的3种表达方式:种表达方式:表表 达达 方方 式式说说 明明 举举 例例 完整的表达方式8b11000101或8 hc5 缺省位宽,则位宽由机器系统决定,至少32位hc5 缺省进制为十进制,位宽默认为32位197(1 1)整数型常量整数型常量(即(即整常数整常数)的)的4 4种进制表示形式:种进制表示形式:二进制整数(二进制整数(b b或或B B););十进制整数十进制整数(d d或或D D););十六进制整数十六进制整数(h h或或H H););八进制整数(八进制整数(o o或或O O)。)。v注:注:这里位宽指对应二进制数的宽度。这里位宽指对应二进制数
18、的宽度。195.2 5.2 数据类型及常量、变量数据类型及常量、变量(2 2)x x和和z z值值x x表示不定值,表示不定值,z z表示高阻值;表示高阻值;8b1001xxxx或8 h9x8b1010zzzz或8 haz每个字符代表的二进制数的宽度取决于所用的进制;每个字符代表的二进制数的宽度取决于所用的进制;当用二进制表示时,已标明位宽的数若用当用二进制表示时,已标明位宽的数若用x x或或z z表示某些位,则只有在表示某些位,则只有在最左边最左边的的x x或或z z具有具有扩展性扩展性!为清晰可见,最好直接写出每一位的值!为清晰可见,最好直接写出每一位的值! 例例8bzx = 8bzzzz
19、_zzzx 8bzx = 8bzzzz_zzzx 例例8b1x = 8b0000_001x8b1x = 8b0000_001x“?”是是z z的另一种表示符号,建议在的另一种表示符号,建议在casecase语句中使用语句中使用?表示表示高阻态高阻态z 例例 casez casez (select) (select) 4b?1: out = a; 4b?1: out = a; 4b?1?: out = b; 4b?1?: out = b; 4b?1?: out = c; 4b?1?: out = c; 4b1?: out = d; 4b1?: out = d; endcase endcase20
20、5.2 5.2 数据类型及常量、变量数据类型及常量、变量(3 3)负数负数在位宽前加一个减号,即表示负数在位宽前加一个减号,即表示负数如:如:-8-8d5 /5的补数,的补数,= 8b11111011减号不能放在位宽与进制之间,也不能放在进制减号不能放在位宽与进制之间,也不能放在进制与数字之间!与数字之间!8 d-5 /非法格式非法格式v 为提高可读性,在较长的数字之间可用下划线为提高可读性,在较长的数字之间可用下划线_ _隔开!但隔开!但不可以用在不可以用在和和之间。之间。 如:如:16b1010_1011_1100_1111 /16b1010_1011_1100_1111 /合法合法 8b
21、8b_ _0011_1010 /0011_1010 /非法非法v当常量未指明位宽时,默认为当常量未指明位宽时,默认为3232位。位。10 = 32d10 = 32b101010 = 32d10 = 32b1010- 1 = - 3 2 d 1 = 3 2 b 1 1 1 1- 1 = - 3 2 d 1 = 3 2 b 1 1 1 1 1 1 1 1 = 1 1 1 1 = 32hFFFFFFFF32hFFFFFFFF215.2 5.2 数据类型及常量、变量数据类型及常量、变量(4 4)parameterparameter常量(符号常量)常量(符号常量)用用parameterparameter
22、来定义一个标识符,代表一个常量来定义一个标识符,代表一个常量称为称为符号符号常量。常量。参数型数据的确认符parameterparameter 参数名参数名1 = 1 = 表达式表达式, ,参数名参数名2 = 2 = 表达式表达式, , ;每个赋值语句的右边必须为常数表达式,即只能包含数字或先前定义过的符号常量! parameter addrwidth = 16; /合法格式 parameter addrwidth = datawidth*2; /非法格式常用参数来定义延迟时间和变量宽度。可用字符串表示的任何地方,都可以用定义的参数来代替。参数是本地的,其定义只在本模块内有效。在模块或实例引用
23、时,可通过参数传递改变在被引用模块或实例中已定义的参数!赋值语句表225.2 5.2 数据类型及常量、变量数据类型及常量、变量模块实例引用时参数的传递模块实例引用时参数的传递方法之一方法之一:利用利用defparamdefparam定义参数声明语句!定义参数声明语句!defparam 例化模块名例化模块名.参数名参数名1 = 常数常数表达式表达式, 例化模块名例化模块名.参数名参数名2 = 常数常数表达式表达式, ; defparamdefparam语句在编译时可重新定义参数值。语句在编译时可重新定义参数值。 可综合性问题:一般情况下是不可综合的。可综合性问题:一般情况下是不可综合的。 提示:
24、不要使用提示:不要使用defparamdefparam语句!在模块的实例引用语句!在模块的实例引用时可用时可用“# #”号后跟参数的语法来重新定义参数。号后跟参数的语法来重新定义参数。23 例例 module mod ( out, ina, inb); parameter cycle = 8, real_constant = 2.039, file = “/user1/jmdong/design/mem_file.dat”; endmodulemodule test; mod mk(out,ina,inb); / 对模块对模块modmod的实例引用的实例引用 defparam mk.cycle
25、 = 6, mk.file = “./my_mem.dat”; / 参数的传递参数的传递 endmodule5.2 5.2 数据类型及常量、变量数据类型及常量、变量被引用模块参数名参数名例化模块名例化模块名24 例例 module mod ( out, ina, inb); parameter cycle = 8, real_constant = 2.039, file = “/user1/jmdong/design/mem_file.dat”; endmodulemodule test; mod # (5, 3.20, “./my_mem.dat”) mk(out,ina,inb); / 对
26、模块对模块modmod的实例引用的实例引用 endmodule5.2 5.2 数据类型及常量、变量数据类型及常量、变量模块实例引用时参数的传递模块实例引用时参数的传递方法之二方法之二:利用特殊符号:利用特殊符号“#” 被引用模块参数的传递参数的传递必须与被引用模块中的参数一一对应!必须与被引用模块中的参数一一对应!建议用此建议用此方法!方法!被引用模块名被引用模块名 # # (参数参数1,参数参数2,)例化模块名(端口列表)例化模块名(端口列表);255.2 5.2 数据类型及常量、变量数据类型及常量、变量三、变量三、变量 在程序运行过程中,其值可以改变的量,称为在程序运行过程中,其值可以改变
27、的量,称为变量变量。 其数据类型有其数据类型有1919种,常用的有种,常用的有3 3种:种:网络型(网络型(nets typenets type)寄存器寄存器型(型(register type register type )数组(数组(memory typememory type)1. nets1. nets型变量型变量 定义定义输出始终随输入的变化而变化的变量输出始终随输入的变化而变化的变量。 表示结构实体(如门)之间的表示结构实体(如门)之间的物理物理连接。连接。常用常用netsnets型变量:型变量:wirewire,tritri:连线类型(两者功能一致):连线类型(两者功能一致)wor
28、wor,triortrior:具有线或特性的连线(两者功能一致):具有线或特性的连线(两者功能一致)wandwand,triandtriand:具有线与特性的连线(两者功能一致):具有线与特性的连线(两者功能一致)tri1tri1,tri0tri0:上拉电阻和下拉电阻:上拉电阻和下拉电阻supply1supply1,supply0supply0:电源(逻辑:电源(逻辑1 1)和地(逻辑)和地(逻辑0 0)netsnets型变量型变量不能储存值!不能储存值!265.2 5.2 数据类型及常量、变量数据类型及常量、变量 wire型变量型变量最常用的nets型变量,常用来表示以assign语句赋值的
29、组合逻辑信号。模块中的输入/输出信号类型缺省为wire型。可用做任何方程式的输入,或“assign”语句和实例元件的输出。wirewire 数据名数据名1,1,数据名数据名2, 2, , ,数据名数据名n;n;wiren-1:0wiren-1:0 数据名数据名1,1,数据名数据名2, 2, , ,数据名数据名m;m;或或 wiren:1wiren:1 数据名数据名1,1,数据名数据名2, 2, , ,数据名数据名m;m;每条总线位宽为n共有m条总线wirewire型向量(总线)型向量(总线)275.2 5.2 数据类型及常量、变量数据类型及常量、变量 定义定义对应对应具有状态保持作用具有状态保
30、持作用的电路元件(如触发器、的电路元件(如触发器、寄存器等)寄存器等), ,常用来表示常用来表示过程块过程块语句(如语句(如initialinitial,alwaysalways,tasktask,functionfunction)内的指定信号)内的指定信号 。 常用常用registerregister型变量:型变量:reg:常代表触发器integer:32位带符号整数型变量real:64位带符号实数型变量time:无符号时间变量纯数学的纯数学的抽象描述抽象描述2. register2. register型变量型变量285.2 5.2 数据类型及常量、变量数据类型及常量、变量vregister
31、register型变量与型变量与netsnets型变量的根本区别是:型变量的根本区别是: registerregister型型变量需要被明确地赋值,并且在被重新赋值前一直保持变量需要被明确地赋值,并且在被重新赋值前一直保持原值。原值。vregisterregister型变量必须通过型变量必须通过过程过程赋值语句赋值!不能通过赋值语句赋值!不能通过assignassign语句赋值!语句赋值!v在过程块内被赋值的每个信号必须定义成在过程块内被赋值的每个信号必须定义成registerregister型!型!295.2 5.2 数据类型及常量、变量数据类型及常量、变量 reg型变量型变量定义定义在过程
32、块中被赋值的信号在过程块中被赋值的信号,往往往往代表触发器,代表触发器,但但不一定不一定就是触发器(也可以是组合逻辑信号)!就是触发器(也可以是组合逻辑信号)!regreg 数据名数据名1,1,数据名数据名2, 2, , ,数据名数据名n;n;regn-1:0regn-1:0 数据名数据名1,1,数据名数据名2, 2, , ,数据名数据名m;m;或或 regn:1regn:1 数据名数据名1,1,数据名数据名2, 2, , ,数据名数据名m;m;每个向量位宽为n共有m个reg型向量 例例 reg4:1 regc,regd reg4:1 regc,regd; /; / /regc,regdreg
33、c,regd为为4 4位宽的位宽的regreg型向量型向量regreg型向量(总线)型向量(总线)305.2 5.2 数据类型及常量、变量数据类型及常量、变量用用regreg型变量生成型变量生成组合逻辑组合逻辑举例举例:module rw1( a, b, out1, out2 ) ; input a, b; output out1, out2; reg out1; wire out2; assign out2 = a ; always (b) out1 = b;endmoduleaout2BUFFbINVout1过程赋值语句连续赋值语句电平电平触发Verilog中中reg与与wire的区别的区
34、别regreg型变量既可生成触发器,型变量既可生成触发器,也可生成组合逻辑;也可生成组合逻辑; wirewire型变量只能生成组合逻辑。型变量只能生成组合逻辑。315.2 5.2 数据类型及常量、变量数据类型及常量、变量用用regreg型变量生成型变量生成触发器触发器举例举例:module rw2( clk, d, out1, out2 ); input clk, d; output out1, out2; reg out1; wire out2; assign out2 = d & out1 ; always (posedge clk) begin out1 = d ; endend
35、module过程赋值语句连续赋值语句dout2AND2i1clkout1D QDFF沿沿触发325.2 5.2 数据类型及常量、变量数据类型及常量、变量 定义定义由若干个相同宽度的由若干个相同宽度的regreg型向量构成的数组。型向量构成的数组。 Verilog HDL通过reg型变量建立数组来对存储器建模。 memory型变量可描述RAM、ROM和reg文件。 memory型变量通过扩展reg型变量的地址范围来生成:regn-1:0regn-1:0 存储器名存储器名m-1:0m-1:0; ;或或 regn-1:0regn-1:0存储器名存储器名m:1m:1; ;每个存储单元位宽为n共有m个存
36、储单元3. memory3. memory型变量型变量数组数组MAXPlusMAXPlus II II不支持!不支持!vVerilogVerilog HDL HDL中的变量名、参数名等标记中的变量名、参数名等标记符是对大小写字母敏感的!符是对大小写字母敏感的!335.2 5.2 数据类型及常量、变量数据类型及常量、变量 含义不同含义不同例 regn-1:0 rega;/一个n位的寄存器 reg mema n-1:0 ;/由n个1位寄存器组成的存储器 必须指明存储单元的地址地址!0n-10n-1n-2地址 赋值方式不同赋值方式不同 一个一个n n位的寄存器可用一条赋值语句赋值;位的寄存器可用一条
37、赋值语句赋值; 一个完整一个完整的存储器则不行!若要对某存储器中的存储单元进行的存储器则不行!若要对某存储器中的存储单元进行读写操作,必须指明该单元在存储器中的读写操作,必须指明该单元在存储器中的地址地址! 例 rega = 0; /合法赋值语句 mema = 0 ; /非法赋值语句 mema8 = 1 ; /合法赋值语句 mema1023:0 = 0 ;/合法赋值语句memory型变量型变量与与reg型变量型变量的区别的区别345.3 5.3 运算符及表达式运算符及表达式一、算术运算符一、算术运算符二、逻辑运算符二、逻辑运算符三、位运算符三、位运算符四、关系运算符四、关系运算符五、等式运算符
38、五、等式运算符 六、缩减运算符六、缩减运算符七、移位运算符七、移位运算符八、条件运算符八、条件运算符九、位拼接运算符九、位拼接运算符十、运算符的优先级十、运算符的优先级 355.3 5.3 运算符及表达式运算符及表达式运算符按运算符按功能功能分为分为9 9类类:算术算术运算符运算符逻辑逻辑运算符运算符关系关系运算符运算符等式等式运算符运算符缩减缩减运算符运算符条件条件运算符运算符位位运算符运算符移位移位运算符运算符位拼接位拼接运算符运算符 运算符按运算符按操作数的个数操作数的个数分为分为3 3类类:单目单目运算符运算符带一个操作数带一个操作数 逻辑非!,按位取反逻辑非!,按位取反 ,缩减运算,
39、缩减运算符,移位运算符符,移位运算符双目双目运算符运算符带两个操作数带两个操作数 算术、关系、等式运算符,逻辑算术、关系、等式运算符,逻辑、位运算符的大部分、位运算符的大部分三目三目运算符运算符带三个操作数带三个操作数 条件运算符条件运算符365.3 5.3 运算符及表达式运算符及表达式一、算术运算符一、算术运算符算术运算符算术运算符说明说明 */%加减乘除求模双双目运算符 进行整数除法运算时,结果值略去小数部分,只取整数部分!进行整数除法运算时,结果值略去小数部分,只取整数部分! % %称为称为求模求模(或(或求余求余)运算符,要求)运算符,要求% %两侧均为两侧均为整型整型数据;数据; 求模运算结果值的符号位取第一个操作数的符号位!求模运算结果值的符号位取第一个操作数的符号位! 例例 -11%3 -11%3 结果为结果为-2-2 进行算术运算时,若某操作数为不定值进行算术运算时,若某操作数为不定值x x,则整个结果也为,则整个结果也为x x。 MAX + PLUS IIMAX + PLUS II不支持不支持“/ /” ” 和和“%”运算!运算!QuartusQuartus II II都支持!都支持!37
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺装修合同样本
- 水暖电消防承包合同范本
- 2025农作物种子买卖合同范本
- 柴油运输合同范本年
- 演出化妆服务合同
- 范文二手房买卖定金合同
- 委托合同行纪合同居间合同
- 2025【合同范本】房屋土建施工合同范本
- 2024年中考物理(广州卷)真题详细解读及评析
- 简单的橱柜合同范本
- 河北省邯郸市永年区2024-2025学年九年级上学期期末考试化学试卷(含答案)
- 消防员证考试题库2000题中级
- 农产品质量安全检测技术
- 【蝉妈妈】2024年抖音电商酒水行业趋势洞察报告
- 海洋垃圾处理行业可行性分析报告
- 公共部门绩效管理案例分析
- 无人机培训计划表
- 2024届高考英语词汇3500左右
- 2024年-2025年海船船员考试-船舶人员管理考试题及答案
- 2025届安徽省皖南八校联盟高二物理第一学期期末统考试题含解析
- 安全开发流程培训文件课件
评论
0/150
提交评论