当前位置:首页 > 电源 > 数字电源

使用MATLABM文件借助AccelChip综合工具优化FPGA实现

将基于图形和基于语言的设计方法结合起来最能准确描述DSP系统。DSP建模软件行业专家The MathWorks提供了一种称为Simulink的时序精度的图形化设计环境和一种称为MATLAB的数学建模语言,从而满足了这种二分法。


Simulink非常适合DSP设计的“系统”方面,包括输入输出接口和存储器数据流的控制与同步。Simulink还以模块集的形式提供了一个丰富的预定义DSP算法集,可以用来构建DSP系统。不过,对于专用算法的建模来说,Simulink并非总是最有效的开发环境。它不必要地增加了设计人员考虑时序精度的负担,并且强制用图形模块集而非简明的文本表达式来构建底层的算术运算和数组操作。

 

图1 显示系统控制和同步逻辑的Xilinx System Generator图


有些DSP算法开发人员发现MATLAB语言最能满足他们喜欢的开发方式。MATLAB具有针对信号处理、通信和小波处理的1000多种内置函数和工具箱扩展,为复杂算法的开发和调试提供了丰富且易用的环境。


Simulink利用一个嵌入式MATLAB模块将这两种建模环境统一起来,该模块允许MATLAB模型在Simulink内部仿真,再通过Real-Time Workshop编译成C代码后在DSP处理器上实现。


Xilinx System Generator for DSP是一种广泛公认的高效工具,用于在FPGA中创建DSP设计。System Generator for DSP提供了基于Simulink的图形环境和Xilinx DSP核的预定义模块集,这同时满足了系统架构设计师和硬件设计人员的需要,前者需要把组件集成到设计中,而后者需要优化实现。不过,System Generator for DSP缺少对基于MATLAB的设计流程的支持。

Xilinx AccelDSPTM综合工具是专为已经熟悉基于语言的DSP算法建模的算法开发人员和DSP架构设计师开发的。借助AccelDSP综合工具,算法开发人员可以用浮点MATLAB M文件创建激励、评估算法并对结果进行后处理。

DSP硬件系统


System Generator for DSP非常适合DSP系统建模,它不仅包括核心DSP算法,还包括针对外部总线、存储器读写访问、系统数据同步和整体系统控制的同步接口。System Generator for DSP提供了面向控制的模块(如MicroBlazeTM处理器),还提供了用于实现DSP系统同步的各个寄存器、延时器和存储器模块(如图1所示)。

自定制DSP算法


任何DSP系统的核心都是算法。算法与系统的区别在于所产生的输出是基于给定输入集的函数,与时钟或硬件无关。这可以由以下简单公式表示:


y=f(x)


我们可以分别在FPGA、DSP处理器和软件上执行一种MATLAB定义的算法,它们对时序精度的理解各不相同。


算法的这种特有性质具有两大好处。


首先,算法开发人员完全不用顾及硬件实现细节,可以只专心于算法功能。正因为如此,今天在DSP中使用的算法估计有90%都是首先作为MATLAB模型出现的,即使设计流程表明它们此后还要重新实现Simulink图或System Generatorfor DSP图。用一个简单的MATLAB语句就可以计算4×1024数据矩阵的快速傅里叶变换(FFT),不必考虑基数、扩展性、缓冲或有效信号的同步,如下所示:


y=fft(data,1024)


其次,在建立算法模型时,给定的输出集总是对应于给定的输入集;因此,不必在生成的硬件中解决同步问题。这就使算法具有可通过AccelDSP这样的综合工具进行调度的固有“可调度”性。由于硬件要求,可能需要使用多个时钟周期来计算一个输出(如资源共享MAC FIR滤波器的情形),但这种操作却非常适合AccelDSP综合工具的自动流程。加入一个简单的硬件握手接口即可为集成到整个系统敞开方便之门,如图2所示。

 

图2 AccelDSP 握手接口

MATLAB运算符(如矩阵转置)可以使MATLAB代码短小易读。而像矩阵求逆运算这类复杂运算可以用MATLAB丰富的线性代数功能完成。

AccelDSP和System Generator工具一起使用


AcceDSP综合工具可依据浮点MATLAB模型生成System Generator IP模块,从而使System Generator for DSP能够支持DSP系统和算法两种建模方法。这样可以产生与用嵌入式MATLAB模块功能相似的FPGA设计流程(见图3)。我们可以用Xilinx DSP模块集实现系统设计,而用浮点MATLAB实现算法设计。用AccelDSP综合工具创建的System Generator IP模块是具有时序精度特点的定点模块。

卡尔曼滤波器示例


我们来看一种用MATLAB编写的高级算法,使用AccelDSP综合工具进行综合,然后将算法集成到System Generator模型中。卡尔曼滤波器是一种特殊类型的自适应递归滤波器,非常适合将多个有噪声的信号合并成一个较清晰的信号。卡尔曼滤波器以对象(如由地面雷达跟踪的商用飞机)的数学模型开始,使用该模型预测未来行为。然后,滤波器使用实测信号(如返回到雷达接收器的飞机特征信号)定时校正预测。

 

图3 DSP系统框图


以下是一个卡尔曼滤波器的MATLABM文件。该算法定义矩阵R和I,这两个矩阵描述了实测信号和预测行为的统计数据。算法的后九行是前向预测代码和自我校正代码。


                                                                                        表1 控制所生成硬件的综合指令

 


像加减这类常用运算符是在A或P_cap这类数组上运算,无须像C语言所要求的那样编写循环语句。二维数组自动以矩阵相乘,无须任何特别注释。


MATLAB运算符(如矩阵转置)可以使MATLAB代码短小易读。而像矩阵求逆这类复杂运算可以用MATLAB丰富的线性代数功能完成。虽然可以将这种算法构建成框图,但这样做很容易使算法结构在MATLAB中显得费解。有了AccelDSP综合工具,就可以用AccelWare IP工具套件将复杂的MATLAB工具箱和内置函数(如卡尔曼滤波器示例中使用的矩阵求逆)直接赋予硬件。这些工具套件提供多种矩阵求逆方法。核的选择取决于矩阵的大小、结构和值。


我们再回到卡尔曼滤波器示例,最适宜的方法是使用AccelWare QR矩阵求逆核。AccelWare核是依据MATLAB语法生成的,可有多种硬件实现架构,这些架构允许用户对设计进行速度、面积、功耗和噪声优化。为了使用AccelWare功能,需要对代码进行以下小修改:


用AccelDSP综合工具综合MATLAB可以使用AccelDSP综合工具进行浮点仿真,以建立一个基准来参考。然后将设计转换成定点,以便进行定点效果仿真。有诸多功能可以帮助分析这些效果和定点设计(如饱和与四舍五入)。数据位宽的增长可以用户控制的方式自动传播到整个设计中。这种算法设计浏览过程可以帮助您获得理想的量化结果,此量化结果能够在控制上溢出/下溢出的同时尽量缩小位宽,以便尽早在硅片面积与性能指针之间进行权衡。一旦确定了适宜的量化结果,使用AccelDSP综合工具的下一步就是为Xilinx目标器件生成RTL。可以通过使用表1所列综合指令来规定硬件含义。使用这些指令可以规范基于硬件的设计浏览,使设计小组能够进一步提高结果质量。在综合RTL时,AccelDSP综合工具评估和调度整个算法,并且在可能时进行边界优化。


AccelDSP工具在整个流程中都保持始终如一的验证环境,这是因为使用了自校验式测试平台,即使用MATLAB定点设计时生成的输入/输出向量来验证生成的RTL。AccelDSP综合工具还会报告卡尔曼滤波器的流量和延时量,这是衡量设计是否满足指标以及生成时序精度的SystemGenerator模型所必需的。

生成System Generator模型


成功完成RTL验证之后,即可通过单击“Generate System Generator”图标来为设计生成System Generator模型。AccelDSP工具产生一个可支持仿真和RTL代码的System Generator IP模块。


此时,设计流程过渡到System Generator for DSP,其中可以在Simulink库浏览器中使用卡尔曼滤波器的新模块,只需选择卡尔曼滤波器模块,然后将其拖入到目标环境中,便可将AccelDSP生成的卡尔曼滤波器集成到System Generator设计中。


结束语


自定制DSP算法最适于用MATLAB建立数学模型,而完整的系统则最适于用Simulink建立时序精度的模型。这两种建模域紧密结合即可使用丰富的MATLAB语言(包括内置函数和工具箱函数)来创建复杂DSP算法的System Generator IP模块,从而为在FPGA中设计DSP系统提供一种有效的手段。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

欧洲药品管理局人用药品管理委员会 (CHMP) 的积极建议是基于 EFFISAYIL® 1 研究结果,该研究是针对泛发性脓疱型银屑病 (GPP) 发作患者的最大的临床研究[1] 与斑块状银屑病不同,GP...

关键字: HM BSP GP FOR

摘要:随着社会不断发展,传统化石能源已经无法满足日益增长的能源需求,基于这一情况,光伏电源的使用逐渐变多。而高渗透率的光伏电源出力大于负荷的消耗时,配电网的电压波动影响会变大,网络发生故障而造成部分负荷失电停止运行后也会...

关键字: 光伏电源 电压分布 MATLAB

(全球TMT2022年10月14日讯)以“自由构建 探索无限”为主题的亚马逊云科技中国峰会在线上召开。在本次为期2天的峰会上,亚马逊云科技发布了云计算技术趋势展望,宣布“连中外、襄百业、携伙伴、促绿色”四大战略举措,进...

关键字: FOR 亚马逊 SAP NVIDIA

《财富》杂志(Fortune)公布了2022年财富改变世界(Fortune Change the World)榜单,其中列出了50多家公司,这些公司今年通过盈利战略和运营对社会或环境产生了重要影响。榜单包括54家公司:北...

关键字: 美团 FOR CHANGE DEVELOPMENT

10月6日,阿科玛宣布其在华合作伙伴山东澳帆新材料有限公司的生产装置成功开车,这符合集团先前宣布的发展氟化物特种解决方案1233zd供应的计划。此外,在其位于美国Calvert City的生产基地,阿科玛也已启动1233...

关键字: FOR 新材料 AN

据德国联邦经济与气候保护部最新消息,该部委托 WifOR 机构所做的 2021 年德国医疗保健领域经济核算数据显示,德国医疗保健行业增长显著。 数据显示,在  2021 年新冠期间,该领域显著增长,并达到了毛附加价值为...

关键字: FOR

(全球TMT2022年9月21日讯)"迈向智能世界"峰会在华为全联接大会(HUAWEI CONNECT 2022)期间举办。华为常务董事、ICT基础设施业务管理委员会主任汪涛发表"拥抱5.5G时代,迈向智能世界"主题发...

关键字: 华为 5G 5G时代 FOR

摘要:主要介绍了应用DSP的电能质量检测系统的硬件电路及软件开发工具,对采集来的某电铁电流信号进行了电能质量检测,并开展了实际实验尝试。实验结果显示,实际信号含有大量谐波,但通过应用DSP的电能质量检测系统成功检测到了它...

关键字: 电能质量检测 Matlab仿真 DSP

随着生活水平的提高,大家都想从生活压力中释放出来,越来越多的人向往户外运动、露营等,在大自然的拥抱中释放压力,解放自我,从而成为户外旅行火热的原因之一。因此,很多音箱厂商都开始推出针对户外的户外蓝牙音箱。但是市面上的蓝牙...

关键字: PD快充 I2S DSP IC

北京2022年9月10日 /美通社/ -- 9月9日,于美国纳斯达克上市的灵活用工下的本地化社区服务平台趣活集团发布了2021年全年财务报告。财报显示,趣活集团2021年全年总营收40.25亿元,同比增长56%。 根据...

关键字: 共享单车 FOR 创始人 纳斯达克

数字电源

15504 篇文章

关注

发布文章

编辑精选

技术子站

关闭