在FPGA中,随着信号处理的层次加深,对信号进行乘、累加、滤波等运算后,可能输入时仅为8位位宽的信号会扩展成几十位位宽,位宽越宽,占用的硬件资源就越多,但位宽超过一定范围后,位宽的增宽并不会对处理精度带来显著的改善,这时就需要对信号进行截位。写过FPGA HDL代码的童鞋都应该知道,截位是最为经常的一种操作。
一般来说,截位只需截掉低几位即可,这是最简单的做法;对于无符号数来说,这样做也没有问题;当然也有四舍五入的截位方法,就是给次低位加一后再进行截位。
下面讨论三种截位截略:1)直接截位;2)负数截位后加1;3)负数取绝对值后再截位。在matlab中模拟FPGA截位过程,运行如下一段程序,得到四幅图。
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) | Powered by Discuz! X3.2 |