基于FPGA数字系统设计的速度优化方法研究

2011-12-27 03:50:36宋翠方王连明于安宁
东北师大学报(自然科学版) 2011年4期
关键词:乘法器流水线寄存器

宋翠方,王连明,于安宁

(东北师范大学应用电子技术研究所,吉林长春 130024)

基于FPGA数字系统设计的速度优化方法研究

宋翠方,王连明,于安宁

(东北师范大学应用电子技术研究所,吉林长春 130024)

讨论了基于FPGA进行数字系统设计过程中的速度优化方法.研究了流水线法、降低时滞法和关键路径优化法,对具体实例进行了VHDL编程并比较优化前后的RTL电路结构.结果表明,上述方法均可以有效提高数字系统的速度.

FPGA;VHDL;速度优化

随着FPGA技术的发展以及相应EDA软件工具的成熟,FPGA的应用越来越广泛.采用FPGA进行数字系统设计过程中,在系统功能确定后,不同的VHDL描述方法所产生的硬件电路结构不同,其速度、资源利用率等性能指标也往往大相径庭[1].当速度达不到设计要求时,通常只能通过选用其他更快速的器件进行设计,显然这会增加器件成本和设计成本.如果此时能通过速度优化方法使系统达到设计要求,则可以减小系统成本.速度优化也是大规模数字系统设计必需的过程.

目前,文献对基于FPGA的数字系统设计中的速度优化研究大多停留在原理分析层面[2-3],缺少具体的实例分析.本文将通过具体的应用事例研究速度优化的方法,更深入地阐述速度优化的原理及实现方法.

本文主要研究了3种速度优化方法,即流水线法、降低时滞法和关键路径优化法.其中关键路径优化方法又包括添加寄存器层次法、并行结构构建法和寄存器平衡法.

1 流水线法

流水线设计在概念上十分类似于装配线运行,数据从前端输入,通过处理的各个级,最后输出数据,各个级之间同时进行.流水线设计的优越性是新数据在前面的数据完成之前就可以处理.

例如,计算(1)式

可以用迭代的方法实现,VHDL语言的程序如下:

用迭代实现的RTL电路结构核心部分如图1所示,其综合后只生成一个乘法器,乘法器被重新利用,直到计算完成,这样就要等到3次乘法运算完成后才能输入新的x值.

图1 迭代实现RTL电路结构

用流水线实现(1)式,其VHDL语言程序如下:

流水线实现的RTL电路结构如图2所示.由图2可知,从x值输入到y3输出经过了3个流水线级,在同一个时钟周期这3级流水线同时进行各自的运算,分别计算出y1,y2和y3.例如,当x在第2级流水线计算乘法时,新的x值可以送到第1级流水线进行计算.

图2 流水线实现的RTL电路结构

如果x取n个不同值时,用迭代实现需要3*n个时钟周期,而用水线流实现只需要n+2个时钟周期,可见流水线提高了系统的速度.但是因为流水线综合后会生成2个乘法器,所以增加了FPGA的使用面积.

2 降低时滞法

降低时滞是通过减小信号传递过程的中间延时提高信号传递速度[4].

在上面的例子中,因为加法器输入、输出端的信号经过了寄存,使得信号必须等待一个时钟周期才能传递到下一级,这样就导致信号传递延时增加,降低了速度.改进的VHDL的程序如下:

其RTL电路结构如图3所示,由于去掉了寄存器,2个乘法器之间的延时只取决于门级延时,降低了时滞,提高了速度.

图3 降低时滞的RTL电路结构

3 关键路径优化法

所谓关键路径是指从输入到输出延时最长的逻辑通道[5].系统正常运行的最小时钟周期由关键路径延时决定,所以优化关键路径可以提高系统的频率,是系统速度优化的有效方法.关键路径可以通过添加寄存器层次、并行结构构建和寄存器平衡来实现优化.

3.1 添加寄存器层次法

当关键路径延时比最小的时钟周期大时,可以通过添加中间寄存器,将关键路径拆成2个或者几个比较短的路径.

例如,要实现(2)式

可采取下面的方案实现:

其RTL电路结构如图4所示,这种方案产生的关键路径是由1个乘法器和2个加法器组成的.

图4 关键路径的RTL电路图

假设1个乘法器和2个加法器执行需要的时间比最小的时钟周期长,则可以通过添加中间寄存器,将这个关键路径分成2个小的路径.VHDL语言实现如下:

其RTL电路机构如图5所示,通过添加中间寄存器将关键路径分解为一个由乘法器组成的路径和一个由2个加法器的组成的路径,这样优化了关键路径,可以使系统的整体时钟周期减小,进而使系统的整体运行速度得以提高.

3.2 并行结构构建法

第2种改善关键路径的方法是将一个逻辑分解成小的逻辑单元,再重新组合,构建并行结构,从而降低关键路径延时.

在FPGA系统中,乘法的位数越多则延时越大,为了减小系统关键路径的延时,可以将一个高位的乘法器,拆成几个低位的乘法器并使之并行运行[5].例如,在流水线实现(1)式的例子中,如果8位二进制的乘法器组成的关键路径的延时比系统所需要的最小时钟周期长,就可以将这个8位二进制的乘法器分解为3个4位二进制的乘法器,并构建并行运行结构.

例如,一个8位的二进制数x=x_H&x_L,其中x_H是x的高4位,x_L是x的低4位.如果不考虑溢出问题,那么可以按照(3)式重新组织乘法.

图5 添加寄存器的RTL电路结构

得到的其中一级流水线的RTL电路结构为如图6所示.可见,8位的乘法器被拆成了3个并行执行的4位乘法器,关键路径的延时为一个4位乘法的延时,系统的速度得以提高.

图6 并行结构的RTL电路结构

3.3 寄存器平衡法

如果关键路径和与它相邻的路径延时相差比较大,那么在不影响功能的前提下,可以通过配平寄存器之间的组合逻辑来改变关键路径的长度.

例如,计算rsum=x+y+z,可以用下面的方法实现:

上述代码所实现的RTL电路结构如图7所示.由图7可知,关键路径由2个加法器构成.系统有2个寄存器级,第一个寄存器级除了寄存器rx,ry和rz之外,没有包含别的组合逻辑电路,而第2个寄存器级由一个寄存器sum和2个加法器构成,显然这2个寄存器级是不平衡的.

图7 寄存器不平衡的RTL电路结构

如果将VHDL语言的程序做以下修改:

则所实现的RTL电路结构如图8所示,这样2个寄存器级各有一个加法器,平衡了寄存器级之间的逻辑,使得关键路径只有一个加法器,降低了关键路径的延时.

图8 寄存器平衡的RTL电路结构

4 结论

本文研究了基于FPGA进行数字系统设计过程中的速度优化问题,通过实例,采用流水线法、降低时滞法和关键路径优化法对系统进行了速度优化,比较了优化前后系统的速度变化,表明了这些优化方法的有效性.

研究结果也表明,在FPGA的设计中,高速度与低资源占用率通常是矛盾的,所以在系统设计过程中要根据设计要求,在二者之间寻找最佳的平衡点.

[1]潘松,黄继业.EDA技术与VHDL.第2版[M].北京:清华大学出版社,2007:213-301.

[2]董秀洁,杨艳,周游.FPGA/CPLD选型与设计优化[J].化工自动化及仪表,2009,36(3):60-63.

[3]沈祖斌.基于FPGA/CPLD的数字系统设计优化[J].江汉大学学报:自然科学版,2006,34(1):46-49.

[4]STEVE KILTS.Advanced FPGA design:architecture,implementation,and optimization[M].New Jersey:John Wiley &Sons,2007:2-15.

[5]张文娟,王连明,张宏巍.具有随机延迟的网络控制系统的模糊PID控制方法研究[J].东北师大学报:自然科学版,2009,41(2):63-68.

Study on speed optimization methods in digital system design based on FPGA

SONG Cui-fang,WANG Lian-ming,YU An-ning

(Institute of Applied Electronics,Northeast Normal University,Changchun 130024,China)

The speed optimizing methods in the process of designing digital system based on FPGA device are discussed.Three optimizing methods-pipelined design,low latency and critical path optimization,are researched specifically.By programming some examples in VHDL and comparing the achieved RTL circuit architectures,the results show that the speeds of the digital system are effectively improved after optimization.

FPGA;VHDL;speed optimization

TP 399;TN 710

510·10

A

1000-1832(2011)04-0065-07

2011-01-27

国家自然科学基金资助项目(50478007);吉林省科技发展重点支持项目(20100458).

宋翠方(1984—),女,硕士研究生,主要从事数字系统设计领域研究;通讯作者:王连明(1972—),男,教授,主要从事嵌入式技术、智能信息处理及电路系统仿真等领域研究.

石绍庆)

猜你喜欢
乘法器流水线寄存器
Gen Z Migrant Workers Are Leaving the Assembly Line
Lite寄存器模型的设计与实现
计算机应用(2020年5期)2020-06-07 07:06:44
流水线
分簇结构向量寄存器分配策略研究*
基于FPGA的流水线单精度浮点数乘法器设计*
报废汽车拆解半自动流水线研究
SIMATIC IPC3000 SMART在汽车流水线领域的应用
自动化博览(2014年6期)2014-02-28 22:32:05
乘法器模块在FPGA中的实现
基于FPGA 的数字乘法器性能比较*
电子器件(2011年6期)2011-08-09 08:07:22
高速数模转换器AD9779/AD9788的应用