Intel SoC 架构的灵活扩展性: 多路网口实现
【时间:2017 年 10 月 11 日, 来源:本站原创, 作者:Jack Chen】
信息化时代以来,各行各业资源正趋向于整合,并购,抱团来取得更大的竞争力,芯片架构上亦是如此:单“芯“方案(System on Chip)带来的低功耗,低成本,低布线面积以及高整合,高性能,高带宽(内部互联)的优势正成为一种潮流。
顺应时代的需求下,Intel FPGA部门推出了一系列整合MCU更具有FPGA功能的产品——Intel SoC 系列芯片。自此ARM和FPGA的优势共存一体,ARM的顺序控制、丰富外设,FPGA的高速灵活、并行定制的特性交错相融,双方之间的通信呑吐率更是高达125Gbps。面对如此优异的综合武器,如何发挥出它最大的潜能,期待和小生一样的广大工程师们一起开心的探索,玩出花样:)
下面带来的Demo体现了Intel SoC架构基础优势之一:灵活扩展性。
------------供ARM端使用的多路网口设计
如上文所说,ARM核集成了全面的常用外设,但是在一些特定场合,如需求几十个串口,十多路以太网的等应用就有点力不从心了。但是整合后的Intel SoC 系列产品,完全可以通过FPGA端定制多个串口和网口挂在内部总线上供ARM端当外设使用(并且不用自己写Linux驱动哦)。有了类似这种操作后,,,,我们就可以任性的定制多种多个IP外设给ARM核了。
比如客户需要一个8路以太网设计,我们就可以在ARM端使用两个本身自带的硬核EMAC控制器,再加上FPGA端构建6个Altera(Intel) TSE 软核IP挂在内部总线上即可。下面介绍的就是如何新增一个TSE模块供ARM端使用的案例,如需扩展多个,按照文中方法多加几个就可以了。
一、逻辑篇
Quartus版本: Quartus standard15.0
FPGA型号: Intel SoC (5CSEMA5F31C8)
PHY型号: KSZ9031,88E1111
1 在Quartus软件使用Qsys工具构建Altera的TSE模组(把对应的线连好就行:)
(1)Altera的TSE IP核支持10M /100M/1000M的MII/GMII/ RGMII接口,如下图所示
(2)构建带DMA的TSE模块。数据流走向如下图所示。
(3)把带DMA的TSE模块挂在SoC的内部总线FPGA TO HPS上,数据流走向如下图所示。
2 根据不同的PHY芯片完成相应的引脚信号分配及设计
(1) 根据PHY芯片的手册设计复位信号
(2) 根据相应PHY的手册确定MDIO信号是高有效还是低有效。
(3) 根据不同的PHY约束相应管脚的时序。
二、软件篇
Linux Kernel: Linux13.10
SoC EDS: 16.0
Intel 提供的Linux Kernel源码如13.10版本就已经支持AlteraTse模块的驱动,我们只需根据在QSYS中对应的地址和分配的中断号完成DTS的编写以及对TSE设备进行描述。并在内核配置中开启支持Altera_Tse即可。
1 编写DTS
(1)SOC EDS 15.0及以后版本的描述方式如下
(2)SOC EDS15.0 以前版本的描述方式如下
2 配置内核以支持Altera TSE
三、Test
把制作好的一系列文件烧写到开发板上,可以看到Linux启动信息上已成功挂载设备。
使用ifconfig –a 命令,可发现共有三个以太网口,其中eth0为Altera TSE。
如欲了解更多关于该方案的信息,请联系骏龙科技各地的办事处,或发邮件至stonemao@macnica.com。
骏龙科技微信公众号:
骏龙Altera FPGA微信公众号: