数据搬运:.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据搬运:

系统的问题,零零碎碎说了那么些,最终的目的,其实就是要把积木搭起来,而我们之前说 的都是一些工具,我们组建一个系统可以使用的一些资源。看看我们是否可以根据我们对这 些积木的了解来组建一个最炫的系统出来。我们首先看看我们有些什么好了。 NiosII: 牛死or 死牛 NiosII 其实是个很好玩的东西,他可以让你的系统牛死,但是也很容易就变成了死牛。NiosII 作为一个软核,好处是可以很容易的实现多核系统,坏处就是他的速度不够快,一百多兆的 速度,显然和什么ARM 啦什么的没办法比了。但是问题是,NiosII 是在FPGA 中实现的, 所以他可以使用非常多的加速方式,使得这头死牛变得牛死。作为 CPU,它本身的控制, 灵活性是毋庸置疑的,所以我们需要在操作速度上面做文章。把一个几十,甚至几百行的软 件代码,变成硬件,成为一条指令。对了,我们可以使用自定义指令来实现。比如一个比较 庞大的复杂运算,而输入和输出又相对单纯。这当然是一种方式,这种方式相对来说是最简 单的,因为软件里面只是调用了一条指令而已。但是这种方式有一个小缺点,当你的运算非 常大的时候,CPU 不得不停下来等着你完成计算它才会继续下去。针对这种状况,我们可 选择使用一个 component 来加速。就是把加速硬件模块做成一个 component ,然后用 Avalon-MM 和它进行连接。这样在这个模块进行运算的时候,CPU 并不会暂停,而是不断 的继续下面的程序。最后CPU 来看一下结果就好了。但是坏处是,会占据一段时间的CPU 上的 avalon-mm 端口。硬件加速的效果是可以惊人的,完全可以做到让一条死牛,变成真 正的牛死。 数据搬运: 现在又带来一个新的问题,如果我们需要搬运很多的数据,从一个地方到另外一个地方,怎 么办呢?通过NiosII 可能会太慢了,同时这样的事情,是不是太过无聊了一些,用CPU 来 做大材小用了。那么这个时候,我们可以用一个叫DMA 的长工来搬箱子。 高吞吐量: 现在要求更高了些了,就是我对数据的计算量要求非常大,数据又是源源不断的进来了。我 们必须很快的处理数据,同时可以做相应的控制。那么我们就引用了Avalon-ST 来提高数据 的传输速度: 我需要更大的灵活度: 系统又提意见了,这样的设计速度是有了,可是没有灵活性啊。针对不同的协议,我可以需 要的操作不一样呀,你不能这么死的连在一起。好像曹操在赤壁一样,那一把火过来,不全 完了吗?好吧,那么我们可以做个桥,作为各个操作模块之间的控制。它可以根据状况来控 制整个处理的流程。而每个处理模块也只是和他进行交流,所有的模块从它获得数据,然后 把数据转回。 D C A B Custom Instruction Flash Memory DDR Controller Controller Controller Flash DDR Memory SRAM Memory 一定要NiosII 吗? 不一定。在系统中,没有任何一样东西是必须的。只有有用的东西,没有一定的东西。而去 掉一个NiosII 的好处是可以节省很多资源,包括FPGA 内的,和外部的。NiosII 没什么特别 的能力,就是一个大型的状态机,或者说一个Master 而已。 当然可以把它拿掉,照样还是 一个SOPC 系统 所以,系统这个东西,没有最好的,只有最适合的。你在了解自己的应用的基础上,选择你 觉得最适合的方案。幸运的是SOPC 这个平台,已经提供了你所需要的基础建设。一些具体 的模块当然需要自己去做的。 大家一起来搭积木好了。

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档