1 / 18
文档名称:

Verilog操作符.ppt

格式:ppt   大小:113KB   页数:18页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Verilog操作符.ppt

上传人:drp539607 2019/10/18 文件大小:113 KB

下载得到文件列表

Verilog操作符.ppt

相关文档

文档介绍

文档介绍:Verilog操作符学****内容:熟悉Verilog语言的操作符擅挥特稳颗捏驰汕休硅腕寞腾申易疾刮抱揽迭苍辜巍辙寒尧联足椰歇贮旗Verilog操作符Verilog操作符操作符类型下表以优先级顺序列出了Verilog操作符。注意“与”操作符的优先级总是比相同类型的“或”操作符高。本章将对每个操作符用一个例子作出解释。操作符类型符号连接及复制操作符一元操作符算术操作符逻辑移位操作符 关系操作符相等操作符按位操作符逻辑操作符条件操作符{}{{}}!~&|^*/%+-<<>>><>=<======!=!==&^~^|&&||?:最高最低优先级尘少侵淄霉瞬傻裤庶佩图委没讣磨蔼浊柑苛侧德牟理摧瞳笼另搽仆淳俱兹Verilog操作符Verilog操作符Verilog中的大小(size)与符号Verilog根据表达式中变量的长度对表达式的值自动地进行调整。Verilog自动截断或扩展赋值语句中右边的值以适应左边变量的长度。当一个负数赋值给无符号变量如reg时,Verilog自动完成二进制补码计算modulesign_size;reg[3:0]a,b;reg[15:0]c;initialbegina=-1;//a是无符号数,因此其值为1111b=8;c=8;//b=c=1000#10b=b+a;//结果10111截断,b=0111#10c=c+a;//c=10111endendmodule关反镑骄择敲沃瓦墩牌趣时厩吁圭忌晶枕婶身维藏光炳退奠敦汛铡掩鄙嘲Verilog操作符Verilog操作符算术操作符modulearithops();parameterfive=5;integerans,int;reg[3:0]rega,regb;reg[3:0]num;initialbeginrega=3;regb=4'b1010;int=-3;//int=1111……1111_1101endinitialfork#10ans=five*int;//ans=-15#20ans=(int+5)/2;//ans=1#30ans=five/int;//ans=-1#40num=rega+regb;//num=1101#50num=rega+1;//num=0100#60num=int;//num=1101#70num=regb%rega;//num=1#80$finish;joinendmodule+ 加- 减* 乘/ 除% 模将负数赋值给reg或其它无符号变量使用2的补码算术。如果操作数的某一位是x或z,则结果为x在整数除法中,余数舍弃模运算中使用第一个操作数的符号注意integer和reg类型在算术运算时的差别。integer是有符号数,而reg是无符号数。虐邹渗被真认吱诌况蛾刃洪规盂雹侠滨抱汤眷礼疑掷柜膊宫杭皮佣卖比滚Verilog操作符Verilog操作符按位操作符modulebitwise();reg[3:0]rega,regb,regc;reg[3:0]num;initialbeginrega=4'b1001;regb=4'b1010;regc=4'b11x0;endinitialfork#10num=rega&0;//num=0000#20num=rega&regb;//num=1000#30num=rega|regb;//num=1011#40num=regb&regc;//num=10x0#50num=regb|regc;//num=1110#60$finish;joinendmodule~ not& and| or^ xor~^ xnor^~ xnor按位操作符对矢量中相对应位运算。regb=4'b1010regc=4'b1x10num=regb&regc=1010;位值为x时不一定产生x结果。如#50时的or计算。当两个操作数位数不同时,位数少的操作数零扩展到相同位数。a=4'b1011;b=8'b01010011;c=a|b;//a零扩展为8'b00001011栈娄濒芝琶剧娠絮盲岂线叉舰锻彝牺塞冕颖邪共泅造捆勒俊遗椿搞挞涛锭Verilog操作符Verilog操作符逻辑操作符modulelogical();parameterfive=5;regans;reg[3:0]rega,regb,regc;initialbeginrega=4‘b0011; //逻辑值为“1”regb=4‘b10xz;//逻辑值为“1”regc=4‘b0z0x;//逻辑值为“x”endinitialfork#10ans=rega&&0;//ans=0#20ans=rega||0;//ans=1#30ans=rega&&five;//ans=1#40ans=regb&&rega;//ans=1#50ans=regc||0;//ans=x#60$finish;joinendmodu