verilog中除法运算 结果为小数,怎么处理?verilog语言,两个reg型数据进行除法运算,不能保证整除,如果结果为小数,应该怎么对该数据进行存储,或者说结果应该用什么类型的数据接收,系统的接收

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 06:48:17
verilog中除法运算 结果为小数,怎么处理?verilog语言,两个reg型数据进行除法运算,不能保证整除,如果结果为小数,应该怎么对该数据进行存储,或者说结果应该用什么类型的数据接收,系统的接收

verilog中除法运算 结果为小数,怎么处理?verilog语言,两个reg型数据进行除法运算,不能保证整除,如果结果为小数,应该怎么对该数据进行存储,或者说结果应该用什么类型的数据接收,系统的接收
verilog中除法运算 结果为小数,怎么处理?
verilog语言,两个reg型数据进行除法运算,不能保证整除,如果结果为小数,应该怎么对该数据进行存储,或者说结果应该用什么类型的数据接收,系统的接收规则是什么?
回复请尽量详细,

verilog中除法运算 结果为小数,怎么处理?verilog语言,两个reg型数据进行除法运算,不能保证整除,如果结果为小数,应该怎么对该数据进行存储,或者说结果应该用什么类型的数据接收,系统的接收
reg是没有小数的,不过可以引入小数概念,在除之前吧被除数*2^n,让结果等于整数(或者近似),再在后面的运算中吧结果的低n位截取掉(相当于除了2^n).例如,要做1/3 x 5的话可以先*256(这个数越高的话结果更精确一些,按照需求选),结果就变成256/3=85 然后85*5=425=1_1010_1001b 最后在去掉低8位,结果变成了1,也可以进行四舍五入,就是先去掉低7位变成11(相当于1.5)然后在+1(相当于0.5)结果变成了100,在去掉小数点的那一位,变成了10也就是2,四舍五入的原理就是用带一位小数的数加上0.5然后在取整数部分,1.4+0.5=1.9结果还是1,1.5+05=2结果就是2.希望能帮助你!