经过优化的低成本FPGA中的高性能DSP功能
发布时间:2008/5/27 0:00:00 访问次数:492
受诸如视频和静态图像使用的增多以及软件无线电等可重复配置系统需求的增长,数字信号处理(dsp)的应用继续膨胀。其中许多应用把重要的dsp处理要求和对成本的敏感性、对高性能的需求以及低成本的dsp解决方案结合在一起。
通用的dsp芯片和fpga是实现dsp功能的两种普遍的方法。每种方法都各有优点,其最适宜的方法因应用要求的不同而各异。本文论述了通用dsp的功能,阐述了通用dsp和fpga之间的差异,比较了现有的用fpga实现dsp的解决方案,最后介绍了latticeecp2m dsp的结构以及实现dsp的设计方法。
通用的dsp解决方案与fpga实现方法的对比
带有加法、减法或累加运算的乘法器是大多数dsp应用的核心。通用dsp芯片把这些功能的有效实现方法和一个通用微处理器结合在一起。乘法器的数目一般为数个,微处理器将数据串行地实现乘法或其它功能,中间结果存放在存储器或累加器中。性能的提高主要通过提升用于乘法的时钟速度来实现。典型的时钟速度从数十mhz到1ghz。其性能,用每秒百万次乘法累加(mmac)来衡量,通常为10到4000。更高性能要求的功能不得不分拆在多个dsp引擎中实现。这些芯片的价格从低端性能的几美元到高端性能的数百美元。这种方法的优点是能够直接实现用诸如c这样的高级编程语言编写算法。
面向dsp的fpga能在一个芯片上并行地实现许多功能。通用的布线、逻辑和存储器资源用来实现各个功能之间的互连、实现额外的功能、定序或在必要的情况下存储数据。一些基本的器件仅提供乘法器,需要用户用逻辑构造所有其它的功能。更多的高级器件提供加法、减法和累加功能,作为一整套dsp构造模块的一部分。fpga通常拥有数十个乘法单元,可以在数百mhz的时钟速度下工作。例如,latticeecp2-70 fpga拥有88个18x18的乘法器,运行速度可达325mhz,性能达到每秒28600mmac。
设计者经常要实现结构化的dsp功能,这在fpga内要占用大量的计算资源。通常在fpga内实现的结构化功能为:有限脉冲响应滤波器(fir)、无限脉冲响应滤波器(iir)、快速傅立叶变换(fft)和混频器。每种功能都需要将乘法单元与加法、减法和累加结合在一起。图1和图2分别是典型的fir滤波器和快速傅立叶变换(fft)的实现方式。
目前在低成本fpga中实现dsp功能有几种方法。第一种方法是使用器件内的查找表(lut)。这个方法提供相对低的性能而且占用许多fpga资源。另外一种方法是在fpga中用硬核实现乘法器。这减少了实现dsp所需的fpga资源。然而正如前面所述,在fpga中实现的大多数dsp功能需要在 乘法器之后进行加、减和累加。这些功能要占用大量的fpga资源,最后的数据宽度可达36位。因此经常会在设计中形成瓶颈。为了面对这个挑战,最新的fpga利用有效的硬逻辑在乘法器之后进行可编程加、减和累加。用这种方法实现dsp功能后,大大减少了通用资源的使用,并能获得很高的性能。
latticeecp2/m器件结构
latticeecp2和latticeecp2m系列重新定义了低成本fpga,在更低的成本下拥有更多最佳的fpga特性。器件含有sysdsp块和工程预制的源同步i/o。在latticeecp2m中有高达5.3m位的ram块、在latticeecp2中有高达1.1m位的ram块。在latticeecp2m中有3.125gbps嵌入式serdes,支持pciexpress、ethernet (1gbe 和 sgmii)以及多个其它标准。集成了以前只有高成本、高性能fpga才有的特点和性能,这些系列的产品极大地扩展了利用低成本fpga的应用范围。
latticeecp2/m器件由一个低成本的fpga结构加上3个~42个sysdsp块构成(图3为sysdsp块)。图4是ecp器件的整体结构图。图中红色部分是sysdsp块,专门用来实现dsp的功能。
latticeecp2/m系列中的sysdsp块支持三种数据宽度下(9、18和36)的四种功能单元。用户为一个dsp块选择一种功能单元,然后选择数据宽度和操作数的类型(带符号/无符号)。sysdsp块中的操作数可以是带符号或者无符号的,但在一个功能单元中不可以混合使用。类似的,操作数的宽度在一个块中必须相同。每个sysdsp块中的资源可以经过配置支持下面四种单元:
● mult(乘法)
● mac(乘法、累加)
受诸如视频和静态图像使用的增多以及软件无线电等可重复配置系统需求的增长,数字信号处理(dsp)的应用继续膨胀。其中许多应用把重要的dsp处理要求和对成本的敏感性、对高性能的需求以及低成本的dsp解决方案结合在一起。 通用的dsp芯片和fpga是实现dsp功能的两种普遍的方法。每种方法都各有优点,其最适宜的方法因应用要求的不同而各异。本文论述了通用dsp的功能,阐述了通用dsp和fpga之间的差异,比较了现有的用fpga实现dsp的解决方案,最后介绍了latticeecp2m dsp的结构以及实现dsp的设计方法。 通用的dsp解决方案与fpga实现方法的对比 带有加法、减法或累加运算的乘法器是大多数dsp应用的核心。通用dsp芯片把这些功能的有效实现方法和一个通用微处理器结合在一起。乘法器的数目一般为数个,微处理器将数据串行地实现乘法或其它功能,中间结果存放在存储器或累加器中。性能的提高主要通过提升用于乘法的时钟速度来实现。典型的时钟速度从数十mhz到1ghz。其性能,用每秒百万次乘法累加(mmac)来衡量,通常为10到4000。更高性能要求的功能不得不分拆在多个dsp引擎中实现。这些芯片的价格从低端性能的几美元到高端性能的数百美元。这种方法的优点是能够直接实现用诸如c这样的高级编程语言编写算法。 面向dsp的fpga能在一个芯片上并行地实现许多功能。通用的布线、逻辑和存储器资源用来实现各个功能之间的互连、实现额外的功能、定序或在必要的情况下存储数据。一些基本的器件仅提供乘法器,需要用户用逻辑构造所有其它的功能。更多的高级器件提供加法、减法和累加功能,作为一整套dsp构造模块的一部分。fpga通常拥有数十个乘法单元,可以在数百mhz的时钟速度下工作。例如,latticeecp2-70 fpga拥有88个18x18的乘法器,运行速度可达325mhz,性能达到每秒28600mmac。 设计者经常要实现结构化的dsp功能,这在fpga内要占用大量的计算资源。通常在fpga内实现的结构化功能为:有限脉冲响应滤波器(fir)、无限脉冲响应滤波器(iir)、快速傅立叶变换(fft)和混频器。每种功能都需要将乘法单元与加法、减法和累加结合在一起。图1和图2分别是典型的fir滤波器和快速傅立叶变换(fft)的实现方式。 目前在低成本fpga中实现dsp功能有几种方法。第一种方法是使用器件内的查找表(lut)。这个方法提供相对低的性能而且占用许多fpga资源。另外一种方法是在fpga中用硬核实现乘法器。这减少了实现dsp所需的fpga资源。然而正如前面所述,在fpga中实现的大多数dsp功能需要在 乘法器之后进行加、减和累加。这些功能要占用大量的fpga资源,最后的数据宽度可达36位。因此经常会在设计中形成瓶颈。为了面对这个挑战,最新的fpga利用有效的硬逻辑在乘法器之后进行可编程加、减和累加。用这种方法实现dsp功能后,大大减少了通用资源的使用,并能获得很高的性能。 latticeecp2/m器件结构 latticeecp2和latticeecp2m系列重新定义了低成本fpga,在更低的成本下拥有更多最佳的fpga特性。器件含有sysdsp块和工程预制的源同步i/o。在latticeecp2m中有高达5.3m位的ram块、在latticeecp2中有高达1.1m位的ram块。在latticeecp2m中有3.125gbps嵌入式serdes,支持pciexpress、ethernet (1gbe 和 sgmii)以及多个其它标准。集成了以前只有高成本、高性能fpga才有的特点和性能,这些系列的产品极大地扩展了利用低成本fpga的应用范围。 latticeecp2/m器件由一个低成本的fpga结构加上3个~42个sysdsp块构成(图3为sysdsp块)。图4是ecp器件的整体结构图。图中红色部分是sysdsp块,专门用来实现dsp的功能。 latticeecp2/m系列中的sysdsp块支持三种数据宽度下(9、18和36)的四种功能单元。用户为一个dsp块选择一种功能单元,然后选择数据宽度和操作数的类型(带符号/无符号)。sysdsp块中的操作数可以是带符号或者无符号的,但在一个功能单元中不可以混合使用。类似的,操作数的宽度在一个块中必须相同。每个sysdsp块中的资源可以经过配置支持下面四种单元: ● mult(乘法) ● mac(乘法、累加)
热门点击
- 电子报晓公鸡
- 电子模拟金丝雀
- 电子萤火虫
- TMS320C6201/6701 DSP处理
- 趣味电子鸟
- 英飞凌推出具备DSP功能的实时信号控制器XE
- 光控玩具车向前向后电路
- 用8位微处理器实现数字低通滤波器设计
- 基于TSl01型DSP链路口的多通道高精度数
- 瑞萨采用平行运算和结构优化提高DSP核处理速
推荐技术资料
- 业余条件下PCM2702
- PGM2702采用SSOP28封装,引脚小而密,EP3... [详细]
深圳服务热线:13692101218 13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)

深圳市碧威特网络技术有限公司
付款方式