MBD - DSPBuilder / HDL Coder 工具链安装调试

!本方案的系统环境与安装套件:
Win7 64bit, VS2012 enu MSDN,
Quartus13.0sp1 , DSPBuilder13.0sp1 64bit, Modelsim10.2c,
Matlab2013a 64bit, Matlab2016b.
安装以上这些软件最好都在分区内直接的目录下,如D:\MATLAB 以及C:\altera
最好不要在安装路径中出现空格与中文字符,不然也许会出现一些问题。

[TOC]

前言

本方案旨在初步搭建一个根据模型生成HDL代码,流程自动化,便于仿真调试的工具链。
DSP Builder/System Generator是FPGA厂商为Matlab制作的插件,Matlab用户可以根据这些模块包里给出的IP/元件方便的进行算法/数字系统设计,产生HDL源文件并观察仿真结果;
Matlab本身也提供了HDL Coder + HDL Verifier + Fixed Point这一套,将 m语言建立的模型/Simulink Library中元件建立的模型 生成HDL描述 并自动产生测试结果的工具箱;
这些工具极大的方便了Fixed-Pointed的算法设计和测试验证,将人从繁杂的劳动中解放出来,以更高效和简明的方式去处理解决问题。

版本选择/兼容性问题

  • Matlab2013a~Matlab2016b均支持/兼容VS2012,所以这里选择安装VS2012
    需要注意的是Matlab对中文版VisualStudio识别不好或无法识别,所以这里要安装VS2012英文版本,为了保持纯净,所以选择的是MSDN 英文版本;并且需要将这个软件完全安装在默认的路径,即C盘上,不要安装一部分到其他盘!
    Matlab识别VS的问题参考:
    http://blog.163.com/xenocide_wq/blog/static/171663504201093163241741/
    VS2012 enu MSDN版本参考:
    http://imsdn.com/forum.php?mod=viewthread&tid=977&extra=page%3D1%26filter%3Dtypeid%26typeid%3D1055%26sortid%3D1
    这个源可能有点慢,可以在百度网盘上找一个同样的文件名和大小的VS2012 ISO文件,下载后需检查SHA1值和网页上的一致即可。

  • 安装Quartus13.0sp1。注意如果是Win7 64bit系统,那么默认会安装和配置Quartus13sp1 64bit的版本。

  • 安装Matlab2013a 64bit版本。经过多次安装实验,得出结论:在本方案的Win7 64bit系统上,Quartus13.0sp1 64bit + DSPBuilder 64bit能和Matlab2013a 64bit 版本兼容;而不会导致在新建的simulink工程中,在设置修改AltBus等DSPBuilder模块的参数时报错,或者使用SignalCompiler编译工程,生成VHDL时报错License无效。
    以下是2种典型的安装破解 不兼容/实际无效时发生的报错情形,参见:
    http://bbs.eetop.cn/thread-437283-1-1.html
    http://archive.ednchina.com/group.ednchina.com/GROUP_MES_14596_3000001760_5000015804.HTM
    这种错误基本上是因为License不对应或无效导致的,简单的用低版本Quartus 11/DSPBuilder 11的License作为破解DSPBuilder13.0sp1的License虽然在Quartus软件里看是有效的,但实际上无效,一是位宽不匹配(网上的DSPB的license多用于32bit版本),二是版本不对应。
    本文附录部分给出一个64bit DSPBuilder的破解文件,可用于DSPBuilder 13.0sp1 ** 和DSPBuilder15.0(其他未测试) 64bit版,对于该license,则需要安装搭配64bit版本的Matlab使用。**
    另外,网上和附录中的DSPBuilder License,对于DSPBuilder的Advanced Blockset均没有成功破解,破解与可使用的是Standard Blockset部分。

Matlab2013a支持最完善的搭配版本是Quartus12.0,然而Quartus12.0的DSPbuilder12.0默认不支持Matlab2013a;
此外Quartus13sp1支持的最高版本为matlab2013a,和之后发布的matlab版本兼容性上可能会有问题。

  • 安装Matlab2016b。该版本是目前HDL Coder/HDL Verifier出现Bug最少的一个版本,建议在VS2012安装之后安装Matlab2013a,在最后安装Matlab2016b。
    Matlab在VS之后安装可以自动默认的识别英文版VS/VC++,防止手动修改出错。
    如果是在Matlab安装后才安装VS2012,并且不想卸载Matlab再重装的,可以试一试手动让Matlab识别VS,关于mex -setup命令(nyy)和 mbuild -setup命令(ny),参考下面博文:
    http://blog.csdn.net/qq_22522663/article/details/50470257

  • 安装DSPBuilder 13.0sp1到默认路径,关联Matlab2013a,并且根据附录文件里的说明破解64位版DSPBuilder。
    DSPbuilder需要在Matlab2013a安装后再安装,并且安装时需要直接选中自动识别出的,本机中安装的,兼容本版本DSPB的,Matlab2013a版本的安装目录,这样才能互相识别。
    需要注意的是,不必强行让DSPBuilder13.0sp1去识别Matlab2016b,因为它们是不兼容的,一个太旧,一个太新;此处安装一个在Matlab2013a里已经够用。

  • Matlab2013a支持 ModelsimSE 10.1a, 10.0c, 6.6d, 6.5f; 对于10.2c会报warning,但是实际测试发现不影响使用。
    通过测试ModelsimSE10.2c在Matlab2013a 64bit和Matlab2016b内被调用的表现,综合考虑,选择安装Modelsim SE 10.2c 64bit版本,选SE版本是因为Matlab自动生成的testbench文件常常超过1万行,则OEM版的AE和XE均不可用。

  • 综上,安装Matlab2013a 64bit + DSPbuilder13.0sp1(64bit) 作为DSPBuilder工具套件,建模设计。
    使用Matlab2016b版本的HDL Coder + HDL Verifier + Fixed-Point 作为MBD HDL工具套件,建模调试。

安装破解

  • 安装破解VS2012
    只选择C++基础类并设置VC++工作环境
MBD - DSPBuilder / HDL Coder 工具链安装调试_第1张图片
vs2012config.png

安装后检测64位的cl.exe是否适配可用,返回的是全英文的描述则可用。

MBD - DSPBuilder / HDL Coder 工具链安装调试_第2张图片
vs2012chk.png
  • Matlab2013a 64bit版本安装
    略,很简单,见附录文件。

  • Matlab2016b安装
    也很简单,但要注意网上某些文章里的安装方法可能是有问题的,比如当前的应用里,不要使用Matlab Product Server里的破解文件替换安装文件,而需使用crack下R2016b文件夹内的文件去替换相应目录下的文件;此外有些matlab2016b crack里打包的license较旧,实际上是2016a的,可能会有问题;在本文附录文件里提供了可用的,更新的license。
    安装过程可参考以下文章的大致意思:
    http://wenku.baidu.com/link?url=GZV6cBRy73Aj6FM9l-4peetyfmq6r__kljlq7QMoaVNSAwSetoeBMHgjL6PrEBrkTBETZq7OO928jeqYhv9NWJEB0-xTN89IAE2DiS2wYH3

  • Quartus13.0sp1, DSPbuilder13.0sp1
    DSPBuilder的License描述和Quartus的License文件,建议合并内容为一个license.dat文件。
    这个的安装破解方法很简单,可以找到很多相关博文,这里不再赘述。

  • ModelsimSE 10.2c 安装


    MBD - DSPBuilder / HDL Coder 工具链安装调试_第3张图片
    pathvar.png

    需要注意一点,设置环境变量时,建议将ModelsimSE 10.2c许可的环境变量名设为MGLS_LICENSE_FILE,和Quartus的LM_LICENSE_FILE分开;这样可以避免在某些地方发生奇怪的问题。

关于启动

  • 如果不准备使用DSPBuilder构建数字系统而是只使用Matlab自带的HDL Coder工具的话,那么可以直接点击matlab的启动图标(源地址在matlab安装目录的bin/文件夹下)直接启动matlab。

  • 如果使用DSPBuilder,那么需要从DSPBuilder里启动matlab,如下


    MBD - DSPBuilder / HDL Coder 工具链安装调试_第4张图片
    bootdspbm.jpg
  • 一般的,无论是在Matlab2016b还是Matlab2013a(+DSPB)中,假设希望生成的HDL文件要求使用Quartus综合器,针对特定FPGA器件型号,或者有在抽象层次上观察关键路径延时的需要,或者想要根据模型直接生成qpf工程,那么需要在打开Matlab后就执行一条命令:
hdlsetuptoolpath('ToolName' , 'Altera Quartus II' , 'ToolPath' , 'C:\altera\13.0sp1\quartus\bin64\quartus.exe');

若想在打开Matlab后,让其自动切换到工作目录,那么可以写一个startup.m脚本,将其放到matlab安装目录的bin/下和dspbuilder的安装目录下,如在:
D:\MATLAB\R2013a\bin
C:\altera\13.0sp1\quartus\dsp_builder
目录下,新建startup.m文件,内容可以写:

hdlsetuptoolpath('ToolName' , 'Altera Quartus II' , 'ToolPath' , 'C:\altera\13.0sp1\quartus\bin64\quartus.exe');
cd F:\matwork

matlab默认不会载入quartus编译器支持。另外,如果使用matlab安装目录bin下的exe文件启动matlab,那么开启时目录自动切换到bin/下,如果通过dspbuilder启动matlab,那么启动matlab后,工作目录默认切换到dspbuilder的安装目录下。推荐熟悉后在这两个路径下分别放一个startup.m文件,将quartus执行文件路径以及自己开启matlab时希望自动切换去的工作路径写上。

  • 快速了解当前Matlab支持的,可以生成HDL描述的模块
    1.使用Simulink库中提供的基本的模块搭建数字系统,在生成HDL Code时是不需要外界的编译器的。
    在command窗口中执行命令:
hdllib

返回的是simulink library中支持自动生成HDL代码的模块,可供快速查看。
2.可转换为HDL描述的M-function文件
执行命令:

eml_hdl_design_patterns

返回的是matlab自带提供的一些可以转换生成HDL代码的M-function模块。
有些情形需要VC++2012等外部编译器的辅助才可以执行转换;由于Matlab破解的不完善,Matlab自身的Bug,Matlab和VS的兼容性问题,32位软件和64位软件,系统的不匹配,软件冲突等原因;转换时经常会在这一点的相关步骤上出错。

详细的支持自动生成HDL的函数与模块说明见官方网站上的文档,虽然全英文,但是还是得看是吧。

  • 其他问题
    1.工作空间的当前目录和当前工程文件,以及源文件需要为同一目录。
    2.Matlab2016b的Workflow Advisor操作方式和之前的版本略有不同。
    开启matlab2016b后执行: hdlsetuptoolpath('ToolName' , 'Altera Quartus II' , 'ToolPath' , 'C:\altera\13.0sp1\quartus\bin64\quartus.exe');
    切换到非C盘工作目录,如E:\mlhdlc,在之前将源文件放在此文件夹中;


    MBD - DSPBuilder / HDL Coder 工具链安装调试_第5张图片
    wa1.png

在启动hdlcoder后,拖动源文件和测试文件到HDL Code Gen面板的相应位置上以导入;先不要点击面板下方的Wolkflow Advisor,此时先点击Autodefine types;

MBD - DSPBuilder / HDL Coder 工具链安装调试_第6张图片
wa2.png

则会出现如下对话框,点击运行;

MBD - DSPBuilder / HDL Coder 工具链安装调试_第7张图片
wa3.png

之后会出现如下对话框,这里是简单的按默认值直接勾选;使用者自己可根据实际情况修改此设置值;

MBD - DSPBuilder / HDL Coder 工具链安装调试_第8张图片
wa4.png

此时可以点击Workflow Advisor正式进入生成HDL的流程了,如果一步一步的操作与设置无误,那么Fixed-Point Conversion这一步的Variables栏是有数据的,否则一片空白且HDL Coder Generation不成功。

MBD - DSPBuilder / HDL Coder 工具链安装调试_第9张图片
wa5.png

检测安装

  • DSPBuilder的demo在C:\altera\13.0sp1\quartus\dsp_builder\DesignExamples路径下,在Matlab2013a中执行hdltoolsetup命令后,再直接打开一个Altera官方提供的demo模型仿真与综合,看是否能生成VHDL源文件以及quartus工程.
MBD - DSPBuilder / HDL Coder 工具链安装调试_第10张图片
dspbdemo.png
  • Matlab2016b的HDL Coder/HDL Verifier/Fixed-Point工具箱使用检测
    Matlab官方提供了很多demo,参考:
    https://cn.mathworks.com/help/hdlcoder/examples/getting-started-with-matlab-to-hdl-workflow.html
    https://cn.mathworks.com/help/hdlcoder/examples/floating-point-to-fixed-point-conversion.html
MBD - DSPBuilder / HDL Coder 工具链安装调试_第11张图片
hdlcdemo.png

Workflow Advisor

  • 请注意,若基于Simulink库的基本模块搭建模型,初次运行HDL Workflow Advisor,其中的Check Global Setting 项可能会报错,在报错的面板上,点击按照推荐Config重新run即可。

  • 所谓的FPGA硬件在环测试只支持官方的DE2板子,所以没钱不给报销别想用。

  • 关于反标延时信息项(Annotate Model with Synthesis Result)
    有的模型必须选中show ends only,才能生成单个标注,否则报错。
    有的模型可以不选中show ends only,最后生成的标注是关键路径各段的延时。
    这里的显示比较直观,可以帮助在更高层次上优化算法。
    反标这里有一个问题,对于某个demo模型,在如matlab2013a,2016b版本上则必须要选中show ends only选项,才会不报错;而同一个模型放到matlab2015b中编译,可以不选此项也可顺利出结果,所以这里是一个时隐时现的小bug。

  • log comparison选项,这个选项挺关键的,然而在使用官方demo测试时,发现对于Matlab2013a,Matlab2014b,Matlab2015b版本均无法实际选中执行,因为选中Run就会报错,整个Workflow也就进行不下去了;但是在Matlab2016b版本上,选中这个选项Run,神奇的没有出现Bug。
    对于gui模式启动的Modelsim10.2c 只要将需要查看的信号Add Wave,然后中止,再run -all,再手动stop,就可以看到波形和数据的情况.


参考文档

  1. Matlab需要额外的编译器(Compiler)支持才可以正常编译执行转换m文件。
    https://cn.mathworks.com/products/availability.html#ML
  2. Matlab常用函数
    https://cn.mathworks.com/help/matlab/functionlist.html
  3. Matlab在线help
    https://cn.mathworks.com/help/index.html?s_cid=doc_ftr

便车

VS2012MSDN_EN 链接:http://pan.baidu.com/s/1nuP9hX3 密码:ii8y
Matlab2013a 链接:http://pan.baidu.com/s/1hsPZ5ti 密码:y5c3
Matlab2016b 链接:http://pan.baidu.com/s/1bpKJXxX 密码:xzhl
Quartus13.0sp1+DSPBuilder 链接:http://pan.baidu.com/s/1hsA00ok 密码:qpek
ModelsimSE10.2c 链接:http://pan.baidu.com/s/1kVrx6gJ 密码:jwue

后记

若有疑问,可电邮[email protected]联系,简信很少看。

你可能感兴趣的:(MBD - DSPBuilder / HDL Coder 工具链安装调试)