[PPT模板]5运算符及表达式.ppt

上传人:音乐台 文档编号:1995652 上传时间:2019-01-29 格式:PPT 页数:35 大小:368.50KB
返回 下载 相关 举报
[PPT模板]5运算符及表达式.ppt_第1页
第1页 / 共35页
[PPT模板]5运算符及表达式.ppt_第2页
第2页 / 共35页
[PPT模板]5运算符及表达式.ppt_第3页
第3页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[PPT模板]5运算符及表达式.ppt》由会员分享,可在线阅读,更多相关《[PPT模板]5运算符及表达式.ppt(35页珍藏版)》请在三一文库上搜索。

1、Verilog 语法总结:,标识符 (P125) 数据类型 (P128 wire reg parameter) 常量(P126 整数) 运算符及表达式(P132) 语句(P142) 注释,运算符与表达式,p132,不可综合,不建议直接使用,运算符按所带操作数的个数分为:,单目运算 双目运算 三目运算,1.逻辑运算符,逻辑操作符只对逻辑值运算。逻辑操作符的结果为一位:1,0或x。 操作数由多位组成,应将其看做一个整体: 若操作数为全0,则其逻辑值为false,即0 若操作数有某一位为1,则其逻辑值为true,即1 若存在不定态,则逻辑运算也是不定态x !实现为或非结构,&实现为或与结构,|实现为

2、或或结构,即会先对操作数的各比特位进行或的操作,! (单目) & |,中间不能有空格,练:设寄存器变量a=4b0110; b=4b0000,2.关系运算符,进行关系运算时: 如果声明的关系是假,则返回值是0; 如果声明的关系是真,则返回值是1; 如果某个操作数是不定值,则关系是模糊的,返回不定值; 实现为对应类型的比较器,比较位数和操作数的位数较大者一致,位数较少者进行符号扩展(reg类型或wire类型变量固定扩展0,正常量扩展0,负常量扩展1), = =,3.相等与全等运算符,相等运算符:参与比较的两个操作数,必须逐位相等比较的结果才为1,如果某些位是不定态或高阻值,其相等比较的结果是不定值

3、。 全等运算符:对不定态或高阻值位也进行比较,两个操作数必须完全一致结果才位1,否则为0。 a=5b11x01 ; b=5b11x01 a=b得到的结果为不定值 a=b得到的结果为1.,= 全等 !=非全等,= 逻辑相等 != 逻辑不等,不可综合,4.位运算符,例:A=5b11001,B=5b10101,A=5b00110,A&B=5b10001,A | B=5b11101,AB=5b01100,AB=5b10011, 按位取反(单目) & 按位与 | 按位或 按位异或 ,按位同或,按位操作符对操作数中相对应“位”运算。,不同长度的数据进行位运算时,系统会自动在位数少的操作数的高位补0。(如果

4、短的操作数最高位是x,则扩展的部分也是x),以使两个操作数按位进行操作。 a = 4b1011; b = 8b01010011; c = a | b;,regb = 4b1 0 1 0 regc = 4b1 x 1 0 num = regb ,a零扩展为 8b00001011,5.归约(缩减)运算符(单目),在单一操作数的所有位上进行操作,并产生1位运算结果。,例:A=5b11001,&A=(1&0)&0)&1)&1=0,|A=1,A=(10)0)1)1=0,& 归约与 | 归约或 归约异或 &归约与非 | 归约或非 归约异或非,归约运算符实现为一个对应操作数比特位数的相应功能的逻辑门,6.移

5、位运算符,左移 ,an 把a右移n位,an 把a左移n位,a = 4b1010,b = a2,则b?,b = 4b1000,b = 6b101000,固定的移位运算实现为一些硬件连线,7.条件运算符(三目),信号 = 条件表达式?表达式1:表达式2,当条件成立时,信号取表达式1的值,反之取表达式2的值。,例:二选一多路选择器 module mux2_1(out,a,b,sel); output out; input a,b,sel; assign out=sel?b:a endmodule,若sel为0则out =a;若sel为1则out = b。 如果sel为x或z,若a = b =0,则o

6、ut = 0; 若ab,则out值不确定。,8.连接/位拼接运算符,连接运算符是将两组或两组以上的信号,拼接成一组新的信号。 信号1的某些位,信号2的某些位, 例:a , b3, c, 3b101 如果a是一位的信号,c是三位的信号,则拼接之后的位宽为8位。 注意:常数表达式前面的位宽不能省略。如果省略则默认32位。,对于一些重复信号的连接,连接运算可以简化表达方式na。 a是被连接的对象,n 是重复的次数,表示将a重复连接n次。 4w w,w,w,w b,3a,b b,a,b,a,b,a,b,用连接运算符描述全加器 module full_adder(sum_out,c,ina,inb) o

7、utput3:0 sum_out; output carry_out; input3:0ina,inb; input carry_in; assign carry_out,sum_out=ina+inb+ carry_in; endmodule,9.算术运算符,负数使用补码表示,并根据最终位数进行符号扩展。 减运算一般用加法器实现,减一个数相当于加上该数的反码再加上1 算数运算中操作数整体参与运算,所以某一位是x或z,则结果为x。,+ - * / %,不建议直接使用,练习,高,低,注:“与”操作符的优先级总是比相同类型的“或”操作符高,优先级,空格和注释,空格在文本中起一个分隔符的作用,没有其

8、他用处。 单行注释符用 /* 多行注释符用 /* - */,ab & xy !a | ab asize -1 为了提高程序的可读性,明确表达各运算符间的优先关系,建议使用括号。, (ab)& (xy), (!a )|(ab), a(size -1),练习:,1.下列标识符合法的是:,shift_reg_a BUS263 _ddr1_t2 o$241 (a+b),a*b_net 34net _daaiDA and AND,2. P,Q,R都是4位输入,下面那种表达形式正确?,A.input P3:0,Q,R; B.input P,Q,R3:0; C.input P3:0,Q3:0,R3:0; D

9、.input 3:0 P, 3:0 Q, 3:0 R; E. input 3:0 P, Q, R;,3.根据以下两条语句,从选项中选择正确答案,reg7:0 A; A=2hff; A= A. 8b0000_0011 B. 8hff C. 8b1111_1111 D. 2b11,reg7:0 B; B=8bz0; A. 8b0000_00z0 B. 8bzzzz_0000 C. 8b0000_zzz0 D. 8bzzzz_zzz0,4b1010 & 4b1101=1b1 4b1011&4b0100=4b1111 4b1100=1b1 !4b1011 | !4b0000 =1b1 &4b1101=

10、1b1 4b01011=5b01011,4.从下面表达式中选出正确的,&按位与 &逻辑与,按位取反 !逻辑非,5.下列程序中always状态将描述一个带异步Nreset和Nset输入端的上升沿触发器,那么括号内应选择(),always( ) if(!Nrest) Q=0; else if(!Nset) Q=1 else Q=D;,A. negedge Nset or posedge clk,B. posedge clk,C.negedge Nrset or posedge clk,D.negedge Nrset or negedge Nset or posedge clk,E.negedge

11、Nrset or negedge Nset,模块中的功能定义部分可以有一下三种:,实例元件 and u1(q,a,b); assign 语句 assign q=a 如果这3项同时出现在一个模块中,它们是同时执行,也就是并发的。并且相互不能嵌套使用。 只有实例引用语句和assign语句可以独立于过程块而存在于模块的功能定义部分,条件语句等都只能出现在过程块中。,内置元语,Verilog基本单元提供基本的逻辑功能,也就是说这些逻辑功能是预定义的,用户不需要再定义这些基本功能。 基本单元是Verilog开发库的一部分。大多数ASIC和FPGA元件库是用这些基本单元开发的。基本单元库是自下而上的设计方

12、法的一部分。,not 非门 and与门 or或门 nand与非门 nor或非门 xor异或门 xnor异或非门 buf缓冲器,(26-8),and u1(out,in1,in2,in3) 实例化时实例的名字是可选项。 在端口列表中,先说明输出端口,然后是输入端口。,module text3 ( k0, k1, dr0,dr1,dr2, dr3); input k0,k1; output dr0,dr1,dr2,dr3 reg dr2 ,dr3; and u1(dr0,k0,k1); /与门 assign dr1 = !(k0 /异或门 endmodule,比较,reg d1,d2,d3; always(posedge clk) begin out=d3; d3=d2; d2=d1; d1=in; end,reg d1,d2,d3; always(posedge clk) begin d1=in; d2=d1; d3=d2; out=d3; end,以上两段程序哪个与下面等价?,reg d1,d2,d3; always(posedge clk) begin d1=in; d2=d1; d3=d2; out=d3; end,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1