流水线技术在FPGA设计中的运用

时间:2016-02-24 09:24 来源:www.fabiaoba.com 作者:张立学 尹东辉 点击:

  摘要:应用FPGA设计数字电路时,芯片的运行速度优化与资源利用优化常常是相互矛盾的。以Viterbi译码器中加比选单元(ACS)的设计为例,对采用传统方法和流水线技术方法的设计进行对比,显示采用流水线技术的设计方法在占用较小系统资源情况下可以获得更高的系统运行速度,更适用于FPGA的数字电路设计。

  关键词:流水线技术;FPGA;ACS;Viterbi

  引言

  FPGA(FieldProgrammableGateArray)以其可重构与现场可编程的灵活性被人们所接受,相比于ASIC而言,有着更短的开发周期和更小的前期研发资金投入,在原型板的开发中占据着重要的地位,获得了越来越多的人的青睐[1]。但是EDA技术面对超大规模可编程器件PPGA进行系统设计时,面向芯片运行速度和面向芯片占用面积的两种选择常常是相互矛盾的。对速度指标进行优化的设计,往往占用较多的芯片资源;而对芯片面积指标进行优化的设计,一般难以摆脱系统速度下降的代价。随着深亚微米半导体制造工艺的不断创新和百万门可编程器件的不断推出,系统速度指标的意义日趋重要,采用流水线技术只需增加少量硬件,便可以大大提高系统速度[2]。

  1流水线技术的应用原理

  流水线设计就是把规模较大、层次较多的组合逻辑电路分为几个级别,在每一级插入寄存器组暂存中间数据。例如K级的流水线就是从组合逻辑的输入到输出恰好有K个寄存器组(分为K级,每一级都有一个寄存器组),上一级的输出是下一级的输入而又无反馈的电路。

  流水线结构电路属于同步时序电路,在同步系统中,时钟速度越快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量就越大[3]。对于同步系统的时钟速率计算公式。

  其中:Tco是数据输出的延时,Tdelay是组合逻辑的延时,Tsetup是触发器的建立时间。

  在本例中(图2)ACS的延时就是Tdelay,ACS前级输入的锁存输出时间就是Tco,ACS的建立时间就是Tsetup。在FPGA中,由于Tco和Tsetup是由具体的器件和工艺决定的,芯片型号一旦选定,Tco和Tsetup也就固定不变了,因此设计电路时只可以改变Tdelay。所以缩短Tdelay是提高同步电路速度的关键,而在Viterbi译码器的设计中不只有一级锁存,要使电路工作稳定,时钟周期必须满足最大延时要求,缩短最大延时路径,才可以提高电路的工作频率。在应用流水线技术时,如图1所示可以把较大组合逻辑分解为较小的几块,中间插入寄存器,在图1的下半部分,系统的最高工作频率决定于两个组合逻辑延时的最大值,因此,在系统的设计中应尽量减小这个最大值,这样可以提高电路的工作频率。

  2系统设计实现

  下面以Viterbi译码器中的ACS(加比选单元)的设计为例,对比分析采用流水线设计和不采用流水线设计性能和资源占用的差异。

  2.1直接实现

  ACS是Viterbi译码器核心部分,图2为ACS的组成逻辑结构图,主要完成度量值的加比选,具体的工作过程是:得到BMU单元送过来的分支度量值和分支状态值之后,将相应的分支状态值对应的度量值从度量存储单元取出来再相加,比较两种状态度量值的大小,将小的度量值存入次态的地址并更新原有的度量值。

  直接按照图2的逻辑关系用Verilog语言描述形成ACS模块,包括一个加法器、一个比较器和一个多路选择器,将其下载到EPF10KE30ETC144-1上,得到的部分参数如下:

  最大延时为18.2ns,工作频率为86.7MHz,占用55个逻辑单元。

  由此可以看出,直接实现该电路整个运算至少需要经过3级门延时,即使用5ns延时的器件运算最快也需要15ns相应的工作速度为66.7MHz,随着相关位数的增加速度还将随之降低。

  2.2三级流水线实现

  用组合逻辑的方式直接生成的ACS的电路延时主要集中在两个加法器和一个比较器上。

  延时的粗略计算式如下:

  其中,Tadd为加法器的延时,Tc为比较器的延时,Tx为多路选择器的延时,主要延时为Tadd和Tc。

  在ACS中应用流水线技术,可以把ACS的大的组合逻辑延时分成三个较小的组合逻辑,分别是加法组合逻辑、比较组合逻辑和多路选择组合逻辑,它们的延时比较平均,有利于提高ACS的整体工作频率,因为系统的最高频率决定于系统中的最大延时,然后在三个小的组合逻辑中间加入寄存器,这样就得到流水线结构的ACS框图,如图3所示。

  其运算过程是对每一步运算结果进行锁存,按照时钟的节拍逐步完成运算的全过程,虽然每组输入值需要经过三个节拍才能得到运算结果,但是由于每个节拍都有一组新值输入到下一级运算电路,每级运算电路上都有一组数据同时进行运算,所以总的来看,每步运算花费的时间只有一个时钟周期。将采用流水线结构的ACS下载到在EPF10KE30ETC144-1,得到的部分参数如下:

  最大延时6.9ns,工作频率153.84MHz,占用63个逻辑单元。

  与没有采用流水线时相比,工作频率提高了65.5MHz,输出延时缩短了11.3ns,而从资源占用上来看,仅仅多占用了8个逻辑单元,可见在FPGA上采用流水线代价还是较小的。

  3结论

  通过上面分析可以看出,采用流水线技术对Viterbi译码器中的ACS进行设计,提高了数字系统运行速度,并不会增加太多的系统资源占用量,有效解决了应用FPGA进行数字电路设计中选择芯片的运行速度优化与资源利用优化之间相互矛盾的问题。所以流水线技术是提高数字系统运行速度的一种有效方法,其设计的关键在于整个时序的合理安排[4],这对于实施性要求高,运算量大的系统(例如DDS[5])流水线方法尤其适用。

  参考文献(References):

  [1]李宏钧,胡小龙.流水线的FPGA低功耗设计[J].计算机系统应用,2010.19(8):234-237

  [2]孙启良.CPU流水线技术中的结构相关和数据相关[J].福建电脑,2010(7):49-50

  [3]李云鹏,王新梅,谢显中等.基于FPGA自适应高速RS编译码器的IP核设计[J].重庆邮电大学学报,2004.15(1):25-28

  [4]邱志宏.信号线速度处理的FPGA流水实现[J].柳州职业技术学院学报,2009.9(2):79-82

  [5]岳伟甲,刘昌锦.一种基于FPGA的32位快速加法器设计[J].四川兵工学报,2011.32(7):78-81


www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
  本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/ CSSCI核心/医学投稿辅导/职称投稿辅导。

投稿邮箱:fabiaoba365@126.com
 在线咨询: 投稿辅导275774677投稿辅导1003180928
 在线咨询: 投稿辅导610071587投稿辅导1003160816
 联系电话:18796993035

联系方式
李老师QQ:发表吧客服610071587 陈老师QQ:发表吧客服275774677 刘老师QQ:发表吧客服1003160816 张老师QQ:发表吧客服1003180928 联系电话:18796993035 投稿邮箱:fabiaoba365@126.com
期刊鉴别
  • 刊物名称:
  • 检索网站:
热门期刊
发表吧友情提醒

近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。

此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。

如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。

 
QQ在线咨询
论文刊登热线:
137-7525-9981
微信号咨询:
fabiaoba-com

友情链接

申请链接