最近在用Verilog编写一个小模块。模块并不难,关键在于对它的分析,遍历需要42亿种结果,verilog仿真刚打开,就被迫卡死了。
之后换matlab进行仿真,数据量还是很大。不过对算法的计算过程进行一定优化之后,勉强能跑了。

这个时候,就体现了游戏本和轻薄本之间的差别。轻薄本是在游戏本之后四年买的。接近一天一夜的时间。原计划十亿次的计算,只跑了大概九千万。游戏本一个晚上就跑了一次遍历,等到我停止轻薄本的仿真过程时,已经跑了两次遍历的结果。大概就是百倍的计算性能的差距吧。现在半天一个结果,勉强符合我的要求了。

再后来,在网上找到了一个cpp的测试程序,一秒钟两亿次的运算能力。很强。
我又写了一个类似的matlab程序,运行了只有81万次。差异巨大。以后还是要锻炼一下cpp代码的能力。
经过这次调试,我觉得,所有的语言都是为了实现某一功能而存在的。matlab很方便,cpp很快。重点在于,选择合适的。

    cpp代码
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <algorithm>
#include <cstring>


using namespace std;

const int T=1000000000;

int main()
{

    float a=3.1415926535898,b=30.1415926535898,c=300.14159265358,d;

    for(int i=0;i<T;i++){
            d=a*b+c;
    }
    printf("%.2f\n",(double)T/((double)clock()/CLOCKS_PER_SEC));

    return 0;
}
    
    matlab代码
    clear all
    t1=cputime
    
    a=3.1415926535898
    b=30.1415926535898
    c=300.14159265358
    e=0

    while (cputime-t1 <=1)
         d=a*b;
         e=e+1;
    end
    t2=cputime
    t=t2-t1