DSP builder组件在simulink中显示异常及无法显示问题的解决方法
[复制链接]
Matlab2010b装好之后,发现altera DSP Builder Advanced Blockset组件下的Modelprim显示的全是???,而且我在调用NOT反相器模块时,仿真时报错,提示是无法识别的组件!所以,这个组件的内容是有问题的。 图一很晕,本来就是已经解决了altera DSP Builder Blockset无法显示的问题,现在又来个Modelprim无法用的问题。初步怀疑上是版本不兼容,于是查找Altera官网,看它说了些什么:http://www.altera.com/support/ip/dsp/ips-dsp-version.html 图二 果然对于9.1版本,官方说了推荐使用R2008a, R2008b , R2009a。那么我就有理由怀疑我的2010b不兼容此版本的DSP builder。我还发了邮件问了骏龙的技术支持,他们也没遇到此种问题。 于是打算重装matlab,找同事要了个2009a版本,装的期间发现extract的时候报出warning了,说是matlab里面有些文件找不到,我当时也没理他,继续装下去,装好之后发现simulink的组件很少,不过呢,altera DSP Builder Advanced Blockset的Modelprim能够显示正常了,看来还是有收获的,果然是版本不对的苗头! 当我继续点击altera DSP Builder Blockset的时候,更郁闷的事情出现了,报错: 图三 这个错误果然很严重,matlab直接要退出来了!看了下details,都是些什么堆栈内容,没时间去细致了解。于是我就怀疑是我装的这个2009a里面有些文件被破坏了,因为刚开始装的时候extract是有warning的! 苦恼啊,再次卸掉2009a版本,继续找搞算法的同事要其他版本,最后只有2009b版本的了,很靠近,只有试试了,不然重新下载这么庞大的家伙得要多久。 装好2009b版本之后,altera DSP Builder Advanced Blockset的Modelprim组件也能正常显示,但是点击安装altera DSP Builder Blockset的时候,仍然报了上面的错误! 几乎筋疲力尽的情况下,突然想到上篇博客说的allblocks_alteradspbuilder2.mdl这个文件是不是好的呢,在matlab里file-open找到这个文件并打开,报错: 图四 此时内心窃喜,会不会仍然是这个文件的错误导致了严重报错呢? 终端下edit此文件,惊奇的发现3729行里面有个公式 y = a0xb0 ?a1xb1 [+ a2xb2 [?a3xb3]]] ,在2010b版本下里面可是没有公式的,只有个空格。果然物语同学说的公式是在低版本里才有,这个公式里的空格就是因为编码方式不一样才导致。 图五 Y= a0xb0 ± a1xb1 [+ a2xb2 [± a3xb3]]] 公式里的符号±是不被GBK中文编码支持,所以才表现出来是空格,把两个空格改成+/-: y = a0xb0 +/-a1xb1 [+ a2xb2 [+/-a3xb3]]] 保存,退出,restart!点击altera DSP Builder Blockset 你会看见: 图六 默默祈祷吧… 图七 呵呵,不懈的坚持终于有了收获。至此,2009b版本的malab完配dsp builder9.1.altera DSP Builder Blockset和altera DSP Builder Advanced Blockset组件下的Modelprim都能正常了! 总结一下: 2010b,Modelprim图标显示错误,matlab和dsp builder版本搭配问题 altera DSP Builder Blockset无法显示,编辑allblocks_alteradspbuilder2.mdl才能显示,这版本里没有公式,只有一个空格,需要换成+/- 2009b,Modelprim图标显示正常,虽然不在官方推荐版本之内,但是是能够正常显示的。这个版本可以和dsp builder9.1配套。 altera DSP Builder Blockset安装会出现严重报错,其实还是allblocks_alteradspbuilder2.mdl的问题,编辑之,发现里面有公式,需要把±导致的空格替换成+/。 2009a,因为我这里原安装文件都有点问题,所以没去深究。不过它在官方推荐版本内,应该是可以的。所以推荐还是使用配套的版本吧,少折腾点。 希望其他人少走弯路,特记录之!
|