NIOS性能还是很强劲啊比6410强悍、
本帖最后由 nibia 于 2014-6-23 16:33 编辑最近在用NIOS 做一段图像处理程序,其实方案确实不靠谱,无奈老板做软件出身,懂一点点硬件,认为FPGA最强,一定要NIOS干。
同样c++代码,ok6410532Mhz执行时间225ms,nios 200Mhz执行时间133ms。NIOS开了硬件除法,使能了cache。6410我不知道是否还有什么可以优化的地方。
在虚拟机下,代码运行时间87ms.
看来nios性能还是很NB的啊。 NIOS+关键部分算法FPGA加速=无敌,不过用FPGA成本可就上去了 不知道LZ用的哪一个级别的FPGA,我就玩过CII的,NIOSII性能很渣
超过ARM9感觉上不可能的 我用的cycloneIV,现在好像百元左右吧。 感觉不靠谱,,,开硬件除法也要说???连Cortex-M3都有硬件除法,6410这种ARM11的肯定硬件除法、DSP、浮点运算都是有的。。。说FPGA运算比ARM11快我信,可NIOS也只不过是个CPU而已,, XIVN1987 发表于 2014-6-23 11:40
感觉不靠谱,,,开硬件除法也要说???连Cortex-M3都有硬件除法,6410这种ARM11的肯定硬件除法、DSP、浮 ...
最低级的硬除法器每个时钟除1位,大部分单片机内部的“硬件除法器”都是这样的
高级的有每个时钟除2位或除4位的,这样除法速度就快了2-4倍,差别还是很大的
如果除法在你的算法里面超级重要,那么给它配一个高级的除法器是有用的。
redroof 发表于 2014-6-23 11:53
最低级的硬除法器每个时钟除1位,大部分单片机内部的“硬件除法器”都是这样的
高级的有每个时钟除2位或 ...
我赞同你说的硬件除法器有快慢??
不过我认为以cycloneIV这种资源的FPGA上面实现的NIOSII,其除法器不可能比ARM11上实现的除法器更快,更慢倒是有可能,因为除法器是很耗逻辑资源的。。。 XIVN1987 发表于 2014-6-23 15:01
我赞同你说的硬件除法器有快慢??
不过我认为以cycloneIV这种资源的FPGA上面实现的NIOSII,其除法器不 ...
叫楼主看看他的NIOS里面的除法器是什么除法器吧
没准人家配的就是一个每次除4位或者更多位的快速除法器{:lol:}
除法器是很费资源,但如果除法对楼主很重要,耗掉半个FPGA的资源做个超快的除法器也值得
用ARM11,就只能用自带的每次除1位的除法器了。 NIOSII在CYCLONE IV中能跑200MHz,楼主怎么做到的?稳定不? 不信,两个测试环境基本完全一样么 linux自身的损耗没还没算呢,你NIOS上还跑OS吗?八成是裸机吧,人家6410还要背着一个沉重的linux跑,当然累了。
LZ可以试试看用6410裸机跑,不知道你多大分辨率,反正肯定比现在这个成绩大大超出。 本帖最后由 nibia 于 2014-6-23 16:35 编辑
恩,nios是裸奔的。 nios我只是使用自带的硬件乘法除法器,开启cache。添加了tightly coupled memory和clock bridge。开启cache确实能很大提高速度,我测过的。、
代码都是完全一样的,ok6410各部分耗时我记录为225ms,100us,1.6ms;同样在nios下133.5ms,0.3us,0.37ms。图就不截了。
在linux下计时:
gettimeofday(&tpstart,NULL);
usleep(9000); //9ms
gettimeofday(&tpend,NULL);
timeuse = 1000000*(tpend.tv_sec - tpstart.tv_sec)+ tpend.tv_usec - tpstart.tv_usec;
timeuse /= 1000000;
printf("use time0:%f\n",timeuse);
实际延时的时间为12ms。在pc下延时正常。
在nios下计时:
PERF_BEGIN(PERFORMANCE_COUNTER_BASE,1);
usleep(100000);//100ms
PERF_END(PERFORMANCE_COUNTER_BASE,1);
usleep在nios没有开始cache和那些bridge时候 是100ms,开启了那些,实际延时小于100ms。
同时nios也耗费了fpga 90%的资源、我只是试验,我还想说,方案不靠谱,实际估计也没有人这么做。 jianfengxixi 发表于 2014-6-23 15:30
NIOSII在CYCLONE IV中能跑200MHz,楼主怎么做到的?稳定不?
我在CYCLONE2上超频跑 可以做到。当时用的是EP2C5Q208C7N用的是7 的速度等级。
CYCLONE 4 应该问题不大。
应该说NIOS + FPGA加速器的整体表现超过了6410 ,不能单独说NIOS吧。 结论相当不靠谱啊
一个是裸跑,一个带Linux系统,没的比 都裸奔试试看 涨见识了! 又学习了,长知识了 NIOS 性能还不及STM32F103 我会乱说? 添加了硬件乘法器,100MHz的NIOS也就差不多60MHz的cortex m3。而且调试NIOS软件,慢得要死。 学到东西了 感觉应该让6410裸跑程序再进行比较 怎么说呢? 论坛里对nios一片叫骂声,不知是nios做过项目还是跟着别人骂的。我用nios做过两个完整的项目,跑ucos,开cache,优化-os,带优盘,上位机,电阻电容屏,8寸、7寸屏,打印机,程序运行还是相当流畅的,用的是飓风三。只是nios在调试时有时候会莫名出现一些bug,让人很恼火,但摸清了它的脾性,个人感觉操作还是很简单的。 有些算法是硬件实现的,相当于并行处理,速度当然快 楼主果断6410没开cache 2年前用 nios加ucos 切换进程的时候用了1400多clk 用过cyclone ii,超频能跑到100Mhz,感觉跟stm32差不多 我猜楼主6410不是裸奔,系统有其他任务分走了时间片,别告诉我你6410 nios跑的是一样的OS
页:
[1]