【感芯科技MC3172开发板体验】性能测试 - RISC-V MCU技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

jinyi7016 关注 私信
[文章]

【感芯科技MC3172开发板体验】性能测试

微信图片_20230525151414.jpg

一、GPIO速度测试

芯片的 主频最高是是200M,每个线程的频率最高是50M,其实,代码的运行速度还是按200M来运行的,芯片本质上还是个单片机,而不是CPLD或是FPGA,所以,本质上,代码的运行并不能做到完全的并行

GPIO时钟配置为:INTDEV_CLK_IS_CORECLK_DIV2

GPIO翻转函数为:GPIO_SET_OUTPUT_PIN_TO_0与GPIO_SET_OUTPUT_PIN_TO_1

代码为:

void thread0_main(void)
{      
    INTDEV_SET_CLK_RST(GPIOD_BASE_ADDR,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV2)); 
    GPIO_SET_OUTPUT_EN_VALUE(GPIOD_BASE_ADDR,(GPIO_PIN0),GPIO_SET_ENABLE);
    while(1){
        GPIO_SET_OUTPUT_PIN_TO_0(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_1(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_0(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_1(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_0(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_1(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_0(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_1(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_0(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_1(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_0(GPIOD_BASE_ADDR,(GPIO_PIN0));
        GPIO_SET_OUTPUT_PIN_TO_1(GPIOD_BASE_ADDR,(GPIO_PIN0));
    }
    thread_end();
}

使用逻辑分析仪测量时序,速度大约为6M左右

clipboard.png

从这个速度上看,并不是200M的主频啊,经过测试,发现,要达到200M,时钟源的选择要选择内部的高速RC振荡器才可以,外部输入的时钟,并没有进行倍频,也就是芯片内部并没有PLL。

而且外部支持的最高时钟也只有133M,所以,目前板子上的晶振是48M的,速度当然不快了。

clipboard.png

如下,这是修改了时钟源后的时序图:

clipboard.png

可以看到修改了时钟源后,GPIO的翻转速度可以达到24M左右了。

芯片数据手册目前看,还不完整,没有时钟树,只是一些简单的介绍,期待官方早日完善。

二、计算性能

在两个线程中,分别进行1万次的整形乘法与浮点乘法,运行时间如下所示:

clipboard.png
整形乘法使用时间为2ms左右,浮点乘法运行时间为30ms左右。

之后又测试了除法,分别是4.5ms与28.3ms,这里除法运算时间低于乘法,有一些不解啊。

更多回帖

×
发帖