这是在利用 Verilog-A 搭建系统仿真 model 时遇到的问题,这里记录一下。
在下面的 Verilog-A 代码片断中,定义 mvar 为实数类型的变量,并对其赋值:
real mvar;
mvar=2/3*9.0;
这里最后得到的 mvar=9.0 而不是6.0。
原因在于 Verilog-A 代码中的 2/3 这部分,由于是两个整数相除,得到是最近的整数,即为1。
而这一部分的运算并不会因为 mvar 的数据类型而发生改变。
这是在利用 Verilog-A 搭建系统仿真 model 时遇到的问题,这里记录一下。
在下面的 Verilog-A 代码片断中,定义 mvar 为实数类型的变量,并对其赋值:
real mvar;
mvar=2/3*9.0;
这里最后得到的 mvar=9.0 而不是6.0。
原因在于 Verilog-A 代码中的 2/3 这部分,由于是两个整数相除,得到是最近的整数,即为1。
而这一部分的运算并不会因为 mvar 的数据类型而发生改变。