Altera Nios嵌入式处理器大赛知识讲座 系统的问题,零零碎碎说了那么些,最终的目的,其实就是要把积木搭起来,而我们之前说 的都是一些工具,我们组建一个系统可以使用的一些资源。看看我们是否可以根据我们对这 些积木的了解来组建一个最炫的系统出来。我们首先看看我们有些什么好了。 z NiosII: 牛死 or 死牛 NiosII 其实是个很好玩的东西,他可以让你的系统牛死,但是也很容易就变成了死牛。NiosII 作为一个软核,好处是可以很容易的实现多核系统,坏处就是他的速度不够快,一百多兆的 速度,显然和什么 ARM 啦什么的没办法比了。但是问题是,NiosII 是在 FPGA 中实现的, 所以他可以使用非常多的加速方式,使得这头死牛变得牛死。作为 CPU,它本身的控制, 灵活性是毋庸置疑的,所以我们需要在操作速度上面做文章。把一个几十,甚至几百行的软 件代码,变成硬件,成为一条指令。对了,我们可以使用自定义指令来实现。比如一个比较 庞大的复杂运算,而输入和输出又相对单纯。这当然是一种方式,这种方式相对来说是最简 单的,因为软件里面只是调用了一条指令而已。但是这种方式有一个小缺点,当你的运算非 常大的时候,CPU 不得不停下来等着你完成计算它才会继续下去。针对这种状况,我们可 选择使用一个 component 来加速。就是把加速硬件模块做成一个 component ,然后用 Avalon-MM 和它进行连接。这样在这个模块进行运算的时候,CPU 并不会暂停,而是不断 的继续下面的程序。最后 CPU 来看一下结果就好了。但是坏处是,会占据一段时间的 CPU 上的 avalon-mm 端口。硬件加速的效果是可以惊人的,完全可以做到让一条死牛,变成真 正的牛死。 z 数据搬运: 现在又带来一个新的问题,如果我们需要搬运很多的数据,从一个地方到另外一个地方,怎 么办呢?通过 NiosII 可能会太慢了,同……