MIG 7 Series IP 核配置详解

Memory Interface Generator 欢迎界面

开始界面: Memory Interface Generator (MIG 欢迎界面)

页面整体功能

这个界面是 Memory Interface Generator (MIG) IP 核配置向导的入口。它不进行任何实际的配置,其主要目的是展示当前 Vivado 工程的关键设置,并提醒用户这些设置将作为后续 MIG 配置的基础。这是一个关键的检查点,确保 MIG 是在正确的项目上下文(特别是目标 FPGA 型号)中进行配置的。

界面内容详解

  1. Memory Interface Generator (标题和第一段描述)
    • 英文原文: "The Memory Interface Generator (MIG) creates memory controllers for Xilinx FPGAs. MIG creates complete customized Verilog or VHDL RTL source code, pin-out and design constraints for the FPGA selected, and script files for implementation and simulation."
    • 中文翻译: "内存接口生成器 (MIG) 为 Xilinx FPGA 创建存储器控制器。MIG 为所选的 FPGA 创建完整的、定制化的 Verilog 或 VHDL RTL 源代码、引脚分配和设计约束,以及用于实现和仿真的脚本文件。"
    • 解释: 这段话简要介绍了 MIG IP 核的核心功能:
      • 为 FPGA 设计存储器控制器逻辑。
      • 根据用户的配置生成相应的硬件描述语言 (HDL) 代码(Verilog 或 VHDL)。
      • 生成必要的引脚分配信息(哪些 FPGA 管脚用于连接 DDR 芯片)。
      • 生成时序约束和其他设计约束 (XDC 文件),这对于满足 DDR 严格的时序要求至关重要。
      • 生成辅助脚本,以帮助后续的工程实现(综合、布局布线)和仿真流程。
  2. Vivado Project Options (Vivado 工程选项 - 标题和第二段描述)
    • 英文原文: "This GUI includes all configurable options along with explanations to aid in generation of the required controller. Please note that some of the options selected in the Vivado Project Options will be used in generation of the controller. It is very important that the correct Vivado Project Options are selected. These options are listed below."
    • 中文翻译: "此图形用户界面 (GUI) 包含了所有可配置选项以及解释说明,以帮助生成所需的控制器。请注意,在 Vivado 工程选项中选择的某些选项将用于生成控制器。选择正确的 Vivado 工程选项非常重要。这些选项罗列如下。"
    • 解释: 这段话强调了当前 MIG 配置界面与 Vivado 整个工程设置之间的紧密联系。MIG 的很多配置(例如可选的存储器类型、最高频率、可用的 FPGA Bank 等)都直接依赖于你在创建 Vivado 工程时选择的目标 FPGA 型号。因此,在开始 MIG 配置之前,务必确认下面列出的工程选项是正确的。
  3. Selected Vivado Project Options (选定的 Vivado 工程选项 - 列表)
    • Fpga Family (FPGA 家族): Zynq
      解释: 显示当前工程目标器件所属的 FPGA 家族。例如 Zynq, Artix, Kintex, Virtex 等。不同的 FPGA 家族支持的存储器类型和特性可能不同。这里显示的是 Zynq 家族。
    • Fpga Part (FPGA 器件型号): xc7z045i-ffg676
      解释: 关键信息! 显示当前工程设置的具体 FPGA 器件型号。这包括了器件系列 (xc7z045)、温度等级 (i - Industrial) 和封装类型 (ffg676)。MIG 的所有后续配置,特别是引脚分配和可支持的最高频率,都严格基于这个具体的器件型号。
    • Speed Grade (速度等级): -2L
      解释: 关键信息! 显示 FPGA 的速度等级。速度等级决定了芯片的性能,特别是时序性能(最高工作频率)。`-2L` 表示速度等级为 -2,并且是低功耗 (Low Power) 版本。速度等级直接影响 MIG 能配置的最高存储器时钟频率。
    • Synthesis Tool (综合工具): VIVADO
      解释: 显示用于综合设计的工具。对于现代 Xilinx 器件,通常就是 VIVADO。
    • Design Entry (设计输入方式): VERILOG
      解释: 显示你在 Vivado 工程设置中选择的主要 HDL 语言。MIG 生成的 RTL 代码通常会匹配这个设置(虽然有时也可以选择生成另一种语言的代码,但这指的是工程的默认设置)。
  4. 最后的说明/警告段落
    • 英文原文: "If any of these options are incorrect, please click on "Cancel", change the Vivado Project Options, and restart MIG. This version of MIG is tested with Vivado 2018.3 or later, it is not tested with previous versions of Vivado."
    • 中文翻译: "如果这些选项中有任何不正确,请点击"取消",更改 Vivado 工程选项,然后重新启动 MIG。此版本的 MIG 是使用 Vivado 2018.3 或更高版本测试的,未使用早期版本的 Vivado 进行测试。"
    • 解释: 这是一个非常重要的提示:
      • 检查并确认: 再次强调用户必须检查上面列出的工程选项是否完全符合你的目标硬件。
      • 错误处理: 如果发现任何选项(尤其是 FPGA 器件型号或速度等级)与你的实际硬件不符,不能直接在这里修改。你需要:1. 点击 `Cancel` 按钮退出 MIG 配置。 2. 回到 Vivado 的工程设置 (Project Settings) 中修改错误的选项。 3. 重新打开 MIG IP 核进行配置。否则,后续的 MIG 配置将基于错误的信息,导致最终生成的设计无法在你的硬件上工作。
      • 版本兼容性: 指出当前使用的 MIG IP 版本是针对 Vivado 2018.3 或更新版本进行测试和验证的。如果使用更旧版本的 Vivado,可能会遇到兼容性问题或未知的行为。
  5. 按钮
    • User Guide (用户指南): 点击此按钮会尝试打开 MIG IP 核的详细用户文档(通常是 PDF 格式的 UG586 文档),强烈建议在使用 MIG 前阅读相关章节。
    • Next > (下一步 >): 如果确认上面显示的 Vivado 工程选项无误,点击此按钮将进入 MIG 的实际配置页面(即之前我们详细讨论过的那些页面,如存储器类型选择、控制器选项等)。
    • Cancel (取消): 点击此按钮将关闭 MIG 配置向导,不做任何更改。

总结

这个初始界面是 MIG 配置流程的"看门人",它强制用户在开始细节配置前,必须确认整个配置是基于正确的 FPGA 目标器件进行的。如果这里的工程信息与你的硬件不符,后续的所有配置都将是徒劳。

MIG Output Options 配置页面

页面 0.5: MIG Output Options (MIG 输出选项)

页面整体功能

这个界面主要用于设定 MIG IP 核的生成模式实例名称以及一些顶层结构选项(如是否包含多个控制器、是否启用 AXI4 接口)。它定义了你要进行的操作类型(是创建新设计还是验证修改)以及生成 IP 核的基本属性。

界面内容详解

  1. MIG Output Options (MIG 输出选项)
    • 选项组功能: 决定本次运行 MIG 配置向导的主要目的。
    • 选项 1: Create Design (创建设计)
      • 英文描述: "Select this option to generate a memory controller. Generating a memory controller will create RTL, XDC, implementation and simulation files."
      • 中文翻译: "选择此选项以生成存储器控制器。生成存储器控制器将创建 RTL、XDC、实现和仿真文件。"
      • 解释: 这是最常用的选项,适用于首次创建一个新的 MIG IP 核实例,或者基于之前的配置重新生成整个 MIG 设计。选中此项后,MIG 会根据后续页面的详细配置,生成所有必需的输出文件,包括:
        • RTL (HDL 源代码 - Verilog 或 VHDL)。
        • XDC (设计约束文件,包含时序约束和引脚分配建议/模板)。
        • 实现和仿真相关的脚本文件。
      • 建议: 对于新设计或需要完全重新配置 MIG 时,选择此项 (通常是默认选项)。
    • 选项 2: Verify Pin Changes and Update Design (验证引脚更改并更新设计)
      • 英文描述: "Selecting this feature verifies the modified XDC for a design already generated through MIG. This option will allow you to change the pin out and validate it instantly. It updates the input XDC file to be compatible with the current version of MIG. While updating the XDC it preserves the pin outs of the input XDC. This option will also generate the new design with the Component Name you selected in this page."
      • 中文翻译: "选择此功能可验证已通过 MIG 生成的设计的修改后 XDC 文件。此选项允许您更改引脚分配并立即进行验证。它会更新输入的 XDC 文件以使其与当前版本的 MIG 兼容。在更新 XDC 的同时,它会保留输入 XDC 的引脚分配。此选项还将使用您在此页面中选择的组件名称生成新设计。"
      • 解释: 这是一个高级选项,主要用于以下场景:
        1. 你已经生成过一个 MIG 设计,但现在需要手动修改其引脚分配 (例如,调整 XDC 文件中的 PACKAGE_PIN 约束)。
        2. 你想让 MIG 验证你修改后的 XDC 文件是否仍然有效,并据此更新 MIG 的内部配置或元数据
        3. 当你将一个使用旧版本 MIG 生成的设计(及其 XDC 文件)迁移到新版本的 Vivado/MIG 时,可以用此选项来更新 XDC 文件格式以兼容新版本,同时尽量保留原有的引脚分配。
        它本质上是以用户提供的(修改过的)XDC 文件作为主要输入,进行验证和更新,而不是完全重新生成。
      • 建议: 除非你明确知道自己正在修改现有 MIG 的引脚约束或进行版本迁移,否则不要选择此项。对于绝大多数情况,应选择 Create Design
  2. Component Name (组件名称)
    • 功能: 为即将生成的 MIG IP 核实例指定一个唯一的名称。
    • 英文描述: "Please specify the component name for the memory interface. The design directories will be generated under a directory with this name. Three directories will be created "example_design", "user_design" and "docs". The user_design will contain the generated memory interface. The example_design adds a simple example application connected to the generated memory interface."
    • 中文翻译: "请为存储器接口指定组件名称。设计目录将在此名称下的目录中生成。将创建三个目录:"example_design"、"user_design"和"docs"。user_design 将包含生成的存储器接口。example_design 添加了一个连接到生成的存储器接口的简单示例应用程序。"
    • 解释: 这个名称非常重要,它将用于:
      • 在 Vivado IP Catalog 或 Block Design 画布中标识这个 MIG 实例。
      • 作为 MIG 生成的所有输出文件存放的顶层文件夹名称
      • 在这个顶层文件夹下,会自动创建几个子目录:
        • user_design: 包含核心的 MIG RTL 代码和基础 XDC 约束文件。这是你集成到自己设计中时主要关心的内容。
        • example_design: 包含一个完整的、可以直接运行的示例工程。这个示例工程已经将 user_design 中的 MIG 实例化,并连接了一个简单的流量生成器 (traffic generator) 来读写 DDR。这对于快速验证 MIG 配置和硬件连接非常有帮助。
        • docs: 包含与本次生成的特定 MIG 实例相关的文档或报告。
    • 输入框: Component Name
      • 默认值: Vivado 通常会提供一个默认名称,如 mig_7series_0 或图片中的 test_mig_7series_0_0(可能是在一个测试工程里)。
      • 建议: 可以使用默认名称,或者修改为一个对你的项目更有意义的名称,例如 ddr3_ctrlmain_memory_interface。名称应遵循 HDL 标识符的常规规则(字母、数字、下划线,通常以字母开头)。
  3. Multi-Controller (多控制器)
    • 功能: 允许在一个 MIG IP 实例内生成和管理多个独立的存储器控制器。
    • 英文描述: "Up to maximum of 8 controllers with a combination of DDR3 SDRAM, QDRII+ SRAM or RLDRAM II can be generated. The number of controllers that can be accommodated may be limited by the data width and the number of banks available in device. Refer user guide for more information."
    • 中文翻译: "最多可以生成 8 个控制器的组合(DDR3 SDRAM、QDRII+ SRAM 或 RLDRAM II)。可以容纳的控制器数量可能受到数据位宽和器件中可用 Bank 数量的限制。请参考用户指南获取更多信息。"
    • 解释: 这是一个高级功能,允许你在 FPGA 资源(特别是 I/O Bank 和逻辑资源)允许的情况下,使用单个 MIG IP 配置界面来生成控制多个(可能是不同类型、不同配置)存储器接口的逻辑。这可以用于需要连接多个独立内存通道的复杂系统。实际能支持的最大控制器数量取决于 FPGA 器件本身的能力和每个控制器的配置(如数据位宽)。
    • 输入框: Number of controllers (控制器数量)
      • 默认值: 1
      • 建议: 对于绝大多数连接单个 DDR3 存储器芯片/模组的应用场景,保持默认值 1 即可。只有当你明确需要控制多个独立的存储器接口,并且了解如何在 MIG 中配置多控制器模式时,才需要增加这个数值。
  4. AXI4 Interface (AXI4 接口)
    • 功能: 控制是否为生成的 MIG 控制器启用 AXI4 标准接口。
    • 英文描述: "Enables the AXI4 interface. AXI4 interface is supported only for DDR3 SDRAM and DDR2 SDRAM controllers with Verilog design entry."
    • 中文翻译: "启用 AXI4 接口。AXI4 接口仅支持使用 Verilog 设计输入的 DDR3 SDRAM 和 DDR2 SDRAM 控制器。"
    • 解释: AXI4 (Advanced eXtensible Interface 4) 是 ARM 定义的、目前已成为业界标准的高性能片上总线协议。在 Xilinx Vivado 生态中,AXI4 是连接处理器(如 Zynq PS、MicroBlaze)、IP 核(如 DMA、HLS 生成的模块)与存储器控制器(如 MIG)的首选标准接口。勾选此项意味着 MIG 会生成一个符合 AXI4 协议的从接口 (Slave Interface),用户逻辑可以通过这个接口来读写 DDR 内存。如果不勾选,MIG 会生成一个较旧的、更复杂的"Native Interface"(也称为 User Interface, UI),使用起来相对复杂。
    • 兼容性提示: 这里特别指出,对于 DDR3/DDR2,AXI4 接口的生成主要是在工程的 Design Entry (设计输入方式) 设置为 Verilog 时得到完整支持和测试。如果你的工程主要使用 VHDL,虽然现在 Vivado 可能也能生成(或提供 VHDL 封装),但过去可能存在一些限制或需要额外注意的地方。最好查阅当前 Vivado 版本的 MIG 文档确认 VHDL AXI 支持情况。
    • 复选框: AXI4 Interface
      • 默认值: 通常是勾选状态。
      • 建议: 强烈推荐保持勾选 (启用 AXI4 接口)。AXI4 接口大大简化了用户逻辑与 MIG 的交互,并且能无缝地与 Vivado 的其他 AXI 生态系统 IP 集成。除非你有非常特殊的原因(例如,必须兼容一个只支持 Native Interface 的旧 IP),否则不应禁用此选项。

总结

这个页面是设置 MIG 生成任务类型和顶层属性的地方。对于大多数用户来说,关键在于:

  • 选择 Create Design
  • 指定一个合适的 Component Name
  • 保持 Number of controllers1
  • 务必保持 AXI4 Interface 勾选状态

确认这些选项后,点击 Next > 才会进入选择具体存储器类型(如我们之前看到的 DDR3/DDR2 选择页面)和详细参数配置的阶段。

Pin Compatible FPGAs 配置页面

页面 1: Pin Compatible FPGAs (引脚兼容 FPGA)

页面功能

此页面允许您在当前选定的目标 FPGA 之外,额外指定一些与目标 FPGA 具有相同封装、相同速度等级且 MIG 相关引脚定义兼容的 FPGA 器件。目的是让 MIG 生成的引脚约束(XDC 文件)能够适用于所有选定的兼容器件。

英文说明翻译与解读

  • 英文原文 (第一段): "Pin Compatible FPGAs include all devices with the same package and speed grade as the target device. Different FPGA devices with the same package do not have the same bonded pins. By selecting Pin Compatible FPGAs, MIG will only select pins that are common between the target device and all selected devices. Use the default XDC in the part folder for the target part. If the target part is changed, use the appropriate XDC in the compatible_ucf folder. If a Pin Compatible FPGA is not chosen now, but later a different FPGA is used, the generated XDC may not work for the new device and a board spin may be required. MIG only ensures that MIG generated pin out is compatible among the selected compatible FPGA devices. Unselected devices will not be considered for compatibility during the pin allocation process."
    中文翻译: "引脚兼容 FPGA 包括所有与目标器件具有相同封装和相同速度等级的器件。相同封装的不同 FPGA 器件并不具有完全相同的绑定引脚。通过选择引脚兼容 FPGA,MIG 将仅选择目标器件与所有选定器件之间共有的引脚。请使用器件文件夹中的默认 XDC 文件给目标器件。如果目标器件被更改,请使用 compatible_ucf 文件夹中相应的 XDC 文件。如果现在未选择引脚兼容 FPGA,但稍后使用了不同的 FPGA,则生成的 XDC 可能不适用于新器件,并且可能需要重新设计电路板。MIG 仅确保其生成的引脚布局在所选的兼容 FPGA 器件之间兼容。未选中的器件在引脚分配过程中将不被考虑兼容性。"
    解读: 这段话强调了引脚兼容性的定义(同封装同速度)和局限性(并非所有引脚都相同)。选择兼容器件会限制 MIG 只能使用"公共子集"引脚。它还指出了更改目标器件或后来才考虑兼容性时,需要使用正确的 XDC 文件,否则可能导致设计失败甚至需要改板。MIG 的兼容性保证仅限于其自身分配的引脚。
  • 英文原文 (第二段 - Note): "Note that different parts in the same package will have different internal package skew values. De-rate the minimum period appropriately in the Controller Options page when different parts in the same package are used. Consult the User Guide for more information."
    中文翻译: "请注意,同一封装内的不同器件会有不同的内部封装延迟(package skew)值。当使用同一封装内的不同器件时,请在'控制器选项'页面适当降低最小周期(即提高周期值/降低频率)。请查阅用户指南获取更多信息。"
    解读: 这是一个重要的性能提示。即使封装相同,不同芯片内部从焊球到硅片的微小走线长度差异会导致信号传输时间有细微不同(封装延迟)。如果设计需要在这些兼容器件间移植,这种差异可能吃掉时序裕量,尤其是在高频工作时。因此,MIG 建议在这种情况下,应保守地在"控制器选项"页面设置一个稍慢的时钟频率(即稍大的时钟周期),为这种潜在的延迟差异留出裕量,以确保设计的鲁棒性。具体需要降低多少,需要参考 Xilinx 的详细文档。
  • 英文原文 (第三段 - A blank list...): "A blank list indicates that there are no compatible parts exist for the selected target part and this page can be skipped."
    中文翻译: "空列表表示所选目标器件不存在兼容器件,可以跳过此页面。"
    解读: 如果下方列表是空的,说明根据 Xilinx 的数据,当前你的目标 FPGA 型号没有其他可以满足"同封装、同速度、MIG引脚兼容"条件的器件了。

配置选项

Target FPGA
显示当前 Vivado 工程所设置的目标 FPGA 型号。这个信息来源于工程设置,在此界面不能修改。
Pin Compatible FPGAs (列表)
列出了所有满足兼容性条件的 FPGA 器件。您可以勾选一个或多个,表示您希望生成的 MIG 设计和引脚约束也能在这些器件上工作。
影响: 勾选越多,MIG 在选择引脚时的自由度越小,因为它必须迁就所有选定器件的共同可用引脚。

建议

强烈建议保持默认(不勾选任何额外器件),除非你有非常明确的跨器件移植需求。
理由: 1. 大多数 FPGA 设计是针对特定开发板和特定 FPGA 型号的,不需要考虑这种级别的硬件移植性。 2. 勾选兼容器件会限制 MIG 的引脚优化能力,可能导致性能略微下降或布局布线更困难。 3. 如果真的需要移植,在移植时重新生成 MIG 并处理引脚约束通常是更稳妥的做法。

Memory Selection 配置页面

页面 2: Memory Selection (存储器选择)

页面功能

在此页面选择您将要连接到 FPGA 的外部存储器的主要类型(例如 DDR3 或 DDR2)。这是配置流程的基础。

英文说明翻译与解读

  • 英文原文: "Select the type of memory interface. Please refer to the User Guide for a detailed list of supported controllers for each FPGA family. The list below shows currently available interface(s) for the specific FPGA, speed grade and design entry chosen."
    中文翻译: "选择存储器接口的类型。关于每个 FPGA 系列支持的控制器的详细列表,请参考用户指南。下面的列表显示了针对所选的特定 FPGA、速度等级和设计输入方式当前可用的接口。"
    解读: 这段话指示用户选择存储器类型,并提示可以查阅 MIG 的用户指南(UG586 等文档)来了解当前使用的 FPGA 支持哪些存储器标准和控制器。列表框中显示的是基于当前工程设置(FPGA型号、速度等级等)MIG 所能支持的存储器类型。

配置选项

Select the controller type:
选择您硬件上实际使用的存储器类型。
  • DDR3 SDRAM: 如果您的开发板使用 DDR3 或 DDR3L 颗粒/模组,请选择此项。(图片中选择了此项)
  • DDR2 SDRAM: 如果您的开发板使用 DDR2 颗粒/模组,请选择此项。

建议

此选项必须与您的硬件完全匹配! 这是整个 MIG 配置中最关键的步骤之一。选错将导致后续所有配置无效,硬件无法工作。
如何确定: 请仔细查阅您所使用的开发板原理图或其物料清单 (BOM),确认板载 DRAM 芯片是 DDR3 还是 DDR2 系列。

Controller Options 配置页面

页面 3: Controller Options (控制器选项)

页面功能

配置 DDR3 控制器的核心参数,这些参数直接关联到物理存储器芯片的特性和接口的操作速度。

英文说明翻译与解读 (部分重要提示)

  • 英文原文 (Clock Period): "...The allowed period range(1250 - 3300) is a function of the selected FPGA part and FPGA speed grade. Refer to the User Guide for more information."
    中文翻译: "...允许的周期范围(1250 - 3300 ps)是所选 FPGA 器件和 FPGA 速度等级的函数。请参考用户指南获取更多信息。"
    解读: MIG 会根据你选择的 FPGA 型号和速度等级自动计算出它能支持的 DDR3 时钟周期范围(反过来就是频率范围)。这里的 1250ps (800MHz) 到 3300ps (约 303MHz) 是示例 FPGA 的支持范围。你需要确保你设置的值落在这个范围内,并且也满足 DRAM 芯片本身的速度要求。
  • 英文原文 (Vccaux_io): "Vccaux_io must be set to 2.0V in the High Performance banks for the highest data rates. Vccaux_io is not available in the High Range banks. Note that Vccaux_io is common to groups of banks. Consult the 7 Series Datasheets and FPGA SelectIO Resources User Guide for more information."
    中文翻译: "对于最高数据速率,Vccaux_io 在高性能(HP)bank 中必须设置为 2.0V。Vccaux_io 在高范围(HR)bank 中不可用。请注意,Vccaux_io 是 bank 组共用的。请查阅 7 系列数据手册和 FPGA SelectIO 资源用户指南获取更多信息。"
    解读: 这段话解释了 VCCAUX_IO 电压对性能的影响(跑高速率时 HP bank 需要 2.0V),以及它在不同类型 bank(HP vs HR)中的可用性。重要的是它强调了 VCCAUX_IO 是多个 bank 共用的电源轨,这意味着你的选择会影响到共享该电源的所有 bank。因此,必须根据原理图确认 FPGA 上连接 DDR3 的 bank 的 VCCAUX_IO 电压是多少,并在这里正确设置。
  • 英文原文 (Memory Part): "...Part(s) marked with a warning symbol are not compatible with the frequency selection above. Find an equivalent part or create a part using the 'Create Custom Part' button if the part needed is not listed here. The 'Create Custom Part' feature is not supported for RLDRAM II."
    中文翻译: "...标有警告符号的器件与上面选择的频率不兼容。如果需要的器件未在此处列出,请查找等效器件或使用'创建自定义器件'按钮创建器件。RLDRAM II 不支持'创建自定义器件'功能。"
    解读: 如果你在列表中选择的 DRAM 型号旁边出现警告标志,通常意味着该型号的 DRAM 不支持你在 `Clock Period` 中设置的频率。你需要选择一个速度等级更高(如 -125 代表 800MHz,-107 代表 933MHz 等)的兼容器件,或者降低你在 `Clock Period` 中设置的频率。如果列表中完全找不到你的 DRAM 型号,最后的手段是使用"创建自定义器件"功能,但这需要你从 DRAM 数据手册中手动输入大量的时序参数,非常繁琐且容易出错,不推荐新手使用。

配置选项

Clock Period
关键参数。 定义 DDR3 接口物理时钟的周期(单位:皮秒 ps),决定了数据传输速率 (Rate = 2 / Period(ns))。旁边会显示对应的时钟频率(MHz)。(图片: 1250 ps / 800 MHz)。
影响: 周期越短(频率越高),带宽越高,但时序要求越严格,功耗可能越高。
建议: 必须同时满足以下两点:1. 不低于您 DRAM 芯片规格书中标称的最高速度等级(例如 -125 速度等级的 DDR3 对应 1.25ns=1250ps 周期/800MHz 频率)。2. 在您 FPGA 型号和速度等级所支持的范围内(见上方提示)。请查阅 DRAM 和 FPGA 的数据手册来确定最佳且可行的值。
PHY to Controller Clock Ratio
物理层(PHY)工作时钟与控制器逻辑工作时钟的比率。(图片: 4:1)。
影响: 对于 DDR3,PHY 需要工作在两倍数据速率时钟上,而控制器通常工作在 1/2 或 1/4 PHY 时钟频率上。4:1 意味着控制器时钟频率是 DDR3 时钟频率的一半 (例如 800MHz DDR3 时钟 -> 400MHz 控制器时钟)。
建议: 保持默认 (4:1)。 这是 7 系列 MIG DDR3 的标准且推荐的配置。
Vccaux_io
FPGA I/O Bank 的辅助电压。(图片: 2.0V)。
影响: 影响 I/O 性能和驱动能力,特别是对于高性能 (HP) Bank,要达到最高速率通常需要 2.0V。
建议: 必须根据您的开发板原理图来设置。 检查 FPGA 上用于连接 DDR3 的那些 I/O Bank 的 VCCAUX_IO 引脚实际连接的是哪个电压轨(通常是 1.8V 或 2.0V)。选错可能导致 I/O 无法正常工作。
Memory Type
选择您使用的存储器的物理形态。(图片: Components)。
影响: 决定了 MIG 生成的信号和引脚分配是针对独立芯片还是内存模组 (DIMM) 的。
建议: 如果 DRAM 芯片直接焊接在 PCB 上,选择 Components。如果使用标准内存条插槽(如台式机或笔记本内存条),选择对应的 DIMM 类型 (如 SODIMM, UDIMM)。
Memory Part
极其重要! 从下拉列表中选择与您硬件上使用的 DRAM 芯片完全一致的具体型号。(图片: MT41J128M8XX-125)。
影响: MIG 会根据所选型号加载对应的精确时序参数 (tCK, CL, tRCD, tRP, tRAS 等),这些参数对 DDR3 的正确操作至关重要。
建议: 必须选择正确的型号。 如果列表中没有完全一致的型号,请仔细查找功能、容量、位宽、电压和速度等级都兼容的替代型号。万不得已才使用"Create Custom Part"。
Memory Voltage
DRAM 芯片的工作电压。(图片: 1.5V)。
影响: 决定了 FPGA 输出信号的电平标准(如 SSTL15)。
建议: 标准 DDR3 是 1.5V。低功耗 DDR3L 是 1.35V必须根据 DRAM 芯片数据手册和板级供电电压选择。
Data Width
存储器接口的总数据位宽,即 DQ 信号线的数量。(图片: 8)。
影响: 直接决定了每次读写操作传输的数据量,影响总带宽 (Bandwidth = Frequency * DataWidth)。
建议: 必须根据您的硬件原理图选择。 计算一下连接到 FPGA 的 DQ 线有多少根 (例如,用了两片 x8 的芯片组成 16 位接口,就选 16)。
ECC
是否启用错误校验与纠正 (Error Checking and Correction)。(图片: Disabled)。
影响: 启用 ECC 可以检测并纠正单位比特错误,提高系统可靠性,但需要额外的存储位(通常每 64 位数据需要额外 8 位 ECC 位,即 72 位物理接口)和额外的 FPGA 逻辑资源。
建议: 如果您的 DRAM 芯片和 PCB 设计支持 ECC(例如使用了 x72 的 ECC DIMM 或有额外的 x8/x4 芯片用于 ECC),并且应用场景(如服务器、高可靠系统)需要,则选择 Enabled。否则选择 Disabled
Data Mask
是否启用数据屏蔽 (DM/DBI) 信号。(图片: 勾选/启用)。
影响: DM 信号允许在写操作时屏蔽掉不需要写入的字节。DBI(Data Bus Inversion)是 DDR3 的一个可选功能,有时与 DM 复用,用于降低功耗和改善信号完整性。
建议: 对于 DDR3 写操作,DM 通常是必需的,建议保持勾选 (启用)。 除非你的硬件确实没有连接 DM 引脚且应用不需要字节写屏蔽。
Number of Bank Machines
控制器内部用于管理 DRAM Bank 状态的状态机数量。(图片: 4)。
影响: 更多的 Bank Machine 可以同时跟踪更多 Bank 的状态,可能提高命令调度效率和性能,尤其是在访问模式比较随机或需要频繁切换 Bank 时,但也会消耗更多 FPGA 资源。
建议: 保持默认 (4) 通常是性能和资源消耗的良好平衡点。 除非经过深入分析和性能评测,一般不需要修改。
ORDERING
命令重排序设置。(图片: Normal)。
影响: Normal 模式允许 MIG 控制器为了最大化总线利用率和效率而重新排序读写命令(在满足协议约束的前提下)。Strict 模式则强制控制器严格按照接收到的顺序执行命令,可能导致性能下降,但在某些需要严格时序保证的特殊场景下可能需要。
建议: 保持默认 (`Normal`) 以获得最佳性能。
AXI Parameter 配置页面

页面 4: AXI Parameter (AXI 参数)

页面功能

配置 MIG 提供的 AXI4 Slave 接口参数。这个 AXI 接口是 FPGA 内部用户逻辑(如 Zynq 的 PS、MicroBlaze 处理器、自定义的 HLS 或 RTL 模块)访问外部 DDR 存储器的标准通道。

配置选项

Data Width
AXI4 总线的数据宽度 (AxLEN 信号决定突发长度,AxSIZE 决定每次传输的字节数,但物理总线宽度是固定的)。(图片: 64)。
影响: 定义了 AXI 主设备 (Master) 与 MIG 从设备 (Slave) 之间单次数据传输的物理通道宽度。更宽的总线通常能提供更高的突发传输带宽,但也消耗更多的 FPGA 内部布线资源和逻辑资源(例如数据宽度转换 FIFO)。
建议: 根据连接到 MIG 的主要 AXI Master 的原生位宽和系统带宽需求来选择。 常见的选择有 32, 64, 128, 256, 512 位。例如,Zynq PS 的 HP 端口通常是 64 位。如果您的用户逻辑是 32 位,但需要高带宽,也可以选择 64 位或 128 位 AXI 接口,MIG 会处理位宽转换。
Arbitration Scheme
AXI 接口的仲裁策略,当有多个 AXI Master(通过 AXI Interconnect 连接到 MIG 的单个 Slave 端口)时,决定访问优先级。(图片: RD_PRI_REG)。
影响: RD_PRI_REG 表示读操作优先于写操作。其他选项可能提供不同的优先级策略。
建议: 对于单个 Master 或简单系统,保持默认 (`RD_PRI_REG`) 通常足够。 如果有复杂的 Multi-Master 场景,可能需要根据具体应用的性能瓶颈来选择不同的仲裁策略。
Narrow Burst Support
是否允许 AXI Master 发起的数据传输宽度(由 AxSIZE 定义)小于 AXI 总线物理数据宽度 (Data Width) 的突发传输。(图片: 0 / 禁用)。
影响: 启用此功能(设置为非零值,通常是 AXI 位宽/8 的整数倍)允许 Master 进行更细粒度的访问,例如在一个 64 位总线上只传输 32 位数据。但这会增加 MIG 内部逻辑的复杂性,需要处理字节使能等。设置为 0 表示所有传输都必须使用完整的 AXI 总线宽度。
建议: 如果您的 AXI Master 总是进行总线宽度对齐的传输,或者可以配置为这样做,建议保持默认 (0,禁用) 以简化设计。 只有当 Master 确实需要发送窄突发且无法配置时才启用。
Address Width
AXI4 总线的地址线宽度 (AxADDR 信号的位数)。(图片: 27)。
影响: 决定了通过 AXI 接口能够寻址的存储空间大小。地址宽度为 N,则可寻址 2^N 字节。
建议: 此值必须足够大,以覆盖您所使用的 DRAM 的全部容量。 例如:
  • 128MB (Megabytes) = 128 * 2^20 Bytes = 2^7 * 2^20 = 2^27 Bytes -> 需要至少 27 位地址。 (图片选择值)
  • 1GB (Gigabyte) = 1 * 2^30 Bytes -> 需要至少 30 位地址。
  • 4GB (Gigabyte) = 4 * 2^30 Bytes = 2^2 * 2^30 = 2^32 Bytes -> 需要至少 32 位地址。
选择一个略大于所需最小值的标准宽度(如 30 或 32)通常更方便。**配置错误会导致部分内存无法访问!**
ID Width
AXI4 总线的 ID 信号 (AxID, RxID, BxID) 的宽度。(图片: 4)。
影响: ID 用于区分来自不同来源或线程的 AXI 事务,允许乱序完成 (out-of-order completion)。ID 宽度为 N,可以同时跟踪 2^N 个不同的 ID。
建议: 如果只有一个 AXI Master 连接到 MIG,ID 宽度可以设为 01。如果有多个 Master 通过 Interconnect 连接,或者 Master 支持多线程/多事务 ID,需要根据 Master 的数量和特性设置一个足够大的值。4 是一个比较通用且够用的值,可以支持最多 16 个不同的 ID。
Memory Options 配置页面

页面 5: Memory Options (存储器选项)

页面功能

配置与存储器时序、电气特性及附加功能相关的选项。

英文说明翻译与解读 (部分重要提示)

  • 英文原文 (Input Clock Period): "Select the period for the PLL input clock (CLKIN). MIG determines the allowable input clock periods based on the Memory Clock Period entered above and the clocking guidelines listed in the User Guide. The generated design will use the selected Input Clock and Memory Clock Periods to generate the required PLL parameters. If the required input clock period must be modified..."
    中文翻译: "选择 PLL 输入时钟(CLKIN)的周期。MIG 根据上面输入的存储器时钟周期和用户指南中列出的时钟指导原则来确定允许的输入时钟周期。生成的设计将使用所选的输入时钟和存储器时钟周期来生成所需的 PLL 参数。如果需要修改所需的输入时钟周期..."
    解读: 这段话解释了此处的"输入时钟周期"是指供给 MIG 内部 PLL/MMCM 的参考时钟 (sys_clk 端口) 的周期。MIG 会基于你在"控制器选项"页设置的"存储器时钟周期"和一些内部时钟生成规则(例如 PLL/MMCM 的倍频分频限制)来计算出允许的 sys_clk 频率范围。你设置的值必须落在这个范围内。这两个时钟周期(`sys_clk` 和 Memory Clock)共同决定了 MIG 内部 PLL/MMCM 的配置参数。
  • 英文原文 (Select Additional Clocks): "MIG can generate up to 5 additional clocks to be used in Fabric logic. This will be generated from the same MMCM which is used for generation of UI_CLK. The first clock(Clock 0) has a wider range of choices. All the values in the additional clocks drop downs are calculated considering the Memory Clock Frequency is 1250 ps (800 MHz). Refer to complete details on clocking of MIG, refer to MIG User Guide."
    中文翻译: "MIG 最多可以生成 5 个额外的时钟供 Fabric 逻辑使用。这些时钟将由用于生成 UI_CLK 的同一个 MMCM 生成。第一个时钟(Clock 0)有更宽的选择范围。附加时钟下拉列表中的所有值都是在考虑存储器时钟频率为 1250 ps (800 MHz) 的情况下计算出来的。有关 MIG 时钟的完整详细信息,请参阅 MIG 用户指南。"
    解读: 这个功能允许你利用 MIG 内部的 MMCM 顺便产生一些其他频率的时钟给 FPGA 内部的其他逻辑使用,最多可以额外生成 5 个。这可以节省一个专门的 Clocking Wizard IP,但缺点是这些时钟的来源与 MIG 紧密耦合。下拉列表中提供的频率是基于你设置的存储器时钟频率计算出来的 MMCM 能产生的其他频率。

配置选项

Input Clock Period
非常重要! 指定输入到 MIG IP 核 sys_clk 端口的时钟周期(单位 ps)。这个时钟是 MIG 内部核心时钟管理模块 (MMCM 或 PLL) 的参考输入。(图片: 1250 ps / 800 MHz)。
影响: 作为参考时钟,它的频率和质量直接影响 MIG 生成的所有内部时钟(包括最终的 DDR 时钟和用户接口时钟 ui_clk)的稳定性和精度。
建议: 必须精确匹配您在 Block Design 中实际连接到 MIG sys_clk 端口的时钟源的频率。 例如,如果您使用一个 200MHz (5000ps) 的外部晶振通过 Clocking Wizard 生成了一个 200MHz 时钟连接到 sys_clk,那么这里就应该填 5000ps。图片中填写 1250ps,意味着设计者打算直接提供一个 800MHz 的时钟给 sys_clk。**请务必确认您的设计中 sys_clk 的来源和频率!**
Select Additional Clocks
是否让 MIG 内部的 MMCM 在生成必要时钟的同时,额外输出一些其他频率的时钟供用户逻辑使用。(图片: NONE)。
影响: 方便用户获取一些常用频率时钟,但会增加 MIG IP 的输出端口,并使得这些时钟与 MIG 的运行状态(如复位)相关联。
建议: 推荐保持 NONE (不生成额外时钟)。 最佳实践是使用一个独立的 Clocking Wizard (clk_wiz) IP 来管理 FPGA 内部的全局和区域时钟资源,这样可以降低模块间的耦合度,使时钟结构更清晰。
Read Burst Type and Length
DDR3 协议定义的读突发类型和长度。对于 DDR3,标准是顺序 (Sequential) 读突发,并且突发长度固定为 8 (BL8)。(图片未明确显示,但默认为 Sequential BL8)。
建议: 保持默认。 这是 DDR3 SDRAM 标准的一部分,MIG 会自动遵循。
Output Driver Impedance Control
FPGA 输出引脚(如 DQ, DQS, Addr/Cmd)的驱动阻抗设置。RZQ/7 表示目标阻抗是 RZQ 电阻值的 1/7。对于 240 Ohm 的 RZQ 参考电阻,RZQ/7 大约是 34 Ohm。(图片: RZQ/7)。
影响: 驱动阻抗需要与传输线特性阻抗和接收端的端接电阻进行匹配,以获得最佳的信号完整性。
建议: 保持默认 (`RZQ/7`)。 这是 DDR3 应用中常用的驱动阻抗设置,通常与 ODT (On-Die Termination) 配合使用。
RTT (nominal) - On Die Termination
设置 DDR3 存储器芯片内部的可编程终结电阻 (ODT) 的标称值。RTT 用于在读操作期间对传输线进行端接,以吸收信号反射,改善信号质量。(图片: RZQ/4)。
影响: RTT 的值直接影响信号反射的大小和眼图张开度。可选的值通常有 RZQ/2 (120 Ohm), RZQ/4 (60 Ohm), RZQ/6 (40 Ohm), RZQ/8 (30 Ohm), RZQ/12 (20 Ohm) 等。
建议: 需要根据您的 PCB 布局、走线阻抗和信号完整性仿真结果来选择最优值。 RZQ/4 (60 Ohm) 和 RZQ/6 (40 Ohm) 是比较常见的配置。可以先从默认值开始,如果遇到信号完整性问题,再考虑调整。请参考 DRAM 数据手册和 Xilinx 的相关应用笔记 (如 UG586)。
Controller Chip Select Pin
对于只使用单个 Rank (Single Rank) 的存储器系统,可以选择禁用 (Disable) 片选 (CS#) 信号的输出。如果禁用,用户需要在板级将 DRAM 的 CS# 引脚直接接地(或连接到恒定低电平)。(图片: Enable)。
影响: 禁用可以节省一个 FPGA 的 I/O 引脚。
建议: 如果您的系统确实是单 Rank 并且 FPGA 引脚资源非常紧张,可以考虑选择 `Disable`。 但为了通用性和方便调试,**推荐保持默认 (`Enable`)**,即使是单 Rank 系统,让 MIG 驱动 CS# 信号。
Memory Address Mapping Selection
选择 DRAM 内部地址(物理 Bank 地址, 行地址 Row, 列地址 Column)如何映射到 FPGA 发出的地址总线上的方式。(图片: BANK_ROW_COLUMN)。
影响: 不同的映射方式会影响访问局部性(locality),可能对特定访问模式下的性能有细微影响(例如行命中率 Row Hit Rate)。
建议: 保持默认 (`BANK_ROW_COLUMN`)。 这是最常用、最直观的映射方式,除非有基于特定应用访问模式的性能优化需求,一般不需要更改。
FPGA Options 配置页面

页面 6: FPGA Options (FPGA 选项)

页面功能

配置与 FPGA 侧相关的接口和选项,如参考时钟类型、复位信号极性、内部参考电压等。

英文说明翻译与解读 (部分重要提示)

  • 英文原文 (Internal Vref): "Internal Vref can be used to allow the use of the Vref pins as normal IO pins. This option can only be used at 800 Mbps and lower data rates. This can free 2 pins per bank where inputs are used. This setting has no effect on banks with only outputs."
    中文翻译: "可以使用内部 Vref,以允许将 Vref 引脚用作普通 IO 引脚。此选项只能在 800 Mbps 及更低的数据速率下使用。对于使用了输入的 bank,每个 bank 可以释放 2 个引脚。此设置对只有输出的 bank 没有影响。"
    解读: 这段话解释了启用"Internal Vref"的好处(节省 Vref 引脚,每个输入 bank 可省 2 个)和代价(只能用于较低的数据速率,最高 800 Mbps,即 400 MHz DDR 时钟)。Vref 是 DDR 接口输入信号的参考电平,使用内部生成的 Vref 可能会牺牲一些噪声容限和性能稳定性。
  • 英文原文 (XADC Instantiation): "The memory interface uses the temperature reading from the XADC block to perform temperature compensation and keep the read DQS centered in the data window. There is one XADC block per device. If the XADC is not currently used anywhere in the design, enable this option to have the block instantiated. If the XADC is already used, disable this MIG option. The user is then required to provide the temperature value to the top level 12-bit device_temp input port. Refer to Answer Record 51687 or the UG586 for detailed information."
    中文翻译: "存储器接口使用来自 XADC 模块的温度读数来执行温度补偿,并保持读 DQS 在数据窗口中居中。每个器件有一个 XADC 模块。如果设计中当前未使用 XADC,请启用此选项以实例化该模块。如果 XADC 已被使用,请禁用此 MIG 选项。然后,用户需要向顶层的 12 位 device_temp 输入端口提供温度值。有关详细信息,请参阅 Answer Record 51687 或 UG586。"
    解读: 这说明了 MIG 可以利用 FPGA 内置的 XADC(模数转换器,可以监测温度和电压)来实现温度补偿,以优化读操作的时序(特别是 DQS 信号的位置)。由于一个 FPGA 只有一个 XADC 资源,如果你的设计其他部分没有用到 XADC,可以让 MIG 来实例化并使用它(选 Enabled)。如果 XADC 已经被你设计的其他部分(比如系统监控模块)占用了,这里就必须选 Disabled,然后你需要自己想办法读取温度,并将温度值(12位格式)从外部连接到 MIG IP 的 `device_temp` 输入端口上。

配置选项

System Clock
配置输入到 MIG 的 sys_clk 端口的时钟是差分信号还是单端信号。(图片: Differential)。
影响: 决定了 MIG IP 核期望的 sys_clk 输入端口形式(是单个引脚还是 P/N 对)。
建议: 必须根据您实际提供给 sys_clk 的时钟源类型选择。 如果来自外部差分晶振或另一个 IP 的差分输出,选 Differential。如果来自单端晶振或 FPGA 内部逻辑产生的单端时钟,选 Single-Ended
Reference Clock
配置输入到 MIG 的 clk_ref 端口的时钟类型。(图片: Differential)。
影响: clk_ref 主要用作 MIG 内部 IDELAYCTRL 模块的参考时钟,以确保 I/O 接口中使用到的 IDELAY/ODELAY 元件能够精确校准延迟。其频率通常要求是 200MHz 或 300MHz (具体查阅 UG586)。
建议: 根据实际连接到 clk_ref 的时钟源类型选择。 通常可以:
  • sys_clk 使用同一个时钟源(如果该源频率恰好是 200/300MHz 且满足 sys_clk 要求)。
  • 使用一个独立的 200MHz 或 300MHz 时钟源。
  • 由 Clocking Wizard 从主时钟分频得到。
选择 No Buffer 通常意味着期望从专用时钟管脚输入。
System Reset Polarity
配置输入到 MIG 的 sys_rst 端口的复位信号有效电平。(图片: ACTIVE LOW)。
影响: 决定了 MIG 控制器在接收到高电平还是低电平时执行复位操作。
建议: 必须与您提供给 sys_rst 的复位信号源的极性匹配。 如果您使用了 Xilinx 标准的 Processor System Reset IP 核,它的 peripheral_aresetn 输出是低电平有效 (Active Low),因此这里应选择 ACTIVE LOW。如果您的复位源是高电平有效,则选 ACTIVE HIGH。选错会导致 MIG 无法正常复位或一直处于复位状态。
Internal Vref
是否使用 FPGA 内部产生的参考电压 (Vref) 来代替专用的外部 Vref 引脚。(图片: 未勾选)。
影响: 启用可以节省 FPGA 引脚,但有性能限制(最高 800 Mbps)且可能降低信号噪声容限。
建议: 为了获得最佳性能和信号完整性,推荐不勾选此项,并使用外部连接到 FPGA Vref 引脚的精密参考电压源。 只有在引脚资源极其紧张且数据速率不高(<= 800 Mbps)时才考虑启用。
IO Power Reduction
是否启用 MIG 的 I/O 功耗降低特性。启用后,MIG 会在空闲期间尝试关闭部分 I/O 电路或降低其功耗。(图片: ON)。
影响: 有助于降低系统整体功耗,尤其是在 DDR 接口不繁忙时。
建议: 通常建议保持默认 (`ON`),除非在极少数情况下发现该功能干扰了某些特殊操作。
XADC Instantiation
是否让 MIG 内部实例化并直接使用 FPGA 的 XADC 模块来进行温度监测和补偿。(图片: Enabled)。
影响: 启用后 MIG 会自动处理温度补偿逻辑,但会占用 FPGA 唯一的 XADC 资源。禁用则需要用户自行提供温度信息。
建议: 如果您的设计中没有其他模块需要使用 XADC,选择 Enabled 是最方便的。如果 XADC 已被其他模块(如系统监控)占用,必须选择 Disabled,并确保将温度值连接到 MIG 的 device_temp 端口。
Extended FPGA Options 配置页面

页面 7: Extended FPGA Options (扩展 FPGA 选项)

页面功能

配置更高级、更特殊的 FPGA I/O 相关特性,主要是 DCI(数字控制阻抗)。

英文说明翻译与解读

  • 英文原文 (DCI): "The DCI (Digitally Controlled Impedance) I/O standards are applied appropriately in High Performance banks. DCI standards (SSTL15_T_DCI for DQ's and DQS's and DIFF_SSTL15_T_DCI for DQS and DQSE). DCI is not used for the Address/Control output signals. Consult the User Guide for more information and use IBIS simulation to determine the best termination strategy."
    中文翻译: "DCI(数字控制阻抗)I/O 标准在高性能(HP)bank 中被恰当应用。DCI 标准(用于 DQ 和 DQS 的 SSTL15_T_DCI,用于差分 DQS 和 DQSE 的 DIFF_SSTL15_T_DCI)。地址/控制输出信号不使用 DCI。请查阅用户指南获取更多信息,并使用 IBIS 仿真来确定最佳的端接策略。"
    解读: 这段话说明了 MIG 会自动为需要 DCI 的信号(主要是数据和选通信号,它们使用 SSTL15_T_DCI 标准)应用 DCI 设置,而地址/控制信号则不使用 DCI。它建议用户通过查阅文档和进行 IBIS 仿真来深入理解和优化端接方案。这里的配置主要是关于 DCI 参考电阻的级联和 HR bank 的内部端接。
  • 英文原文 (DCI Cascading): "Select the DCI Cascade for the DCI reference pins to achieve better pin efficiency. The constraint file must be updated manually to select the Master/Slave banks."
    中文翻译: "为 DCI 参考引脚选择 DCI 级联以实现更好的引脚效率。必须手动更新约束文件以选择主/从 bank。"
    解读: DCI 需要参考电阻(通过 VRP/VRN 引脚连接)。如果一个设计中需要 DCI 的 I/O 分布在多个 bank,可以通过级联的方式让多个 bank 共享一对 VRP/VRN 引脚,从而节省引脚。启用这个选项就表示你打算使用级联模式,但同时你需要在 XDC 文件中手动指定哪个 bank 是提供参考电阻的 Master bank,哪些是使用这个参考的 Slave bank。
  • 英文原文 (Internal Termination...): "Select the internal termination (IN_TERM) impedance for the High Range (HR) banks. This setting applies ONLY to the HR banks used in the interface."
    中文翻译: "为高范围(HR)bank 选择内部端接(IN_TERM)阻抗。此设置仅适用于接口中使用的 HR bank。"
    解读: 7 系列 FPGA 的 HR bank 具有可选的内部端接电阻功能(不同于 DCI),主要用于某些不需要 DCI 的输入标准。如果你的 DDR 接口恰好使用了 HR bank(虽然 DDR3 通常推荐使用 HP bank),这里可以设置其内部端接电阻值。

配置选项

DCI Cascade
是否启用 DCI 参考电阻的级联模式。(图片: 未勾选)。
影响: 启用可以节省 VRP/VRN 引脚,但需要手动在 XDC 中配置主从 bank。
建议: 通常不勾选。 只有当你的设计确实跨越多个需要 DCI 的 bank,且硬件连接支持级联,并且你清楚如何在 XDC 中进行配置时才启用。对于大多数使用单个或相邻 HP bank 的 DDR3 设计,不需要级联。
Internal Termination for High Range Banks
为接口中使用到的 HR (High Range) Bank 设置内部端接电阻值。(图片: 50 Ohms)。
影响: 影响 HR Bank 输入信号的端接。
建议: DDR3 通常使用 HP Bank 并依赖 DCI (SSTL15_T_DCI),这个选项一般不直接影响 DDR3。保持默认 (`50 Ohms`) 通常即可。 如果你的设计因特殊原因将 DDR3 接口放在了 HR Bank,则需要根据信号标准仔细考虑此设置。
IO Planning Options 配置页面

页面 8: IO Planning Options (IO 规划选项)

页面功能

选择 MIG IP 核在生成时如何处理 FPGA 引脚的分配。

配置选项

New Design: Pick the optimum banks for a new design
选择此项,MIG/Vivado 将自动根据内部算法选择最优的 I/O Bank 和引脚来布局 DDR 接口,以期达到最佳的时序性能和布线效果。(图片选择此项)。
适用场景: 适用于全新的 PCB 设计,此时 FPGA 引脚分配还没有确定,可以交给工具来优化。
Fixed Pin Out: Pre-existing pin out is known and fixed
选择此项,表示您已经有了一套确定的、不能更改的 FPGA 引脚分配方案给 DDR 接口使用。
适用场景:
  • 当您使用的开发板 PCB 已经生产完成,DDR 芯片与 FPGA 的连接是固定的。
  • 当您需要复用一个旧设计的引脚分配方案。
  • 当有其他接口或设计约束强制要求 DDR 使用特定引脚时。
选择此项后,Vivado 通常会要求您提供一个用户约束文件 (XDC),其中包含所有 DDR 接口信号(DQ, DQS, Addr/Cmd, Clk 等)到 FPGA 具体物理引脚的映射关系 (set_property PACKAGE_PIN ...) 以及对应的 I/O 标准 (set_property IOSTANDARD ...)。

建议

对于全新的 PCB 设计,强烈推荐选择 New Design 让 Vivado 自动进行引脚规划通常能获得更好的结果。

如果您使用的是现有的开发板(几乎所有情况都是如此!),或者 PCB 设计已经完成,必须选择 Fixed Pin Out 然后,您需要找到该开发板对应的、由开发板厂商提供或您自己创建的、包含正确 DDR 引脚约束的 XDC 文件,并将其添加到 Vivado 工程中。否则,MIG 生成的逻辑将无法连接到正确的物理引脚。