新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的24×24位低功耗乘法器的设计

基于FPGA的24×24位低功耗乘法器的设计

作者:时间:2011-02-10来源:网络收藏

式中:Pdynamic是动态功耗;Pshort是短路功耗;Pleakage是漏电流功耗。当CMOs的输入信号发生翻转时,会形成一条从电源到地的电流Id对负载电容进行充电,从而产生Pdynamic。一般情况下,Pdynamic占系统功耗的70 %~90%。因此,有效地降低Pdynamic也就降低了电路功耗。
为了降低CMOS输入信号的翻转活动率,本文对部分积相加过程中用到的全加器和半加器进行了必要的改进,从而避免当乘数y的某一位是“0”时输入信号的翻转,本文的全加器和半加器的结构如图3所示。

本文引用地址:http://www.eepw.com.cn/article/191368.htm


图3中,xi+1,xi分别是被乘数的某一位,yi是乘数的某一位,ci,ci+1,co是加法器的进位输出信号,si是加法器的和。
从图1中可以看到,y经过编码以后得到两个数b和c,其中,b是二进制数,c是21位二进制数。由式(5)可得到下式:
z=x×b-x×c (7)
为了降低的延迟,将b和c分别分成三部分(即 b[23:16],b[15:8],b[7:0],c[20:16],c[15:8]和c[7:O]),x分别与这6个数相乘可以得到6组部分积,每一组部分积分别采用图4所示的阵列加法器相加,即得到6个部分积和(sb2,sb1,sb0,sc2,sc1,sc0)。图4中的HA,FA0,FA1分别对应图3中的HA,FA0,FA1;ADD是FA0改进前的全加器。则sb2,sb1和sb0错位相加可以得到x×b的积sb,sc2,sc1和sc0错位相加可以得到x×c的积sc,所有这些错位相加以及得到最后的乘积z都是通过超前进位加法器来实现的。


在由sb,sc得到z的两个47位二进制数相加过程中,用到了3个如图5所示的16位二进制加法器,它包括4个4位超前进位加法器和1个超前进位单元(其中,Pi为进位传播函数,Gi为进位产生函数)。错位相加过程中用到的超前进位加法器与图5中16位超前进位加法器结构类似,在此不再阐述。



4 仿真与功耗测试结果
图6所示是的功能仿真波形图,可以看到,本文所介绍的的功能是正确的。


本文所介绍的乘法器是由VerilogHDL编程实现的,因此,在Altera的芯片EP2C70F896C中进行功耗测试,功耗测试过程中环境变量设置如表1所示。



评论


相关推荐

技术专区

关闭