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

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

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

很明显,我们需要对设计进行深层研究。我们的解决方案是采用自主开发的 FireStark 协议,它是一种基于 UDP 的协议,位于 AXI 以太网 DMA 驱动程序内部。通过调整 MicroBlaze Linux 内核驱动程序和把 FPGA 放在专用网络上,我们现在能够在 60 秒内完成对整个 2Gb 数据的下载,速度提高 70 倍。如果使用高达 6Kb 的巨型帧进行测试,速度还可以翻倍,即超过 70Mb/s。关键之处在于,这说明使用 DMA,即便是在较慢的 100MHz 的 MicroBlaze 时钟下,也能够在存储器和网络之间实现极高的数据吞吐能力。 连接到 MAST 托卡马克装置的 RF 电子设备能够将接收到的 6GHz 至 40GHz 的信号降频为 250MHz 带宽信号,供 FPGA 数据采集盒处理。
  FPGA 到 PC 机的时延经测量为 129µs +/- 13µs(真正的时延会更低,因为该测量值包含数据包穿越交换机、通过 PC 内核、到达网络堆栈以及最终进入用户区域的时延)。我们还准备测量 FPGA 之间的时延,预计会更低。
  时钟同步
  我们的托卡马克装置有许多诊断装置和系统,它们都需要同步为 10MHz 的全局实验时钟。我们从这个时钟信号中派生出 250MHz 的数据采集时钟,同时这个派生出的信号还为 ADC 板提供时钟。剩余的 FPGA 逻辑则由板载晶振时钟来驱动。
  我们的系统有一个特别的地方,就是不会连续发送实验时钟,只在有触发事件的时候发送大约 10 秒钟。在此期间之外,我们需要切换到内部生成的时钟。因此我们需要在两个时钟之间来回切换,即在外部时钟和内部时钟间切换。
  对两个 FPGA 板有一个重要要求,就是它们必须精确同步。在理想情况下,我们的采样周期为 4ns,那么在所期望的最高频率下 ADC 的可读输入正弦的周期为 8ns,相当于 360 度。如果我们需要 5 度的相位精度,我们能够容忍的最大歪斜为8X (5/360)=111ps。这种程度的精度很难实现,因为即便是光在这么短的时间内也只能行进 3.3cm。
  我们为两块板子设计的固件完全相同。我们使用 DIP 开关来启用或者停用每块板子需要的不同功能。这样可以大幅度地节省开发时间,因为我们只需要对固件进行一次综合。
  时钟由两块板中的一块生成,然后通过两个临近的 SMA 端口输出,随后反馈到与每块 FPGA 板的 FMC 端口相连的 ADC 板(使用相等长度的线缆)。这样可以保证每块板都能够精确地运行在相同的时钟上,唯一的相位差是信号离开 FPGA 板时两个 SMA 端口之间的相位差。图 4 更加清楚地说明了这种设计方法。
                                                  两个 FPGA 板必须精确同步,图中的时钟原理可以确保这种一致性。
  外部 10MHz 时钟按同样的方式完成时钟信号到达、发送、再回到两个 ADC 的过程,也就是说,外部触发采用与内部时钟相同的方法来确保两块板都能够实现同步触发。
  独特的性能带来的优势
  我们在设计中充分利用了赛灵思 FPGA 架构提供的一些新颖的功能。例如,我们使用IODELAY 原语在引脚上调整路径时延,这样我们就能够补偿走线长度的差异。这项功能非常重要,因为从 ADC 到 FMC 的数据路径长度不等。如果我们不补偿路径时延,ADC 输出的数据就是无用数据。ADC 输出的数据在 250MHz 时钟下以双倍的速率输出,因此有效数据单元之间的时间间隔仅有 2ns。IODELAY 可以让我们按 125ps 的步长非常精确地调整数据路径。
  同样重要的是混合模式时钟管理器 (MMCM),它的作用是执行诸如乘法和相移等时钟管理任务。在级联模式下,即把一个 MMCM 与另一个相连,我们可以使用原始的 10MHz 时钟生成多种时钟。这其中就包括 250MHz 的 ADC 采样时钟以及我们用于其它目的的其它时钟。
   FPAG 数据采样盒由赛灵思的 ML605 评估板、4DSP 的 FMC108 ADC 板和我们自己开发的 FMC/PMOD 插头板组成。我们把 ADC SSMC 接插件在内部连接到前板上的 SMA 隔板上,以延长 ADC 模拟连线的寿命。
  我们还充分发挥 BUFGMUX_CTRL 和 IDDR 原语的作用。由于我们的系统需要在内部时钟和外部 10MHz 时钟之间切换,非常重要的是这种切换不得产生脉冲。运用 BUFGMUX_CTRL原语可以保证这一点。该原语还可用于标准逻辑,比如触发器(不一定是用于时钟的)。但是需要将属性 IGNORE0、IGNORE1 设置为 1,以绕开去脉冲电路,否则逻辑不能通过
  同时,ADC 以 DDR 格式提供数据,即数据在时钟上升沿和下降沿均有效。要把这些数据恢复为单数据速率 (SDR),需要使用被硬连线在 I/O 焊盘上的 IDDR 原语。它有一个单数据引脚输入,两个数据引脚输出。我们使用 SAME_EDGE_PIPELINED 属性,保证数据同时在两个引脚上都有效,这样可以减少其它逻辑。这样做会增加一个时延周期,但对我们来说这点时延可以接受。
  赛灵思架构另一个对我们有帮助的功能是 FPGA 夹层卡 (FMC) 接插件。严格地说,这并非是 FPGA 的一项特有功能,而是 FPGA 板的一项特有功能。即便如此,经实践证明这是一项非常有用的功能,能够与 Virtex-6 有效配合。FMC 接插件包含高频时钟引脚,可以连接到 ML605 板上 Virtex-6 的时钟功能引脚上。这样可以通过 FMC 把时钟信号发送到 FPGA 中。这种做法的优势在于我们只需要一个时钟进入点。
  使用赛灵思工具套件
  赛灵思提供了许多有助于 FPGA 系统开发的工具。我们用过的不在少数。
  我们使用项目浏览器进行手动 VHDL 和 Verilog 编码。此外,可以利用其图形界面生成“原理图”,用于可视化地创建逻辑。不过我们发现项目浏览器是一个底层工具,虽然我们可以轻松地完成触发器(单数位)运算,但扩展到更大数位的运算就会变得相当复杂。我们发现 项目浏览器对底层时钟设计最有用。它能够让我们准确地控制由哪个时钟驱动特定的逻辑。
  对于高级逻辑设计,我们使用系统生成器。它特别适用于逻辑由单一时钟频率驱动的设计(但不局限于这种情况)。系统生成器使用简单,能够访问大量 IP 核,比如 FFT、除法器生成器和滤波器。另外,可以把逻辑轻松地连接到 MicroBlaze 处理器中,用作读/写寄存器和共享存储器。该工具能够自动创建外设核心 (PCore),并将其添加到 XPS 项目中。
  我们使用 CORE Generator™ 调节 ADC FIFO 的参数。FIFO 必须是 256 位宽度,写入时钟125MHz,读取时钟 200MHz。我们把最后生成的 NGC 文件导入到 XPS 中用作 PCore。我们通过创建必要的 .mpd、.pao 和 .bbd 文件来手动完成这项工作。
  Impact 工具可以帮助我们对 FPGA 编程,还能生成 SystemACETM 文件,用于将固件永久存入压缩闪存 (CompactFlash) 中。压缩闪存的工作非常可靠,但值得注意的是它会给我们的系统提出一项额外的要求(见下面的 SDK 一段)。
  由于我们需要在我们的系统中植入 MicroBlaze 处理器,因此我们需要可创建该处理器系统的工具,即赛灵思 Platform Studio。XPS 是一种全面的工具套件,可以让用户创建以处理器为中心的系统。在它的帮助下,用户可以借助向导来建立所需的链接。用户还可以使用 Create IP 向导植入由 CORE Generator 生成的 IP 核。它现在还包含高性能 AXI4 片上互联。
  最后,我们使用赛灵思软件开发套件 (SDK) 来开发运行在处理器上的程序。实际上,开始的时候我们只需要运行一个程序,就是 SREC 引导程序。由于压缩闪存使用的是 FAT 文件系统,所以用于访问 SREC 程序(也在闪存上)的库文件会使生成的可执行文件变大。我们需要停止调试,进行优化,并使用“mbstrip –g ”作为编译后命令,来缩小文件的大小。即使完成所有这些步骤后,我们得到的仍然是一个比较大的 91Kb 的可执行文件。因此,我们必须增加内部 BRAM,才能使用这样大小的可执行文件初始化比特流。
  另一个需要解决的问题是 Virtex-6 的编译时间太长。赛灵思的软件 PlanAheadTM 能够有力地帮助解决这个问题。我们准备让 PlanAhead 发挥出极致,来缩短编译时间。
  我们对新型 Zynq™-7000 可扩展处理平台的新功能感到欢欣鼓舞(见第 75 期 Xcell 杂志的封面报道)。不过,Zynq 是否会淘汰 MicroBlaze,还是 MicroBlaze 能够凭借其自身的软特性和 10 余年的开发基础继续生存下去,都还有待观察。将来的缓存一致型多处理器 MicroBlaze 系统能否超越 ARM® 双核 CortexTM-A9 MPCoreTM 的性能呢?Zynq 或MicroBlaze 的物理地址扩展能否促成地址空间超过 32 位的更强大的系统,从而实现 4Gb以上的 RAM 呢?我们只需等待,看时间如何回答这个问题。
  尖端系统
  最后,我们采用最先进的赛灵思技术,开发出了一套在 FPGA 领域中处于尖端地位的全功能数据采集系统。它的实时采集速度可达 10Gbps(或者 80Gbps),而最后的成本只有不足 1.5 万美元。我们希望这项技术能够用于世界上最大的聚变实验项目,比如 ITER 项目。

该 ITER 托卡马克装置目前正在法国南部建造,建成后能够产生 500 兆瓦巨变能,可为聚变电站的建立打下坚实的基础。

  聚变能是人类试图克服的最艰巨的技术挑战之一。FPGA 凭借其在各个方面独特的优势,正在帮助我们攻克这个难题。我们的聚变研究设备使用最先进的 AXI4 互联技术和赛灵思工具流程,通过融合 Virtex-6 FPGA 的性能优势,能够在小巧紧凑的系统上实现极高的数据率。
返回列表