ALTERA SOC开发流程(2)——数据传输篇
从上一篇结束后,我们已经将一个简单的工程搭建完毕,其中包含了一些对ARM端的一些配置信息。红圈中的信息就是对数据传输的一些配置,我们可以看到FPGA 到ARM的数据传输采用的是AXI总线协议,前两个都是高速AXI、最后一个是低速AXI,位宽分别设置成128、32、32bit。Altera还单独给了我们一个对DDR直接操作的接口,位宽设置为64bit。
接下来我们开始我们的数据传输之旅,先从最简单的PIO开始。ARM在与FPGA沟通的时候需要我们提供一个中断信号,而这个信号就可以使用PIO进行配置,在IP搜索界面搜索PIO
由于是中断信号,位宽我们设置为1bit,由于是FPGA到ARM端的信号,我们设定模式为输入信号,采用下降沿触发,点击finish。有人就会问,我想设置成上升沿可以吗,很抱歉,我和我的嵌入式工程师朋友多次尝试,只有这样才能成功接收中断信号。
将时钟和复位信号连接、中断连接、数据S1连接至lw_axi总线上,红圈内分别代表的是软件端的lw_axi偏移地址和中断号。到此FPGA配置基本完毕,如果你有一个嵌入式软件工程师的朋友,这个时候就需要他配置linux内核和设备树,用来对接你的信号。如果他也不是很清楚,那么翻阅官方文档。
如图所示,这个是light总线的基地址和中断号地址,把这个地址和偏移地址、中断号地址告诉你的嵌入式软件工程师朋友,他就懂了。如果还是不懂,参考以下链接,我觉得讲的还是可以的
http://www.360doc.com/content/16/0222/22/18252487_536538348.shtml
至此一个简单的PIO控制就成功了,用这个可以让ARM控制FPGA的一个IO点亮一个灯之类的,如果各位开发板上有这个玩意可以试一下。
接下来就可以进行大规模的数据传输了。过两天再写,嘻嘻嘻嘻嘻。