摘 要:为了加快阵列乘法器的运算速度,降低延迟,提出了一种基于4选1多路选择器的乘法器设计方案。这种方案在每一步运算中同时处理两位操作数,使产生的部分积数量减少了一半,显著提高了乘法器的运算速度。FSATA乘法器采用VHDL语言进行编码,在Quartus上进行的仿真表明,相比于采用时序电路完成的设计,FSATA乘法器有更优的性能。
关键词:阵列乘法器;FSATA乘法器;多路选择器;VHDL;Quartus
乘法器的设计与实现是计算机体系结构技术发展过程中重要的研究课题之一。在绝大部分的数字信号处理算法中,乘法操作都占有非常大的比例。随着计算机技术以及计算密集型应用的快速发展,快速的数字乘法器的重要性越来越突出。
阵列乘法器由许多重复的结构单元构成阵列,特别适合于使用VLSI实现,是乘法器设计中广泛采用的方法。针对如何提升阵列乘法器的运算性能,国内外的研究人员提出了很多优秀的设计方案。本文综合考虑这些方案的优缺点,设计了一种基于4选1多路选择器的阵列乘法器设计方案,一次并行处理多位操作数,使部分积产生的数量大大减少,加快了处理速度。
有限状态机FSA(Finite State Automaton)是数字逻辑电路和数字系统的重要组成部分,能够准确实现数字系统核心部件的设计,实现高效率高可靠性的逻辑控制。FSA的设计方案结构模式简单、工作稳定可靠,并且使用VHDL描述时层次分明,易读易懂。
由于基于FSA技术设计的控制器拥有极快的工作速度以及高可靠性等诸多优点,本文利用FSA的设计优势,完成了FSATA乘法器的设计。通过仿真并与常用设计方案进行对比分析,验证了FSATA乘法器有良好的性能。
1 相关工作
向淑兰[1]等人提出了应用于数字信号处理器中的一种阵列乘法器的改进方法,通过调整部分积的分布位置,减少了垂直方向上部分积相加的延迟时间。其不足在于没有比较功耗这一个在乘法器设计中的重要参数,而且随着乘数位数的增长,其速度优势逐渐减小。
胡正伟[2]等人提出一种多功能阵列乘法器的设计方法,能同时计算多种精度的乘法运算,实现了不同数制的乘法运算能共享硬件资源,大大提高了乘法器的性能。其不足之处在于其采用的超前进位加法器和流水线技术占用了大量的逻辑器件。
Dimitris Bekiaris[3]等人通过对操作数进行了截断处理,提出了基于多路选择器的阵列乘法器——Truncation Multiplier(TAM乘法器)的设计方案,有效规范了乘法器的设计结构,提高了乘法运算速度。但是选用的4选1多路选择器还有待进一步优化,从而减少使用的逻辑器件数量。
其他对阵列乘法器的改进,从不同方面对阵列乘法器进行了改善,取得了很好的效果,但是仍有进一步改进的余地。基于华莱士树的阵列乘法器通过压缩部分积[4-6],提高了运算速度,但是设计方案产生了不规则的电路连接布局。
本文对TAM乘法器设计的实现方法进行了改进,引入了有限状态机,从单纯的软件设计的角度,提出了基于有限状态机的阵列乘法器FSATA(Finite State Automaton Truncation)。
在VHDL原码中可以不对状态机进行编码,在综合过程中综合器可以提供状态编码。状态机编码主要有以下5种编码方式:①Johnson编码:使用较少的触发器,较多的组合逻辑。②Gray编码:相邻两个状态的编码只有一位不同,减少了产生瞬变的次数。③One-hot编码:使用较多的触发器,较少的组合逻辑,虽然占用的资源较多,但其简单的编码方式简化了状态译码逻辑,提高了状态转换速度。④Sequential编码。⑤Minimal bits编码。
鉴于One-hot编码能加快状态转换速度,该乘法器设计采用此编码。
(4)一般FSA的VHDL描述包含4个部分:
①说明部分:定义用到的参数的数据类型;
②主控时序逻辑部分:负责状态机运转,在时钟信号驱动下完成状态之间的转换;
③主控组合逻辑部分:根据状态机外部输入的状态控制信号和当前状态确定下一状态的取值以及对外部或内部其他进程输出控制信号的取值;
④辅助逻辑部分:配合状态机的主控组合逻辑和主控时序逻辑进行工作,完善和提高系统性能。
根据提出的设计,共有7个进程同时并行执行,图4所示为其中一个进程的运行情况。初始状态S0,根据xiyi(i从1~n-1)的不同,分别到达状态S1~S7,每一个状态对应一个输出,7个进程并行结束之后,顺序完成各个数据的求和进程。
FSATA乘法器采用VHDL进行编码,由两个算法完成:状态转换算法和控制信号输出算法。状态转换算法负责不同状态之间的跳转,算法描述如算法1。
4 仿真实验
4.1 实验主要评测指标
电路测试中常用的技术指标有:
(1)逻辑器件数量:一个完整的电路设计所消耗的FPGA/CPLD或者专用集成芯片上的逻辑资源数量,也即所消耗的空间资源,有时也用芯片面积作为衡量指标。
(2)运算延迟时间:完整的进行一次运算所需要的时间,即所占用的时间资源,一般以纳秒为单位。
(3)功耗:随着集成电路技术的快速发展,功耗问题日益突显,成为电路设计中一个重要评估参数。CMOS是集成电路设计中被广泛采用的技术,在CMOS电路中功耗分为静态功耗和动态功耗,公式如下[7]:
从表中可见相比于采用硬件电路设计的TAM乘法器,基于FSA的乘法器在各个乘法器的性能参数上都有明显的优势。
本文主要的创新点在于引入4选1多路选择器并一次并行处理两位操作数使产生的部分积数量大幅减少,同时使用有限状态机对这种设计进行了实现,通过有限状态机的快速状态转换与状态合并,加快了运算速度并减少了逻辑部件的使用数量,使功耗也有所降低。
进一步的工作主要是针对更高位数据的乘法运算改进乘法器设计,随着运算位数的增加,状态变量也随之增加,若想进一步提高运算速度,需要考虑更多位数的并行处理以及有限状态机的状态优化等问题。
参考文献
[1] 向淑兰,曹良帅.数字信号处理器中阵列乘法器的研究与实现[J].微电子学与计算机,2005,22(10):133-136.
[2] 胡正伟,仲顺安.一种多动能阵列乘法器的设计方法[D].计算机工程,2007,22(33):23-25.
[3] BEKIARIS D, PEKMESTZI K, PAPACHRISTOU C. A high-speed radix-4 multiplexer-based array multiplier[C]. 2008 Proceedings of the 18th ACM Great Lakes symposium on VLSI. 2008.
[4] WALLACE C. A suggestion for a fast multiplier[J]. IEEE Transactions on Elect. Computers, 1964(13):114-117.
[5] ITOH N. A 600-MHz 54x54-bit multiplier with rectangular-styled wallace tree[J]. IEEE Journal of Solid-State Circuits, 2001,36(2).
[6] Ki-seon Cho. 54x54-bit radix-4 multiplier based on modified-booth algorithm[C]. Proceedings of GLVLSI’ 03, Washington, USA. April 28-29, 2003.
[7] HENNESSY J L, PATTERSON D A. Computer architecture: a quantitative approach[M].4th ed.北京:机械工业出版社,2007.