微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 将ARM AXI4用于FPGA 把恒星装入瓶中

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

时间:12-22 来源: 点击:

两块板都能够实现同步触发。

独特的性能带来的优势

我们在设计中充分利用了赛灵思 FPGA 架构提供的一些新颖的功能。例如,我们使用IODELAY 原语在引脚上调整路径时延,这样我们就能够补偿走线长度的差异。这项功能非常重要,因为从 ADC 到 FMC 的数据路径长度不等。如果我们不补偿路径时延,ADC 输出的数据就是无用数据。ADC 输出的数据在 250MHz 时钟下以双倍的速率输出,因此有效数据单元之间的时间间隔仅有 2ns。IODELAY 可以让我们按 125ps 的步长非常精确地调整数据路径。

同样重要的是混合模式时钟管理器 (MMCM),它的作用是执行诸如乘法和相移等时钟管理任务。在级联模式下,即把一个 MMCM 与另一个相连,我们可以使用原始的 10MHz 时钟生成多种时钟。这其中就包括 250MHz 的 ADC 采样时钟以及我们用于其它目的的其它时钟。

  图 5: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 程序(也在闪存上)的库文件会使生成的可执行文件变大。我们

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top