新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 20×18位符号定点乘法器的FPGA实现

20×18位符号定点乘法器的FPGA实现

作者:时间:2009-06-16来源:网络收藏

SMIC提供的0.18 vm标准单元库中,4-2压缩CMPR42的逻辑表达式为:


在硬件实现该模块时,因为有10个部分积,一共调用4-2压缩4次,分为3级,从顶到底为2―1―1型。4-2压缩互联如图3所示。

1.3 溢出处理及四舍五入
定点数相乘不会溢出,只不过结果的最终位数有所增加。20 b×18 b结果为38 b。有时38 b并不全部存储,只需其中的一些位就可以。这涉及到四舍五人。假设数A共20位,1位,5位整数位,14位小数位,数B共18位,1位位,2位整数位,15位小数位,结果格式同A。
如图4所示,因为只保留5位整数,把前3位都看成是位,如果不同,说明溢出;反之,没溢出。再根据前两位真正的符号判断是上溢还是下溢,若为O,则上溢,为20'h7ffff,反之,下溢,为20'h80001。在逻辑设计上用个选通可以实现,Verilog HDL代码为:assignceil=data in[37]:20'h80001:20'h7ffff;其中data in[37]为最高位。


由于Verilog HDL语言是应用最为广泛的硬件描述语言之一,可以进行各种层次的逻辑设计,也可以进行仿真验证,时序分析,并且可移植到不同产家的不同芯片中,代码可读性比较强,因此本模块设计用Ver-ilog HDL语言。
如果要舍入的数没有溢出,那么还要考虑小数部分的舍入。若舍入数为正数,舍入相邻位为1,舍入时必须进1;反之不用。若舍人数为负数,舍入相邻位为1且舍人相邻位后面还有一位为1,则舍入时需加1;反之,不加1。



评论


相关推荐

技术专区

关闭