找回密码
 立即注册
查看: 2337|回复: 11

请问STC8H的硬件乘法器相关资料在哪里?

[复制链接]

2

主题

6

回帖

30

积分

新手上路

积分
30
发表于 2023-11-13 22:50:47 | 显示全部楼层 |阅读模式
看到STC8H系列里有硬件乘法器,在手册里搜索不到相关资料。请版主提供相关资料学习。谢谢。
回复

使用道具 举报 送花

2

主题

6

回帖

30

积分

新手上路

积分
30
发表于 2023-11-13 23:09:44 | 显示全部楼层
已经找到,只怪我粗心。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2023-12-05 19:37:53

3

主题

324

回帖

363

积分

禁止发言

积分
363
发表于 2023-11-13 23:44:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

积分
5499
发表于 2023-11-14 10:26:53 | 显示全部楼层
建议 楼主 不要使用 STC8H系列里的硬件乘法器, 速度奇慢. MDU16 彻底 废了

以经典的 int 乘法为例, 硬件乘法(直接使用官方MDU16库) 和 软件乘法 相 PK,  速度差 3倍 .

请看 清楚, 是慢 3倍, 不是 增速 快 3倍.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:447
  • 最近打卡:2025-06-19 15:15:10
已绑定手机

40

主题

2064

回帖

7105

积分

论坛元老

积分
7105
发表于 2023-11-14 18:30:26 | 显示全部楼层
LAO*** 发表于 2023-11-14 10:26
建议 楼主 不要使用 STC8H系列里的硬件乘法器, 速度奇慢. MDU16 彻底 废了

以经典的 int 乘法为例, 硬件 ...

我不知道你的结论是怎么得出来的。

STC8H实验箱例程包有MDU16的使用例子:46-MDU16使用硬件函数库计算
屏蔽掉无关的打印信息,通过P10 IO口的低电平信号就能测出计算时间:
截图202311141825342971.jpg

使用MDU16硬件库时测量P10的低电平时间是16us左右:
截图202311141829109820.jpg

不使用MDU16硬件库时测量P10的低电平时间是24us左右:
截图202311141827495857.jpg

截图202311141828429641.jpg

附件是测试代码,有兴趣的朋友可以自己试试。

46-MDU16使用硬件函数库计算.zip

11.05 KB, 下载次数: 137

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

积分
5499
发表于 2023-11-15 07:01:21 | 显示全部楼层
理论上, 主频高一倍, 整体速度就翻一倍,  但实际上并不是这样

STC32F12K54 的主频用高了, 就产生一个问题, 速度提升有限, 频率越高, 速度升幅越小, 超过极限就彻底完蛋(死机),  其原因就是多级流水线解码错误, 重复取码再解码浪费时间,

主频高到一定程度, 解码永远解不成功, 造成死机.   

官网上有个很出名的 STC32F12K54 测试程序, 号称运算速度比原速度快 17倍, 你可看到, 不同频率下, 速度比值不同(理论上, 这个比值恒定, 与频率无关),

我下载了标准测试程序, 用 STC32F12K54 仿真测试(采用默认频率 11.0592), 运算速度比值比官网上更理想,
值更大, 硬件运算速度更快.  主频低 解码几乎无误率

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

积分
5499
发表于 2023-11-15 07:09:58 | 显示全部楼层
编写了一个最简单的测试程序, 以   不用 MDU16库 和  加入 MDU16库, 分别运行, 读取 T0 计数值作对比



不用 MDU16库,  T0 计数值 , 为 25

捕获1.JPG




加入 MDU16库,  T0 计数值 , 为 68

捕获2.JPG



下面为测试程序


test11.rar (24.19 KB, 下载次数: 129)



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5499

积分

荣誉版主

积分
5499
发表于 2023-11-15 07:12:34 | 显示全部楼层
单从功能上 讲 , MDU16 的 功能 要比 MDU32 强大,
几乎包含了 单精度浮点运算的一切功能,  我很喜欢.

通过进一步仔细分析原因, 主要是 STC8H 系列 MDU16 的 参数 输入/输出,

没有放在 DATA 区域, 而放在了 XRAM 区域,  必须通过 DPTR 指针 才能读写 ,

从而 整体 拖慢了 速度 , 影响 了 性能.

说实话, STC8H 系列 其他 模块 功能 尚可,  仅 MDU16 性能 表现差到极致, 不使用就是了,

并不影响 STC8H 系列 的 其他 性能.

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:561
  • 最近打卡:2025-06-19 05:14:51

24

主题

524

回帖

1236

积分

荣誉版主

积分
1236
发表于 2023-11-15 07:42:11 | 显示全部楼层
利用MDU16做一个乘除函数,u16 mul_div16(u16 a,u16 b,u16 c);  //   a*b/c
计算:输入电压 = (u32)1190*ADC12/ADC15
减少数据传输,大幅提升计算速度。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:447
  • 最近打卡:2025-06-19 15:15:10
已绑定手机

40

主题

2064

回帖

7105

积分

论坛元老

积分
7105
发表于 2023-11-15 09:49:23 | 显示全部楼层
LAO*** 发表于 2023-11-15 07:01
理论上, 主频高一倍, 整体速度就翻一倍,  但实际上并不是这样

STC32F12K54 的主频用高了, 就产生一个问题, ...

芯片的主频上不去是因为当前Flash的工艺限制,Flash的读取速度上限就40M左右,CPU运行频率过高时从Flash里面读取指令就得加延时,否则读取指令就会出错。所以高速芯片都需要加cache,将指令搬到SRAM里面再执行。而外设运行速度就不受这个限制。
至于MDU16的运行效率到底怎么样,烧录到芯片里面直接运行才是最准确的。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-20 04:58 , Processed in 0.147013 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表