Matlab硬件代码(HDL)生成

Matlab硬件代码(HDL)生成

ID:41385050

大小:602.50 KB

页数:8页

时间:2019-08-23

Matlab硬件代码(HDL)生成_第1页
Matlab硬件代码(HDL)生成_第2页
Matlab硬件代码(HDL)生成_第3页
Matlab硬件代码(HDL)生成_第4页
Matlab硬件代码(HDL)生成_第5页
资源描述:

《Matlab硬件代码(HDL)生成》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、警告:本文是雷声天下将Loren的Matlab日志翻译而成,并且添加了个人的使用体验,只发布到新浪爱问平台上,愿意与广大网友共同学习分享,不得被用于任何商业场合,如有违背,必将追究责任!!!技术交流or项目探讨欢迎联系:dlbuaa@163.comMatlab硬件代码(HDL)生成本文的原作者并不是Loren二十Mathworks公司的HDLCoder产品团队的领导者KiranKintali。利用这一团队的产品可以从M代码直接生成HDL代码,本文同时给出了多种相关的Matlab软件特性。1.Matla

2、b硬件代码生成工具的介绍如果你在用Matlab对应用于FPGA或者其他ASIC现代数字信号处理或者视频和图像处理算法建模仿真,请继续阅读FPGA给出了通用处理器(GPP)和专用集成电路(ASIC)之间的一个很好的融合方案。GPP是完全可编程器件,但是在功率消耗和性能上差强人意(必定不是专用的器件啊)。ASIC用于特定的功能在功耗和性能上有优势,但是需要经历及其昂贵的开发设计过程。FPGA同样也用于ASIC的原型设计验证过程中和软件开发中。在应用FPGA替代传统处理器对新的算法进行的原型验证的过程中,要

3、求高吞吐率、高性能的应用场合越来越多。多数算法在Matlab中业已实现,同时也有相应的可视化分析测试功能。当目标是为了FPGA或者ASIC设计中,不得不把Matlab算法手动地转化为HDL代码。对于多数谙熟软件设计的编程者来说,掌握硬件FPGA开发设计过程是一种挑战。与软件算法开发不同,硬件开发需要设计者“并行思考”。其他的困难例如:学习VHDL或者Verilog语言、掌握FPGA生产商提供的开发软件、理解诸如“多循环路径”、“延迟均衡”术语。在这篇日志中,我将详细描述一条更容易的从Matlab到FP

4、GA的路径。我将向你们展示如何自动将Matlab算法代码生成HDL代码、在FPGA上验证代码和用Matlab验证你的HDL代码。2从Matlab到硬件的工作流程将Matlab涉及转换成硬件包含以下步骤:(1)在Matlab中对你的算法建模-使用Matlab来仿真、调试和优化设计;(2)生成HDL代码-自动生成FPGA原型的HDL代码(3)验证HDL代码-再次使用你的Matlabtestbench来验证你的FPGA设计(4)创建和验证FPGA原型-在FPGA上应用和验证你的设计在将Matlab“翻译”到

5、硬件的过程中有几个特殊的困难。Matlab代码是一种面对过程的程序,而且可以高度抽象;他可以使用浮点数据并且没有时间概念。复杂的循环可以由矩阵运算和工具箱功能中推测出。在硬件中应用Matlab代码包括:(1)将浮点数Matlab代码转化为定点数Matlab代码,在这个过程中需要按照硬件生成的有效性对比特宽度进行最优化。(2)将基于过程的程序辨识和映射到并发的程序,并且进行运行速度最优化。(3)添加时钟和时钟率来完善硬件的调度。(4)创建资源共享结构来实现开销极大的操作如乘法器和for-loop循环体。

6、(5)将大块的数据矩阵映射到硬件的RAM中去。MatlabHDLCoder通过自动流程简化了上述任务。3Matlab算法例子让我们将一个应用了直方图均衡化算法的Matlab函数来展示这个流程。这个Matlab算法增强了图像的对比度,所以最终的效果是图像的直方图更加平坦。文件名称:typemlhdlc_heq.m%HistogramEqualizationAlgorithmfunction[pixel_out]=mlhdlc_heq(x_in,y_in,pixel_in,width,height)per

7、sistenthistogrampersistenttransferFuncpersistenthistIndpersistentcumSumifisempty(histogram)histogram=zeros(1,2^8);transferFunc=zeros(1,2^8);histInd=0;cumSum=0;end%Figureoutindicesbasedonwhereweareintheframeify_in

8、=pixel_in+1;elseify_in==height&&x_in==0%firstcolumnofheight+1histInd=1;elseify_in>=height%verticalblankingperiodhistInd=min(histInd+1,2^8);elseify_in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。