Verilog-A 中运算时由数据类型而来的一个问题


这是在利用 Verilog-A 搭建系统仿真 model 时遇到的问题,这里记录一下。

在下面的 Verilog-A 代码片断中,定义 mvar 为实数类型的变量,并对其赋值:


real mvar;
mvar=2/3*9.0;

这里最后得到的 mvar=9.0 而不是6.0。
原因在于 Verilog-A 代码中的 2/3 这部分,由于是两个整数相除,得到是最近的整数,即为1。
而这一部分的运算并不会因为 mvar 的数据类型而发生改变。


版权声明: 本站文章版权所有,转载须以超链接形式标明文章原始出处和版权信息。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注