微半导体标志SmartFusion2
DDR 控制器和串行高速控制器
初始化方法
用户指南

介绍

使用 SmartFusion2 设备创建设计时,如果您使用两个 DDR 控制器(FDDR 或 MDDR)之一或任何串行高速控制器 (SERDESIF) 块,则必须在运行时初始化这些块的配置寄存器他们可以使用。 对于前amp例如,对于 DDR 控制器,您必须设置 DDR 模式 (DDR3/DDR2/LPDDR)、PHY 宽度、突发模式和 ECC。
同样,对于用作 PCIe 端点的 SERDESIF 块,您必须将 PCIE BAR 设置为 AXI(或 AHB)窗口。
本文档描述了创建 Libero 设计的必要步骤,该设计在加电时自动初始化 DDR 控制器和 SERDESIF 块。 它还描述了如何从嵌入式设计流程中使用的 Libero SOC 生成固件代码。
首先提供操作理论的详细描述。
下一节将介绍如何使用 Libero SoC System Builder 创建这样的设计,这是一个功能强大的设计工具,如果您在设计中使用 DDR 或 SERDESIF 块,除其他功能外,它还可以为您创建“初始化”解决方案。
下一节将介绍如何在不使用 SmartFusion2 System Builder 的情况下将完整的“初始化”解决方案放在一起。 这有助于解释如果您不想使用系统生成器需要做什么,并且还描述了系统生成器工具实际为您生成的内容。 本节介绍:

  • 为 DDR 控制器和 SERDESIF 配置寄存器创建配置数据
  • 创建将配置数据传输到不同 ASIC 配置寄存器所需的 FPGA 逻辑

最后我们描述生成的 file与以下相关:

  • 创建固件“初始化”解决方案。
  • DDR“初始化”解决方案的设计仿真。

有关 DDR 控制器和 SERDESIF 配置寄存器的详细信息,请参阅 Microsemi SmartFusion2 高速串行和 DDR 接口用户指南。

工作原理

外设初始化解决方案使用以下主要组件:

  • CMSIS SystemInit() 函数,它在 Cortex-M3 上运行并协调初始化过程。
  • CoreConfigP 软 IP 内核,用于初始化外设的配置寄存器。
  • CoreResetP 软核 IP,它管理 MSS、DDR 控制器和 SERDESIF 块的复位序列。

外设初始化流程如下:

  1. 复位后,Cortex-M3 运行 CMSIS SystemInit() 函数。 该函数在应用程序的 main() 函数执行之前自动执行。
    CoreResetP 输出信号 MSS_HPMS_READY 在初始化过程开始时被置位,表明 MSS 和所有外设(MDDR 除外)已准备好进行通信。
  2. SystemInit() 函数通过 MSS FIC_2 APB3 总线将配置数据写入 DDR 控制器和 SERDESIF 配置寄存器。 该接口连接到在 FPGA 架构中实例化的软核 CoreConfigP。
  3. 所有寄存器配置完成后,SystemInit()函数写入CoreConfigP控制寄存器,表示寄存器配置阶段完成; CoreConfigP 输出信号 CONFIG1_DONE 和 CONIG2_DONE 然后被断言。
    根据设计中使用的外设,寄存器配置有两个阶段(CONFIG1 和 CONFIG2)。
  4. 如果使用 MDDR/FDDR 中的一个或两个,并且在设计中没有使用任何 SERDESIF 块,则只有一个寄存器配置阶段。 CoreConfigP 输出信号 CONFIG1_DONE 和 CONIG2_DONE 都在没有任何等待/延迟的情况下一个接一个地被断言。
    如果在设计中使用一个或多个非PCIe模式下的SERDESIF块,则只有一个阶段的寄存器配置。 CONFIG1_DONE 和 CONIG2_DONE 一个接一个断言,没有任何等待/延迟。
    如果在设计中使用了一个或多个PCIe模式下的SERDESIF块,则寄存器配置有两个阶段。 CONFIG1_DONE 在寄存器配置的第一阶段完成后置位。 SERDESIF 系统和通道寄存器在此阶段进行配置。 如果 SERDESIF 配置为非 PCIE 模式,CONFIG2_DONE 信号也会立即生效。
  5. 接下来是寄存器配置的第二阶段(如果 SERDESIF 配置为 PCIE 模式)。 以下是第二阶段发生的不同事件:
    – CoreResetP 取消断言对应于每个使用的 SERDESIF 块的 PHY_RESET_N 和 CORE_RESET_N 信号。 它还会在所有 SERDESIF 块退出复位后断言输出信号 SDIF_RELEASED。 此 SDIF_RELEASED 信号用于向 CoreConfigP 指示 SERDESIF 内核已退出复位并准备好进行第二阶段的寄存器配置。
    – 一旦 SDIF_RELEASED 信号被断言,SystemInit() 函数开始轮询以在适当的 SERDESIF 通道上断言 PMA_READY。 PMA_READY 置位后,第二组 SERDESIF 寄存器(PCIE 寄存器)由 SystemInit() 函数配置/写入。
  6. 所有PCIE寄存器配置完成后,SystemInit()函数写入CoreConfigP控制寄存器,表示第二阶段寄存器配置完成; 然后断言 CoreConfigP 输出信号 CONIG2_DONE。
  7. 除了上述信号断言/解除断言之外,CoreResetP 还通过执行以下功能来管理各种块的初始化:
    – 取消断言 FDDR 内核复位
    – 解除 SERDESIF 块 PHY 和 CORE 复位
    – 监视 FDDR PLL (FPLL) 锁定信号。 FPLL 必须已锁定以保证 FDDR AXI/AHBLite 数据接口和 FPGA 结构可以正确通信。
    – 监视 SERDESIF 块 PLL (SPLL) 锁定信号。 SPLL 必须锁定以保证 SERDESIF 模块 AXI/AHBLite 接口(PCIe 模式)或 XAUI 接口可以与 FPGA 结构正确通信。
    – 等待外部 DDR 存储器稳定并准备好被 DDR 控制器访问。
  8. 当所有外设都完成初始化后,CoreResetP 置位 INIT_DONE 信号; 然后断言 CoreConfigP 内部寄存器 INIT_DONE。
    如果使用 MDDR/FDDR 之一或两者,并且达到 DDR 初始化时间,则 CoreResetP 输出信号 DDR_READY 被置位。 可以监视此信号 DDR_READY 的断言,作为 DDR (MDDR/FDDR) 已准备好进行通信的指示。
    如果使用一个或多个 SERDESIF 块,并且寄存器配置的第二阶段成功完成,则 CoreResetP 输出信号 SDIF_READY 被置位。 可以监视此信号 SDIF_READY 的断言,作为所有 SERDESIF 块都已准备好进行通信的指示。
  9. 一直在等待 INIT_DONE 置位的 SystemInit() 函数完成,并执行应用程序的 main() 函数。 那时,所有使用的 DDR 控制器和 SERDESIF 块都已初始化,固件应用程序和 FPGA 架构逻辑可以与它们可靠地通信。

本文档中描述的方法依赖于 Cortex-M3 执行初始化过程,作为在应用程序的 main() 函数之前执行的系统初始化代码的一部分。
FDDR/MDDR、SEREDES(非PCIe模式)和SERDES(PCIe模式)的初始化步骤见图1-1、图1-2和图1-3的流程图。
图 1-4 显示了外设初始化时序图。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 时序图 1 Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 时序图 2

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 时序图 3Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 时序图 4图 1-3 • SERDESIF (PCIe) 初始化流程图
本文档中描述的初始化过程要求您在初始化过程中运行 Cortex-M3,即使您不打算在 Cortex-M3 上运行任何代码。 您必须创建一个什么都不做的基本固件应用程序(一个简单的循环,例如ample) 并将该可执行文件加载到嵌入式非易失性存储器 (eNVM) 中,以便在 Cortex-M3 启动时初始化 DDR 控制器和 SERDESIF 块。

使用 System Builder 创建使用 DDR 和 SERDESIF 模块的设计

SmartFusion2 System Builder 是一款功能强大的设计工具,可帮助您捕获系统级需求并生成实现这些需求的设计。 System Builder 的一个非常重要的功能是自动创建 Peripheral Initialization 子系统。 第 17 页的“使用 SmartDesign 创建一个使用 DDR 和 SERDESIF 块的设计”详细描述了如何在没有系统构建器的情况下创建这样一个解决方案。
如果您使用的是 System Builder,则必须执行以下任务来创建一个在加电时初始化 DDR 控制器和 SERDESIF 模块的设计:

  1. 在 Device Features 页面(图 2-1)中,指定在您的设计中使用了哪些 DDR 控制器以及使用了多少 SERDESIF 块。
  2. 在内存页面中,指定 DDR 类型 (DDR2/DDR3/LPDDR) 和外部 DDR 内存的配置数据。 有关详细信息,请参阅内存页面部分。
  3. 在外围设备页面中,将配置为 AHBLite/AXI 的架构主控添加到架构 DDR 子系统和/或 MSS DDR FIC 子系统(可选)。
  4. 在 Clock Settings 页面中,指定 DDR 子系统的时钟频率。
  5. 完成您的设计规范并单击完成。 这会生成系统构建器创建的设计,包括“初始化”解决方案所需的逻辑。
  6. 如果您正在使用 SERDESIF 模块,则必须在您的设计中实例化 SERDESIF 模块并将它们的初始化端口连接到 System Builder 生成的内核的端口。

系统构建器设备功能页面
在 Device Features 页面中,指定使用了哪些 DDR 控制器(MDDR 和/或 FDDR)以及在您的设计中使用了多少 SERDESIF 块(图 2-1)。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 器件特性页面图 2-1 • System Builder 设备功能页面

系统生成器内存页
要使用 MSS DDR (MDDR) 或结构 DDR (FDDR),请从下拉列表中选择内存类型(图 2-2)。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 外部存储器图 2-2 • MSS 外部存储器

你必须:

  1. 选择 DDR 类型(DDR2、DDR3 或 LPDDR)。
  2. 定义 DDR 内存稳定时间。 请查阅您的外部 DDR 内存规格以设置正确的内存设置时间。 如果内存稳定时间设置不正确,DDR 内存可能无法正确初始化。
  3. 导入 DDR 寄存器配置数据或设置 DDR 内存参数。 有关详细信息,请参阅 Microsemi SmartFusion2 高速串行和 DDR 接口用户指南.

此数据用于生成 DDR 寄存器 BFM 和固件配置 file如第 26 页“创建和编译固件应用程序”和“BFM Files 用于模拟设计”(第 27 页)。有关 DDR 控制器配置寄存器的详细信息,请参阅 Microsemi SmartFusion2 高速串行和 DDR 接口用户指南。
前任amp配置文件 file 语法如图 2-3 所示。 在此使用的寄存器名称 file 与那些在描述相同 Microsemi SmartFusion2 高速串行和 DDR 接口用户指南

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - File 语法例ample图 2-3 • 配置 File 语法例ample
System Builder 外设页面
在 Peripherals 页面中,为每个 DDR 控制器创建一个单独的子系统(FDDR 的结构 DDR 子系统和 MDDR 的 MSS DDR FIC 子系统)。 您可以将 Fabric AMBA Master(配置为 AXI/AHBLite)内核添加到这些子系统中的每一个,以启用 Fabric Master 对 DDR 控制器的访问。 生成后,System Builder 会自动实例化总线内核(取决于添加的 AMBA Master 的类型)并将总线内核的主 BIF 以及相应子系统 (FDDR/MDDR) 的时钟和复位引脚暴露在适当的引脚组下,以顶部。 您所要做的就是将 BIF 连接到您将在设计中实例化的适当 Fabric Master 内核。 在 MDDR 的情况下,可选择将 Fabric AMBA 主内核添加到 MSS DDR FIC 子系统; Cortex-M3 是该子系统的默认主控。 图 2-4 显示了系统构建器外设页面。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - Builder 外设页面图 2-4 • System Builder 外设页面

系统生成器时钟设置页面
在时钟设置页面中,对于每个 DDR 控制器,您必须指定与每个 DDR(MDDR 和/或 FDDR)子系统相关的时钟频率。
对于 MDDR,您必须指定:

  • MDDR_CLK – 该时钟决定了 DDR 控制器的工作频率,并且应该与您希望外部 DDR 存储器运行的时钟频率相匹配。 该时钟定义为 M3_CLK(Cortex-M3 和 MSS 主时钟,图 2-5)的倍数。 MDDR_CLK 必须小于 333 MHz。
  • DDR_FIC_CLK – 如果您还选择从 FPGA 架构访问 MDDR,则需要指定 DDR_FIC_CLK。 此时钟频率定义为 MDDR_CLK 的比率,并且应与访问 MDDR 的 FPGA 结构子系统运行的频率相匹配。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - MDDR 时钟图 2-5 • Cortex-M3 和 MSS 主时钟; MDDR 时钟

对于 FDDR,您必须指定:

  • FDDR_CLK – 确定 DDR 控制器的工作频率并且应该与您希望外部 DDR 存储器运行的时钟频率相匹配。 请注意,此时钟定义为 M3_CLK(MSS 和 Cortex-M3 时钟,图 2-5)的倍数。 FDDR_CLK 必须在 20 MHz 和 333 MHz 之间。
  • FDDR_SUBSYSTEM_CLK – 此时钟频率定义为 FDDR_CLK 的比率,并且应与访问 FDDR 的 FPGA 架构子系统运行的频率相匹配。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 结构 DDR 时钟图 2-6 • 架构 DDR 时钟
SERDESIF 配置
SERDESIF 块未在 System Builder 生成的设计中实例化。 然而,对于所有 SERDESIF 块,初始化信号在 System Builder 内核的接口处可用,并且可以连接到下一层的 SERDESIF 内核,如图 2-7 所示。Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 外设初始化连接图 2-7 • SERDESIF 外设初始化连接
与 DDR 配置寄存器类似,每个 SERDES 块也有必须在运行时加载的配置寄存器。 您可以导入这些寄存器值或使用高速串行接口配置器(图 2-8)输入您的 PCIe 或 EPCS 参数,寄存器值会自动为您计算。 有关详细信息,请参阅 SERDES 配置器用户指南.Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 串行接口配置器图 2-8 • 高速串行接口配置器
将用户逻辑与 System Builder 块和 SERDES 块集成后,您可以生成顶层 SmartDesign。 这会生成所有 HDL 和 BFM file这些是实现和模拟您的设计所必需的。 然后您可以继续设计流程的其余部分。

使用 SmartDesign 创建使用 DDR 和 SERDESIF 模块的设计

本节介绍如何在不使用 SmartFusion2 System Builder 的情况下将完整的“初始化”解决方案放在一起。 目的是帮助您了解如果您不想使用系统生成器必须做什么。 本节还介绍了系统生成器工具实际为您生成的内容。 本节介绍如何:

  • 输入 DDR 控制器和 SERDESIF 配置寄存器的配置数据。
  • 实例化并连接将配置数据传输到 DDR 控制器和 SERDESIF 配置寄存器所需的结构内核。

DDR 控制器配置
MSS DDR (MDDR) 和结构 DDR (FDDR) 控制器必须动态配置(在运行时)以匹配外部 DDR 内存配置要求(DDR 模式、PHY 宽度、突发模式、ECC 等)。 在 MDDR/FDDR 配置器中输入的数据通过 CMSIS SystemInit() 函数写入 DDR 控制器配置寄存器。 配置器具有三个不同的选项卡,用于输入不同类型的配置数据:

  • 一般数据(DDR 模式、数据宽度、时钟频率、ECC、结构接口、驱动强度)
  • 内存初始化数据(突发长度、突发顺序、时序模式、延迟等)
  • 内存时序数据

请参阅外部 DDR 存储器的规格并配置 DDR 控制器以满足外部 DDR 存储器的要求。
有关 DDR 配置的详细信息,请参阅 SmartFusion2 MSS DDR 配置用户指南。
SERDESIF 配置
双击 SmartDesign 画布中的 SERDES 块以打开配置器以配置 SERDES(图 3-1)。 您可以导入这些寄存器值或使用 SERDES 配置器输入您的 PCIe 或 EPCS 参数,寄存器值会自动为您计算。 有关详细信息,请参阅 SERDES 配置器用户指南.Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 高速串行接口配置器图 3-1 • 高速串行接口配置器
创建 FPGA 设计初始化子系统
要初始化 DDR 和 SERDESIF 模块,您必须在 FPGA 架构中创建初始化子系统。 FPGA 结构初始化子系统将数据从 Cortex-M3 移动到 DDR 和 SERDESIF 配置寄存器,管理这些块运行所需的复位序列,并在这些块准备好与您的设计的其余部分通信时发出信号。 要创建初始化子系统,您必须:

  • 在 MSS 中配置 FIC_2
  • 实例化和配置 CoreConfigP 和 CoreResetP 内核
  • 实例化片上 25/50MHz RC 振荡器
  • 实例化系统重置 (SYSRESET) 宏
  • 将这些组件连接到每个外设的配置接口、时钟、复位和 PLL 锁定端口

MSS FIC_2 APB 配置
配置 MSS FIC_2:

  1. 从 MSS 配置器打开 FIC_2 配置器对话框(图 3-2)。
  2. 选择使用 Cortex-M3 初始化外设。
  3. 根据您的系统,选中以下一个或两个复选框:
    – 内存存储内存
    – 结构 DDR 和/或 SERDES 块
  4. 单击“确定”并继续生成 MSS(您可以推迟此操作,直到根据您的设计要求完全配置 MSS)。 FIC_2 端口(FIC_2_APB_MASTER、FIC_2_APB_M_PCLK 和 FIC_2_APB_M_RESET_N)现在暴露在 MSS 接口上,可以连接到 CoreConfigP 和 CoreResetP 内核。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - MSS FIC 2 配置器图 3-2 • MSS FIC_2 配置器

核心配置P
配置 CoreConfigP:

  1. 将 CoreConfigP 实例化到您的 SmartDesign 中(通常是实例化 MSS 的那个)。
    这个内核可以在 Libero 目录中找到(在外围设备下)。
  2. 双击内核打开配置器。
  3. 配置内核指定需要初始化哪些外设(图3-3)

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 对话框图 3-3 • CoreConfigP 对话框

核心复位P
配置 CoreResetP:

  1. 将 CoreResetP 实例化到您的 SmartDesign 中(通常是实例化 MSS 的那个)。
    该内核可在外围设备下的 Libero 目录中找到。
  2. 双击 SmartDesign Canvas 中的内核以打开配置器(图 3-4)。
  3. 配置核心:
    – 指定外部复位行为(EXT_RESET_OUT 断言)。 选择以下四个选项之一:
    o EXT_RESET_OUT 从未断言
    o 如果上电复位 (POWER_ON_RESET_N) 有效,则 EXT_RESET_OUT 有效
    o 如果 FAB_RESET_N 被断言,则 EXT_RESET_OUT 被断言
    o 如果上电复位 (POWER_ON_RESET_N) 或 FAB_RESET_N 被断言,则 EXT_RESET_OUT 被断言
    – 指定设备卷tage. 所选值应与音量匹配tag您在 Libero 项目设置对话框中选择了 e。
    – 选中相应的复选框以指示您在设计中使用的外设。
    – 指定外部 DDR 存储器设置时间。 这是应用程序中使用的所有 DDR 存储器(MDDR 和 FDDR)的最大值。 请参阅外部 DDR 内存供应商数据表来配置此参数。 对于以 200MHz 运行的 DDR2 和 DDR3 内存,200us 是一个很好的默认值。 这是保证硅上工作仿真和工作系统的一个非常重要的参数。 稳定时间的错误值可能会导致仿真错误。 请参阅 DDR 内存供应商数据表来配置此参数。
    – 对于您设计中的每个 SERDES 块,选中相应的框以指示是否:
    o 使用 PCIe
    o 需要支持 PCIe 热复位
    o 需要支持 PCIe L2/P2

笔记: 如果您使用的是 090 芯片 (M2S090) 并且您的设计使用 SERDESIF,则无需选中以下任何复选框:“用于 PCIe”、“包括 PCIe 热复位支持”和“包括 PCIe L2/P2 支持”。 如果您使用任何非 090 设备并使用一个或多个 SERDESIF 块,则必须选中相应 SERDESIF 部分下的所有四个复选框。
笔记: 有关此配置器中可用选项的详细信息,请参阅 CoreResetP 手册。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - CoreResetPConfigurator图 3-4 • CoreResetPConfigurator

25/50MHz 振荡器例化
CoreConfigP 和 CoreResetP 由片上 25/50MHz RC 振荡器提供时钟。 您必须实例化一个 25/50MHz 振荡器并将其连接到这些内核。

  1. 将芯片振荡器内核实例化到您的 SmartDesign 中(通常是实例化 MSS 的那个)。 这个核心可以在 Clock & Management 下的 Libero Catalog 中找到。
  2. 配置该内核,使 RC 振荡器驱动 FPGA 架构,如图 3-5 所示。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 振荡器配置器图 3-5 • 芯片振荡器配置器

系统复位 (SYSRESET) 实例化
SYSRESET 宏为您的设计提供设备级复位功能。 只要芯片上电或外部引脚 DEVRST_N 有效/无效,POWER_ON_RESET_N 输出信号就会有效/无效(图 3-6)。
将 SYSRESET 宏实例化到您的 SmartDesign(通常是实例化 MSS 的地方)。 该宏可以在宏库下的 Libero 目录中找到。无需配置该宏。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - SYSRESET 宏图 3-6 • SYSRESET 宏

整体连通性
在设计中实例化和配置 MSS、FDDR、SERDESIF、OSC、SYSRESET、CoreConfigP 和 CoreResetP 内核后,您需要连接它们以形成外设初始化子系统。 为了简化本文档中的连接描述,它分为与 CoreConfigP 相关的 APB3 兼容配置数据路径连接和 CoreResetP 相关连接。
配置数据路径连接
图 3-7 显示了如何将 CoreConfigP 连接到 MSS FIC_2 信号和外设的 APB3 兼容配置接口。
表 3-1 • 配置数据路径端口/BIF 连接


端口/总线接口
(BIF)/ 组件

端口/总线接口 (BIF)/组件
APB S 预设 N/ CoreConfigP APB S 预设 N/ SDIF<0/1/2/3> APB S 预设 N/
频移式倍频
MDDR APB S PRESE TN/MSS
APB S PCLK/ CoreConfigP APB S PCLK/SDIF APB S PCLK/FDDR MDDR APB S POLK/MSS
MDDR APBmslave/ 核心配置 MDDR APB 从站 (BIF)/MSS
SDIF<0/1/2/ 3> APBmslave/配置 APB 从机 (BIF)/ SDIF<0/1/2/3>
FDDR APBms从站 APB 从机 (BIF)/ FDDR
FIC 2 APBmmaster/ CoreConfigP FIC 2 APB 主/MSS

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 子系​​统连接图 3-7 • FIC_2 APB3 子系统连接

时钟和重置连接
图 3-8 显示了如何将 CoreResetP 连接到外部复位源和外设的内核复位信号。 它还展示了如何将 CoreResetP 连接到外设的时钟同步状态信号(PLL 锁定信号)。 此外,它还显示了 CoreConfigP 和 CoreResetP 是如何连接的。

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 - 子系​​统连接 2图 3-8 • 核心 SF2Reset 子系统连接

创建和编译固件应用程序

当您从 LiberoSoC 导出固件时(Design Flow Window > Export Firmware > Export Firmware),Libero 生成以下内容 file在/firmware/drivers_config/ sys_config 文件夹:

  • 系统配置文件 – 包含保存外设寄存器值的数据结构。
  • 系统配置.h – 包含#define 语句,指定设计中使用哪些外设并需要对其进行初始化。
  • sys_config_mddr_define.h – 包含在寄存器配置对话框中输入的 MDDR 控制器配置数据。
  • sys_config_fddr_define.h – 包含在寄存器配置对话框中输入的 FDDR 控制器配置数据。
  • sys_config_mss_clocks.h - 这 file 包含 MSS CCC 配置器中定义的 MSS 时钟频率。 CMSIS 代码使用这些频率为许多必须访问其外设时钟 (PCLK) 频率的 MSS 驱动程序提供正确的时钟信息(例如,MSS UART 波特率除数是波特率和 PCLK 频率的函数).
  • sys_config_SERDESIF_ 。C – 包含 SERDESIF_ SERDESIF_期间提供的注册配置数据设计创建中的块配置。
  • sys_config_SERDESIF_ 。H – 包含指定寄存器配置对的数量和需要为 PMA_READY 轮询的通道号的#define 语句(仅在 PCIe 模式下)。

这些 fileCMSIS 代码需要 s 才能正确编译并包含有关您当前设计的信息,包括 MSS 的外设配置数据和时钟配置信息。
不要编辑这些 file手动; 每次生成包含相应外设的 SmartDesign 组件时,它们都会创建到相应的组件/外设目录中。 如果对任何外设的配置数据进行了更改,则需要重新导出固件项目,以便更新后的固件 files(见上面的列表)被导出到/firmware/drivers_config/sys_config 文件夹。
当您导出固件时,Libero SoC 会创建固件项目:您的设计配置所在的库 files和驱动程序被编译。
如果您检查创建项目导出固件时选中复选框,将创建一个软件 SoftConsole/IAR/Keil 项目来保存应用程序项目,您可以在其中编辑 main.c 和用户 C/H file秒。 打开 SoftConSole/IAR/Keil 项目以正确编译 CMSIS 代码并正确配置您的固件应用程序以匹配您的硬件设计。

广播调频 Files 用于模拟设计

当您生成包含与您的设计相关的外设的 SmartDesign 组件时,仿真 file对应各个外设的s在生成/仿真目录:

  • 测试.bfm – 顶级 BFM file 这是在任何运行 SmartFusion2 MSS Cortex-M3 处理器的模拟期间首先执行的。 它按顺序执行 peripheral_init.bfm 和 user.bfm。
  • MDDR_init.bfm – 如果您的设计使用 MDDR,Libero 会生成此 file; 它包含 BFM 写入命令,模拟将您输入的 MSS DDR 配置寄存器数据(使用“编辑寄存器”对话框或在 MSS_MDDR GUI 中)写入 MSS DDR 控制器寄存器。
  • FDDR_init.bfm – 如果您的设计使用 FDDR,Libero 会生成此 file; 它包含 BFM 写入命令,模拟将您输入的结构 DDR 配置寄存器数据(使用编辑寄存器对话框或在 FDDR GUI 中)写入结构 DDR 控制器寄存器。
  • SERDESIF_ _init.bfm – 如果您的设计使用一个或多个 SERDESIF 块,Libero 会生成此 file 对于每个 SERDESIF_ 使用的块; 它包含模拟写入您输入的 SERDESIF 配置寄存器数据的 BFM 写命令(使用 Edit Registers 对话框或在 SERDESIF_ GUI) 到 SERDESIF_ 寄存器。 如果 SERDESIF 块配置为 PCIe,则此 file 还有一些#define 语句可以完美地控制 2 个寄存器配置阶段的执行。
  • 用户.bfm – 包含用户命令。 这些命令在 peripheral_init.bfm 完成后执行。 编辑这个 file 输入您的 BFM 命令。
  • SERDESIF_ _user.bfm – 包含用户命令。 编辑这个 file 输入您的 BFM 命令。 如果您已配置 SERDESIF_,请使用此选项BFM PCIe 仿真模式下的块和作为 AXI/AHBLite 主机。 如果您配置了 SERDESIF_ 块在 RTL 仿真模式下,你将不需要这个 file.

每次调用simulation时,下面两个simulation files被重新创建到/具有更新内容的模拟目录:

  • 子系统.bfm – 包含设计中使用的每个外设的#define 语句,指定要执行的与每个外设相对应的 peripheral_init.bfm 的特定部分。
  • 操作初始化.bfm – 包含在您进入 main() 过程之前模拟在 Cortex-M3 上运行的 CMSIS::SystemInit() 函数的 BFM 过程。 它将设计中使用的任何外设的配置数据复制到正确的外设配置寄存器,然后等待所有外设准备就绪,然后断言您可以使用这些外设。 它执行 MDDR_init.bfm 和 FDDR_init.bfm。

使用这些生成的 files,您设计中的 DDR 控制器会自动配置,模拟 SmartFusion2 设备上会发生的情况。 您可以编辑 user.bfm file 添加模拟您的设计所需的任何命令(Cortex-M3 为主)。 这些命令在外设初始化后执行。 不要编辑 test.bfm、subsystem.bfm、peripheral_init.bfm、MDDR_init.bfm、FDDR_init.bfm files 和 SERDESIF_ _init.bfm files.

产品支持

美高森美 SoC 产品部为其产品提供各种支持服务,包括客户服务、客户技术支持中心、 web网站、电子邮件和全球销售办事处。
本附录包含有关联系 Microsemi SoC 产品组和使用这些支持服务的信息。
客户服务
联系客户服务以获得非技术产品支持,例如产品定价、产品升级、更新信息、订单状态和授权。
从北美拨打 800.262.1060
来自世界其他地方,请致电 650.318.4460
来自世界任何地方的传真, 408.643.6913
客户技术支持中心
美高森美 SoC 产品部在其客户技术支持中心配备了技术精湛的工程师,他们可以帮助回答有关美高森美 SoC 产品的硬件、软件和设计问题。 客户技术支持中心花费大量时间创建应用说明、常见设计周期问题的答案、已知问题的文档以及各种常见问题解答。 因此,在联系我们之前,请访问我们的在线资源。 我们很可能已经回答了您的问题。
技术支援
访问客户支持 web网站(www.microsemi.com/soc/support/search/default.aspx) 以获得更多信息和支持。 可搜索的许多答案 web 资源包括图表、插图和指向其他资源的链接 web地点。
Web地点
您可以在 SoC 主页上浏览各种技术和非技术信息,网址为 www.microsemi.com/soc.
联系客户技术支持中心
技术支持中心拥有高技能的工程师。 可以通过电子邮件或通过 Microsemi SoC 产品组联系技术支持中心 web地点。
电子邮件
您可以将您的技术问题发送到我们的电子邮件地址,并通过电子邮件、传真或电话收到回复。 此外,如果您有设计问题,您可以通过电子邮件发送您的设计 file接受帮助。
我们全天不断地监控电子邮件帐户。 向我们发送您的请求时,请务必包含您的全名、公司名称和您的联系信息,以便高效地处理您的请求。
技术支持电子邮件地址是 soc_tech@microsemi.com.
我的案例
美高森美 SoC 产品组客户可以通过以下方式在线提交和跟踪技术案例: 我的案例.
美国境外
在美国时区以外需要帮助的客户可以通过电子邮件联系技术支持 (soc_tech@microsemi.com) 或联系当地的销售办事处。 销售办事处列表可在以下位置找到 www.microsemi.com/soc/company/contact/default.aspx.
ITAR 技术支持
有关受国际武器贸易条例 (ITAR) 监管的 RH 和 RT FPGA 的技术支持,请通过以下方式联系我们 soc_tech_itar@microsemi.com. 或者,在我的案例中,在 ITAR 下拉列表中选择是。 如需 ITAR 监管的 Microsemi FPGA 的完整列表,请访问 ITAR web 页。
美高森美公司(纳斯达克股票代码:MSCC)提供全面的半导体解决方案组合,适用于: 航空航天、国防和安全; 企业和通信; 以及工业和替代能源市场。 产品包括高性能、高可靠性模拟和射频设备、混合信号和射频集成电路、可定制的 SoC、FPGA 和完整的子系统。 Microsemi 总部位于加利福尼亚州的 Aliso Viejo。了解更多信息,请访问 www.microsemi.com.
© 2014 美高森美公司。 版权所有。 Microsemi 和 Microsemi 徽标是 Microsemi Corporation 的商标。 所有其他商标和服务标志均为其各自所有者的财产。

5-02-00384-1/08.14微半导体标志美高森美公司总部
One Enterprise, Aliso Viejo CA 92656 美国
美国境内:+1 949-380-6100
销售额:+1 949-380-6136
传真:+1 949-215-4996

文件/资源

Microsemi SmartFusion2 DDR 控制器和串行高速控制器 [pdf] 用户指南
SmartFusion2 DDR 控制器和串行高速控制器,SmartFusion2 DDR,控制器和串行高速控制器,高速控制器

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *