替换宽整数乘法

10次浏览(过去30天)
莱昂卫矛
莱昂卫矛 2019年9月25日
回答: 安迪·巴特利特 2020年1月2日
你好!
我在Simulink嵌入式编码器项目中使用定点数据。万博1manbetx乘数器产生的代码需要广泛的整数操作,因为两个32位的定点类型被乘成一个64位类型,然后移位。对于32x32位乘法,代码生成器使用实用函数
mul_wide_u32
mul_wide_s32
这个功能很复杂,对于我的用例来说是不必要的,因为Cortex M3架构有MULL(长乘法)指令。是否有一种方法自动替换mul_wide_u32和mul_wide_s32与自定义函数?因为我使用的是不动点,所以我需要为每n个位移定义一个乘法函数,所以我想替换乘法,让matlab处理移位(mul_u32_loSR等等)。
我可以用定制的代码替换生成的代码字符串或函数吗(不是替换代码块,而是替换生成的代码)
谢谢你!
利昂

答案(2)

莱昂卫矛
莱昂卫矛 2019年9月29日
我现在已经找到了Cortex M3的代码替换库,但是很少有函数仍然使用matlab生成的效用函数,尽管数据类型与用Cortex函数替换乘法时相同。什么好主意吗?

安迪·巴特利特
安迪·巴特利特 2020年1月2日
嗨,利昂,
解决这个问题可能很简单,只要打开对模型的支持。万博1manbetx
请参阅本文。
和/或视频
请让我们知道,如果这解决了问题
安迪

社区寻宝

在MATLAB Central中找到宝藏,并发现社区可以如何帮助你!

开始狩猎!