微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 新手求助!关于定点数加法,乘法。

新手求助!关于定点数加法,乘法。

时间:10-02 整理:3721RD 点击:

小弟方向是射频,最近才接触FPGA,只会写一点逻辑控制的,对于定点数的运算真的是一头雾水,希望论坛的各位大神可以稍稍加以点拨。
对于16bit有符号数 signed [15:0] A ;signed [15:0] B(纯小数,没有整数位,小数点就在符号位后面);
问题1: 如果进行加法运算,由于进位,SUM好像是17bit,但是我们只能用16bit表示,那我怎么选取16bit呢?是选取后面16bit是吗,多出来的进位是不是是sum的第一位,然后我可以忽略?
问题2:如果进行乘法运算,那么结果就是32bit,那么符号位为2bit,小数位为30bit,那我怎么选取16bit呢,是选取[30:15]吗?第一个符号位我就不要了?

1:有符号加法直接补码加,肯定要取前16bit,你把进位都丢了算的数值还有什么意思,当然我这样理解,具体结果做什么用,把你需要的数留下来就可以了
2:乘法符号位直接xor,这样符号位就只有1位,剩下的数据位相乘,如果只能截取16bit那就留前16bit,把更低位丢掉
我觉得这是个数学问题,怎么取舍看你需要什么,按数值来说的话一般是把低位舍弃掉

RE: 新手求助!关于定点数加法,乘法。


   1,16bit加法结果你还取16bit的话,必须对结果做饱和处理。或者你确认不会溢出,那就什么都不做,丢掉高位。2,16bit有符号相乘结果是31bit。不做饱和的话只能从高位往地位截

关键是,你取多少bit都行,要有算法指导,算法给出定点位宽

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top