Verilog的基本问题
Basic questions about Verilog
为什么添加连接运算符可以r和0~59之间的正值?
reg [23:0] rand;
rand = {$random} % 60;
为什么拼接运算符{}可以起到如此大的作用?
来自 IEEE-1364
17.9.1 $random function. The system function $random provides a mechanism for generating random numbers. The function returns a new 32-bit random number each time it is called. The random number is a signed integer; it can be positive or negative.
串联结果 {}
始终是无符号数。这在标准中没有明确拼写,但即使是您引用的示例(来自标准)也暗示了它。
有符号数和无符号数的位表示没有区别。只有某些操作关心操作数的符号,包括%
.
一个 32 位有符号整数可以表示介于 -2,147,483,648 和 2,147,483,647 之间的值,因此 $random % 60
的结果将介于 -59 和 59 之间。
一个 32 位无符号整数可以表示 0 到 4,294,967,295 之间的值,因此 {$random} % 60
的结果将从 0 到 59。
为什么添加连接运算符可以r和0~59之间的正值?
reg [23:0] rand;
rand = {$random} % 60;
为什么拼接运算符{}可以起到如此大的作用?
来自 IEEE-1364
17.9.1 $random function. The system function $random provides a mechanism for generating random numbers. The function returns a new 32-bit random number each time it is called. The random number is a signed integer; it can be positive or negative.
串联结果 {}
始终是无符号数。这在标准中没有明确拼写,但即使是您引用的示例(来自标准)也暗示了它。
有符号数和无符号数的位表示没有区别。只有某些操作关心操作数的符号,包括%
.
一个 32 位有符号整数可以表示介于 -2,147,483,648 和 2,147,483,647 之间的值,因此 $random % 60
的结果将介于 -59 和 59 之间。
一个 32 位无符号整数可以表示 0 到 4,294,967,295 之间的值,因此 {$random} % 60
的结果将从 0 到 59。