首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

将ARM AXI4用于FPGA 把恒星装入瓶中-1

将ARM AXI4用于FPGA 把恒星装入瓶中-1

英国的聚变研究人员以赛灵思技术为基础,采用最新的 ARM AXI4 接口,开发出一种用于合成孔径成像的数据采集系统。  聚变能是氢原子在极高的温度条件下聚合为更大的原子时所释放出的能量。这也是包括太阳在内的所有恒星的能量来源。要在地球上产生聚变能,我们需要在一个磁瓶(也称为托卡马克装置,见图 1)装置中将电离氢气(称为“等离子体”)加热至 1 亿开以上。
  聚变科学家的终极目标就是建造出能够使用氢燃料的核聚变电站,氢燃料在地球上大量存在且很容易获得。位于英国牛津附近的卡尔汉姆聚变能研究中心 (CCFE) 是一家世界领先的聚变能研究机构,该中心的科研小组正在致力于氢燃料聚变电站的研究。实际上,地球上可用于聚变的燃料非常充足,足以满足我们上百万年的能源需求。问题在于聚变的难度极大,就像把恒星装入瓶子中一样困难。国际 ITER 项目是一项耗资 200 亿美元的世界上规模最大的地面科研项目,将首次使聚变能实现产业化。目前正在法国南部建造的 ITER——其名称在拉丁语中的意思为“方法”——预计将在二十年内投入运营(见)。
  聚变研究的主要工作之一是实时测量聚变等离子体。每种诊断方法都有自己的要求。在 CCFE (),我们开发出一种诊断方法可以把等离子体发出的微波进行成像,用于测量其中的电流。为此,我们决定设计一种合成孔径成像系统。
  评估微波相位
  合成孔径成像使用相位天线阵列(见图 2),其工作方式与人耳类似。如果身体右侧有噪声,那么声音到达右耳的时间就会早于左耳。用另一种方法来表述这种情况,就是声音以不同的相位到达双耳。人脑会把这种相位差异解读为方向性。相同的方法,我们通过考虑天线阵列检测到的微波的相位,就可以确定微波的源头。利用这一原理,我们就可以使用相位天线阵列重新合成等离子体的边缘图。
  射频 (RF) 系统(见图 3)负责把每个天线接收到的频率在 6GHz 至 40GHz 的信号降频转换为 250MHz 带宽的信号,供 FPGA 数据采集箱进行处理。250MHz 带宽是模数转换器 (ADC) 的时钟要求。我们使用的 8 副天线中,共有 16 条通道需要进行数字化处理(使用两倍的通道数量是为了区分信号中的实部和虚部,从数学意义上解释,就是信号相移 90 度而造成的)。
  该系统必须在 250MHz 频率下以 14 位精度从 16 个模拟通道中连续采集数据 0.5 秒。随后将 14 位打包为 2 个字节,那么总共要求 32字节X 0.25Gbps= 8Gbps 的速度。这样就需要在 0.5 秒内采集到 4Gb 的数据,并要求 FPGA 板配备 FPGA 夹层卡 (FMC) 接口,以便能够灵活地选择 ADC 厂商并满足未来的可移植性需求。同时还需要使用我们内部开发的FMC 数字 I/O 板。
      CCFE 的兆安级球形托卡马克装置 (MAST) 形状独特,更像是去了核的苹果,而非传统的面包圈形状。设备内部清晰的图像显示出“瓶中恒星”的效果。  在 2010 年夏天,我们认为理想的解决方案应使用两个赛灵思的 Virtex-6 LX240T ML605 板与两个 4DSP 公司的 FMC108(8 通道)ADC 板相结合。那时,8Gbps 的数据速率就是天文数字,事实上现在仍然是。我们原本可以采用分而治之,各个击破的方法,即使用更多的 FPGA 板,并让每个板处理更少的通道数量。但是,这样做会增加系统的成本和尺寸。
  实际上,能够真正为我们解决这个设计难题的技术出现在 2011 年 1 月,当时赛灵思发布了 ISE® 设计软件的修订版本,能够支持 ARM 的 AMBA AXI4 接口协议。在此之前硬件已经存在,但缺少能够充分发挥其潜能的手段。


  AXI4 问世之前
  为满足我们系统的需要,位于 Virtex-6 上的 MicroBlaze™ 处理器必须能够访问 DDR3 SDRAM 存储器,这样 Linux 才能访问我们采集到的实时数据。为此,我们必须采用一个能同时被 MicroBlaze 总线和实时串流 IP 访问的存储器控制器。起初我们试图使用 PLB 总线,但发现基于 PLB 的存储器控制器存在局限性,使我们无法在要求的频率下连接 64 位宽的接口,而只能提供 32 位宽。我们意识到这个任务会很艰难,我们又编写了一个能够通过低层 NPI 协议直接与存储器控制器进行通信的内核,但只能实现 2Gbps 的速率。虽然这个速率已经令人惊叹,而且打破了我们能够实现的所有速度记录,但仍然不能满足我们的要求。
  幸运的是赛灵思随后推出了 AXI4 互联和存储器控制器,能够以 400MHz 的双倍数据速率(每秒 8 亿次事务处理)对整个 64 位宽度实现完全访问。这样可以有效实现 6.4Gbps 的数据吞吐能力,这个速度已经超过了我们要求的每板 4Gbps的速度。这正是我们所需要的。
  我们实际上找到了两种实现这个速度的途径:一个是修改 axi_v6_ddrx 存储器控制器(隐含在AXI 互联层下)。另一种方法是用系统生成器 (System Generator) 生成 AXI Master PCore。PCore 可以以 AXI External Master 的形式附加给 Xilinx Platform Studio (XPS) 里的MicroBlaze 系统。
  两种解决方案都能够以 5Gbps 的速度向 DDR3 存储器中传输数据。AXI 编程简便,采用独立的读写通道,可以实现非常高的存储速度。XPS 工具则为 AXI 设计赋予了极大的灵活性。我们把这种灵活性转化为我们的优势,例如我们可以根据需要只选择一条写入通道,从而能够简化逻辑设计,释放更多资源。
  软处理器界面
  这款赛灵思工具集有一项独特的功能,即 MicroBlaze 软处理器。它的“软”在于能够使用 FGPA 逻辑。在赛灵思及其合作伙伴的努力下,该处理器能够得到主流 Linux 内核的全面支持。我们被这种努力所打动,决定把开发工作放在 Linux 环境中进行。
  这项功能的意义在于,我们可以给 FPGA 系统构建一个类似 PC 的界面。这样做的意义非常重大,例如,可以在 FPGA 上实现 Web 和 SSH 服务器。我们可以在 Linux 下安装 System ACETM 闪存(格式化为 MSDOS),这样我们就可以远程更新固件。
  网络流
  鉴于我们能够在 0.5 秒内在每个 FPGA 板上采集 2Gb 的数据,我们现在要解决的问题是如何在合理的时间内通过标准的接口将数据从 FPGA 板上输出。实践证明,在 Linux 环境中使用简单协议(比如 UDP),利用 MicroBlaze 处理器通过千兆位以太网所实现的网络速度太慢,只能达到 0.5 Mb/s。以这种速率下载 0.5 秒内采集的数据,我们需要等上一个多小时!
返回列表