关于Nios和HDL的区别与意义

    最近碰到不少人问我,你的开发板能否做SOPC,能否做Nios。从我个人来说,我是不赞成初学者学习Nios的。不可否认,Nios很强大,在FPGA上构建一个Processer,用来处理硬件电路不擅长的流程控制和数据管理。但是大家有没有想过,既然是学习面向FPGA的逻辑设计,学习Nios有用吗?下面我们做一个简单分析:

    1,  作为FPGA,肯定是逻辑才是王道。FPGA的强项在于精确是时序控制,高速的IO输出,强大的并行处理能力,但是欠缺的就是流程控制,特别是复杂的流程控制,通俗一点说就是不灵活。Nios是用来弥补这个弱点的。就是说,nios生成的Processer是用来辅助FPGA的。可见,只有逻辑才能发挥出FPGA的强项,而Nios仅仅是一个辅助作用,单独的Nios的不能实现FPGA的强大的功能的,甚至不如一颗常见的ARM7/9 MCU。

    2,  很Nios的性能是非常低的,比目前主流的ARM7/9要低很多,nios能完成的功能,MCU都能完成。如果是要学习nios,然后用C来实现功能。那还不如直接用MCU来的爽快,成本也低很多,功能也强很多。同样的,资源也多很多。

    3,  很关键的一点,Nios是相对于简单的,只要符合一定的流程,看看相关的文档,很快就能上手,根本就没有什么难点,会了就会了,没有进阶的余地。很多看似高深的东西,都是C在实现,那还不如买个MCU来学C呢,是不是?

    4,  Nios没有用吗?错了。Nios强大的地方在哪里呢?定制指令,用Nios系统来做流程控制,控制硬件模块实现功能,就是将常见的嵌入式系统ARM+FPGA集成在一个FPGA里面。可是,nios是很容易学的,但是关键的硬件描述部分,还是要由逻辑来完成。就是逻辑是一切的基础,只要逻辑部分没有问题,我相信,三天之内学会Nios的配置,配合自己的硬件模块来实现功能是完全没有问题的(至少我就是这样的)。

在工程领域里面会用Nios吗?我不敢肯定说没有,至少我做了这么久,是没有见过这么用的。一个是Nios的性能太低。第二个是因为成本。Nios消耗的资源,带来的FPGA的成本的上升,远远的大余额外购买一颗ARM7/9的成本。所以,就目前来看,需要FPGA的嵌入式系统,大多都还是ARM+FPGA实现较多。

posted @ 2010-11-01 17:32  RedCore  阅读(1200)  评论(0编辑  收藏  举报