FPGA重要设计思想及工程应用之复杂流水线设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

谢大钊谢大钊编著编著FPGA/CPLDFPGA/CPLD重要设计思想及工程应用重要设计思想及工程应用复杂流水线设计篇复杂流水线设计篇中嵌教育中嵌教育((www.chinaeda.cwww.chinaeda.cnn))谢大钊谢大钊编著编著谢大钊谢大钊编著编著实时信号处理系统实时信号处理系统实时信号处理系统首先要求该系统必须具有处理实时信号处理系统首先要求该系统必须具有处理大数据量的能力,以保证系统的实时性,这就对时大数据量的能力,以保证系统的实时性,这就对时序的设计提出了一个很高的要求;其次,对系统的序的设计提出了一个很高的要求;其次,对系统的体积,功耗,稳定性等也有严格的要求。实时信号体积,功耗,稳定性等也有严格的要求。实时信号处理算法当中涉及到的运算,有的计算方式和控制处理算法当中涉及到的运算,有的计算方式和控制结构比较复杂,难以用纯硬件实现,但是对速度没结构比较复杂,难以用纯硬件实现,但是对速度没有特殊的要求;有的运算结构本身比较简单,但是有特殊的要求;有的运算结构本身比较简单,但是数据量大,计算速度要求高。因此,实时信号处理数据量大,计算速度要求高。因此,实时信号处理系统是一个运算速度要求高,运算种类多的综合性系统是一个运算速度要求高,运算种类多的综合性信息处理系统。信息处理系统。谢大钊谢大钊编著编著实时信号处理系统实时信号处理系统随着数字信号处理器(随着数字信号处理器(DSPDSP)和现场可编程门)和现场可编程门阵列器件(阵列器件(FPGAFPGA)的发展,采用)的发展,采用DSPDSP++FPGAFPGA的的数字硬件系统正显示出它的优越性,越来越受到数字硬件系统正显示出它的优越性,越来越受到人们的重视。通用人们的重视。通用DSPDSP的优点是通过编程可以应的优点是通过编程可以应用到广泛的产品当中去,且已经能满足算法控制用到广泛的产品当中去,且已经能满足算法控制结构复杂,运算速度高,寻址方式灵活和通信性结构复杂,运算速度高,寻址方式灵活和通信性能强大等需求。但是传统能强大等需求。但是传统DSPDSP的结构本质上是串的结构本质上是串行的,对于需要处理的数据量大,处理速度高,行的,对于需要处理的数据量大,处理速度高,但是运算结构相对比较简单的信号处理算法来但是运算结构相对比较简单的信号处理算法来说,并没有优势可言,而这恰好是说,并没有优势可言,而这恰好是FPGAFPGA的强项。的强项。采用采用DSPDSP++FPGAFPGA的数字硬件系统正好把两者的优的数字硬件系统正好把两者的优点结合到一起,兼顾了速度和灵活性,能够很高点结合到一起,兼顾了速度和灵活性,能够很高效的完成一个实时信号处理系统的设计。效的完成一个实时信号处理系统的设计。谢大钊谢大钊编著编著实时信号处理系统实时信号处理系统DSPDSP++FPGAFPGA系统最大优点是结构灵活,系统最大优点是结构灵活,有较强的通用性,适合模块化设计;同时开有较强的通用性,适合模块化设计;同时开发周期较短,系统易于维护和扩展,因此特发周期较短,系统易于维护和扩展,因此特别适合应用于于实时信号处理系统。那么如别适合应用于于实时信号处理系统。那么如果硬件系统中只有果硬件系统中只有FPGAFPGA或者只有或者只有DSPDSP的话还的话还能实现大规模的实时信号处理系统吗?能实现大规模的实时信号处理系统吗?谢大钊谢大钊编著编著实时信号处理系统实时信号处理系统回答当然是肯定的,咱们这里就只讨论系统中回答当然是肯定的,咱们这里就只讨论系统中只有只有FPGAFPGA的情况,对于的情况,对于FPGAFPGA而言,虽然在做算而言,虽然在做算法控制结构比较复杂的设计时没有法控制结构比较复杂的设计时没有DSPDSP灵活,但灵活,但是同样能够完成设计,并且对于数据量大,处理是同样能够完成设计,并且对于数据量大,处理速度高的系统设计它还是有很大的优势。所以即速度高的系统设计它还是有很大的优势。所以即使硬件系统中只有使硬件系统中只有FPGAFPGA,也能实现大规模的实时,也能实现大规模的实时信号处理系统。信号处理系统。那么为什么说那么为什么说FPGAFPGA在做数据量大,处理速度在做数据量大,处理速度高的系统设计时有很大的优势呢?高的系统设计时有很大的优势呢?谢大钊谢大钊编著编著实时信号处理系统实时信号处理系统如下页图所示,如下页图所示,FPGAFPGA之所以在做数据量之所以在做数据量大,处理速度高的实时信号处理系统设计时大,处理速度高的实时信号处理系统设计时有很大的优势,就是因为有很大的优势,就是因为FPGAFPGA能够进行流水能够进行流水线设计,能够做灵活的时序设计,这样很多线设计,能够做灵活的时序设计,这样很多数据能够并行处理,而且互不影响。数据能够并行处理,而且互不影响。谢大钊谢大钊编著编著流水线设计方法流水线设计方法流水线设计方法就是指将组合逻辑延时流水线设计方法就是指将组合逻辑延时路径系统地分割,并在各个模块路径系统地分割,并在各个模块((分级分级))之间插之间插入寄存器暂存中间数据的方法.流水线缩短入寄存器暂存中间数据的方法.流水线缩短了在一个时钟周期内信号通过的组合逻辑电了在一个时钟周期内信号通过的组合逻辑电路的延时路径长度,从而提高时钟频率.路的延时路径长度,从而提高时钟频率.谢大钊谢大钊编著编著流水线设计方法流水线设计方法对于同步电路,其速度就是指同步电路对于同步电路,其速度就是指同步电路时钟的频率,同步时钟愈快,电路处理数据时钟的频率,同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间内处理的的时间间隔越短,电路在单位时间内处理的数据量就愈大,即电路的吞吐量就越大。所数据量就愈大,即电路的吞吐量就越大。所以说,采用流水线技术能够提高同步电路的以说,采用流水线技术能够提高同步电路的运行速度.运行速度.谢大钊谢大钊编著编著流水线设计方法流水线设计方法下页图为一个同步时序逻辑电路的结构下页图为一个同步时序逻辑电路的结构图,那么我们如何才能把它转换为流水线电图,那么我们如何才能把它转换为流水线电路结构图,来提高电路的运行速度呢?在电路结构图,来提高电路的运行速度呢?在电路实现的时候,程序又应该如何改进呢?路实现的时候,程序又应该如何改进呢?谢大钊谢大钊编著编著流水线设计方法流水线设计方法谢大钊谢大钊编著编著流水线设计方法流水线设计方法同步时序逻辑电路中,若两级寄存器之间组合电路的延时时间为2Tpd,每一级寄存器的延时时间为Tcd,那么,该同步时序逻辑电路的最高时钟工作频率为:fm=1/2(Tpd+Tcd)pdT谢大钊谢大钊编著编著流水线设计方法流水线设计方法组合电路的延时时间越长,同步电路的工作速度就越低.为了提高同步电路的运行速度,采用流水线技术,下页图即为我们设计的流水线电路结构图。谢大钊谢大钊编著编著流水线设计方法流水线设计方法谢大钊谢大钊编著编著流水线设计方法流水线设计方法我们设计的流水线电路结构图是在同步时序逻辑电路结构图的两部分组合逻辑电路中间加入一级寄存器,通过这个改进,电路中每一级组合逻辑电路的延时时间为Tpd,电路的最高工作频率为:fm=1/(Tpd+2Tcd)很显然,通过这个改进,电路运行速度就能得到提高.谢大钊谢大钊编著编著流水线设计方法流水线设计方法通过上面的分析我们可以得到下面的结论,流水线技术就是将串行操作过程转换为并行操作.要实现数字系统的流水线设计,最根本的在于数字系统要能够被分解,分解的级数越多,每一级延迟的时间就越短,系统速度就越高,理论而言,只要系统允许分解就可以将系统尽量的分解。但如果系统中的有些部分不能分解怎么办呢?谢大钊谢大钊编著编著流水线设计方法流水线设计方法在做流水线设计的时候如下页图所示,如果前级操作时间恰好等于后级的操作时间,计最为简单,前级的输出直接汇入后级的输入即可;如果前级操作时间和后级的操作时间不等,该怎么办呢?谢大钊谢大钊编著编著谢大钊谢大钊编著编著流水线设计方法流水线设计方法在做流水线设计的时候,如果前级操作在做流水线设计的时候,如果前级操作时间大于后级的操作时间,则需要对前级时间大于后级的操作时间,则需要对前级的输出数据适当缓存才能汇入到后级输入的输出数据适当缓存才能汇入到后级输入端;如果前级操作时间恰好小于后级的操端;如果前级操作时间恰好小于后级的操作时间,则必须通过复制逻辑,将数据流作时间,则必须通过复制逻辑,将数据流分流,或者在前级对数据采用存储、后处分流,或者在前级对数据采用存储、后处理方式,否则会造成后级数据溢出。理方式,否则会造成后级数据溢出。谢大钊谢大钊编著编著流水线设计方法流水线设计方法以上提出了流水线设计中前后级操作时以上提出了流水线设计中前后级操作时间不等的解决办法,如果系统中只有两级间不等的解决办法,如果系统中只有两级或者说级数很少,这种办法还算可行。但或者说级数很少,这种办法还算可行。但若系统中有若系统中有NN级,级,NN大于几百或者更多,那大于几百或者更多,那这种办法还是不是行之有效的办法呢?有这种办法还是不是行之有效的办法呢?有没有很简便,很容易实现,效率很高的办没有很简便,很容易实现,效率很高的办法呢?法呢?谢大钊谢大钊编著编著复杂的流水线设计应用复杂的流水线设计应用11假设该应用为某实时通信系统的一个模块,该假设该应用为某实时通信系统的一个模块,该通信系统中通信系统中FPGAFPGA外围的晶振为外围的晶振为50MHz50MHz,假设信息,假设信息源只有两个数分别为源只有两个数分别为00000000和和0.03110.0311,但是我们需,但是我们需要连续不断的,循环的,反复的无休止的发送这要连续不断的,循环的,反复的无休止的发送这两个数,每次每个数占用的时间为两个数,每次每个数占用的时间为1000ns1000ns,并且,并且要对每次发送的数进行累加,然后将累加结果和要对每次发送的数进行累加,然后将累加结果和∏值进行比较,若累加值小于∏值直接将累加结∏值进行比较,若累加值小于∏值直接将累加结果做为该设计的输出,反之则将累加值减果做为该设计的输出,反之则将累加值减22∏∏后后的差值做为该设计的输出,同时下次累加需在该的差值做为该设计的输出,同时下次累加需在该差值的基础上进行累加。差值的基础上进行累加。谢大钊谢大钊编著编著复杂的流水线设计应用复杂的流水线设计应用22某实时通信系统需要在复杂的流水线设某实时通信系统需要在复杂的流水线设计应用计应用11的基础上再增加一项功能,需要对的基础上再增加一项功能,需要对复杂的流水线设计应用复杂的流水线设计应用11的输出数据求正余的输出数据求正余弦值,得到的正余弦值即为该设计的输弦值,得到的正余弦值即为该设计的输出。出。

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功