verilog幂次方_verilog语法实例学习(3)

本文介绍了Verilog中幂次方运算符和其他算术运算符的使用,包括加减乘除、取模以及负数运算。在Verilog中,乘法结果位宽为操作数位宽之和,除法结果不包含小数部分,取模运算符的结果符号取决于第一个操作数。同时,文章还讨论了算术运算中不确定值的影响以及不同类型数据的运算规则。此外,还涵盖了位运算符、逻辑运算符、关系运算符及其优先级,并提供了多个示例代码以帮助理解。
摘要由CSDN通过智能技术生成

+,-,*,/,**(加/减/乘/除/幂运算),乘法运算的结果的位宽是乘数和被乘数位宽的和。

在进行整数的除法运算时,结果要略去小数部分,只取整数部分;而进行取模运算时(%,亦称作求余运算符)结果的符号位采用模运算符中第一个操作数的符号。

-10%3 =-1 11%-3 结果为2

注意:在进行算术运算时,如果某一个操作数有不确定的值x,则整个结果也为不确定值x。下面的代码演示了算术运算符的操作,其结果为:

如果不指定reg signed类型,负数的运算会被当作无符号数运算,从而得到错误的结果。

Compiler version M-2017.03-SP2-11; Runtime version M-2017.03-SP2-11;  Dec 28 09:33 2018

32 +          15 =          47

32 -          15 =          17

15 -          32 =         -17

32 *          15 =         480

32 *         -32 =       -1024

32 /          15 =           2

-32 mod          15 =          -2

32 mod          -3 =           2

3 **           2 =           9

32 +         15 =         47

32 -         15 =         17

15 -         32 = 4294967279

32 *         15 =        480

32 * 4294967264 = 4294966272

32 /         15 =          2

4294967264 mod         15 =         14

32 mod 4294967293 =         32

3 **          2 =          9

V C S   S i m u l a t i o n   R e p o r t

`timescale 1ns/1ns

module operator;

reg signed [31:0] a = 32;

reg signed [31:0] b = 15;

reg signed [31:0] c = -32;

reg signed [31:0] d = -3;

reg signed [31:0] e = 3;

reg signed [31:0] f = 2;

reg signed [31:0] r = 1;

reg [31:0] a1 = 32;

reg [31:0] b1 = 15;

reg [31:0] c1 = -32;

reg [31:0] d1 = -3;

reg [31:0] e1 = 3;

reg [31:0] f1 = 2;

reg [31:0] r1 = 1;

initial begin

r = a + b;

$display("%d + %d = %d",a, b, r);

r = a - b;

$display("%d - %d =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值