找回密码
 立即注册
楼主: 社区闲人

如何设置TFPU时钟源为PLL时钟96MHz / 120MHz | 已在完善演示程序的说明

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-9-14 16:05:40 | 显示全部楼层
已安排在写如下演示程序:
AI8051U@40MHz
TFPU@120MHz
的应用案例
异步时钟间的数据传输用的是CPU时钟,40MHz
CPU送数据到TFPU,要2个CPU时钟
TFPU送回数据到CPU, 2个CPU时钟
无他

一般是 < 1uS, 长的也就 < 3个uS
截图202409141602072560.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-9-14 17:39:01 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:514
  • 最近打卡:2025-05-02 10:18:47

24

主题

515

回帖

990

积分

荣誉版主

积分
990
发表于 2024-9-15 11:21:41 | 显示全部楼层
新的测试结果:

不使用PLL时钟,选择 系统时钟 为TFPU时钟源,
烧录时设置频率为40MHZ。 耗时12.7us。


void delay()
{
    int i;

    for (i=0; i<100; i++);
}

void PLL_Init()
{
//  CLKSEL &= ~0x80;        //选择PLL的96M(*8)作为PLL的输出时钟
    CLKSEL |= 0x80;         //选择PLL的144M(*12)作为PLL的输出时钟

    USBCLK &= ~0x60;
//  USBCLK |= 0x00;         //PLL输入时钟为12M则选择1分频
//  USBCLK |= 0x20;         //PLL输入时钟为24M则选择2分频
    USBCLK |= 0x40;         //PLL输入时钟为48M则选择4分频
//  USBCLK |= 0x60;         //PLL输入时钟为96M则选择8分频

    USBCLK |= 0x80;         //启动PLL

    delay();                //等待PLL锁频,建议50us以上

    HSCLKDIV = 0;                    //高速外设时钟源不分频
    TFPU_CLKDIV = 0;        //TFPU时钟源不分频

//  CLKSEL &= ~0x40;        //选择系统时钟作为高速外设时钟源
    CLKSEL |= 0x40;         //选择PLL时钟作为高速外设时钟源
}

使用上面的代码,选择 PLL时钟 为TFPU时钟源
烧录时设置频率为40MHZ。TFPU时钟源--->120MHZ, 耗时9.08us。


使用上面的代码,
烧录时设置频率为30MHZ。TFPU时钟源--->90MHZ, 耗时12.08us。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:514
  • 最近打卡:2025-05-02 10:18:47

24

主题

515

回帖

990

积分

荣誉版主

积分
990
发表于 2024-9-15 11:24:02 | 显示全部楼层
测试用的代码如下

捕获ccr.PNG


点评

这段代码中有许多非浮点数运算和非32位整数运算以及变量的存取操作,可以作为综合运算速度指标,所以只是提高MDU32和TFPU的工作频率的效果不显著,需要像MDU32C一样全面采用DPU提高各种运算的速度,才能使得单片机的  详情 回复 发表于 2024-9-15 12:04
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-9-15 12:02:52 | 显示全部楼层
怀疑你的程序
跑的是 Keil的软件浮点库
没有跑我们的硬件浮点库

截图202409151202335159.jpg


深圳国芯人工智能有限公司-库函数 (stcai.com)

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-9-15 12:04:33 | 显示全部楼层
社区*** 发表于 2024-9-15 11:24
测试用的代码如下

这段代码中有许多非浮点数运算和非32位整数运算以及变量的存取操作,可以作为综合运算速度指标,所以只是提高MDU32和TFPU的工作频率的效果不显著,需要像MDU32C一样全面采用DPU提高各种运算的速度,才能使得单片机的综合运算速度指标得到大幅度地提高
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-9-15 12:05:39 | 显示全部楼层
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-9-15 12:11:35 | 显示全部楼层
截图202409151211013990.jpg


截图202409151213031727.jpg

截图202409151213194522.jpg


截图202409151213322322.jpg








回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-9-15 12:16:30 | 显示全部楼层
怀疑你的程序
跑的是 Keil的软件浮点库
没有跑我们的硬件浮点库



没其他理由了,
我们不会设计个快的,然后又设计个慢的放里面
===搞2套 TFPU, 那要增加成本
只可能是你犯错了

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-9-15 12:19:51 | 显示全部楼层
截图202409151219471346.jpg

40MHz
你跑 KEIL 软件浮点  12.7uS = 12700nS


40MHz
你跑 AI8051U 的硬件浮点@40MHz,    600nS,快了 21倍,正常
你跑 AI8051U 的硬件浮点@120MHz,  350nS,快了 36倍,
===为何不是40倍以上这个要查,放假了,节后查


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 21:01 , Processed in 0.147122 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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