第十篇 - 囫囵吞枣之SOPC
AlteraNios嵌入式处理器大赛知识讲座囫囵吞枣之SOPCSOPCbuilder是QuartusII中用来建立,开发,维护系统的平台。虽然很多时候我们用它作为NiosII的一个嵌入式系统的开发环境,但我希望大家不要把思路只是局限在NiosII上面。它将成为一个包容全部系统内容的一个平台。让我们把一个系统分割成为两个部分。一个是控制部分。所谓的控制,就是对很多的寄存器进行读写,或者是对内存存储器进行操作。而这些操作往往是与地址相关的。所以,我们使用Avalon-MM进行这部分的连接。好像很多的系统一样,这个接口的两端是主从设备。主设备发出要求,从设备被动接受操作。举个简单的例子,CPU永远都是一个主设备,而一些存储器,比如Flash,SRAM则是从设备。而CPU并不是唯一的主设备,比如DMA也可以作为主设备。由于Avalon-MM总线的点对点结构,当DMA对一个从设备进行处理的时候,CPU可以对另一个设备进行出来。这就是这种结构最大的优势。但是单一的Avalon-MM并不能完全的解决问题。因为对于某些传输而言,地址是没有意义的。而高的通过率可能更重要。这就是数据通道。一些数据的处理,比如滤波,视频处理的操作。而这就需要用Avalon-ST的接口进行连接。在这种结构中,接口的两端是相对平衡的地位。作为SOPCbuilder中的一个模块,他可以同时拥有多个所有的端口。然后再端口和端口之间进行连接。SOPCbuilder同时对这两种传输方式进行支持变成一个整体的系统。用最简单的连接方式,产生相应的自动生成的代码。省去了我们非常多的无聊时间做一些无聊连接的工作。还完成了非常多机械化,但非常容易出错的事情。比如时间域之间的转换,地址自动对齐操作。而我们更需要关注的事情则是系统结构本身的问题。这才是发挥