Microsemi AC490 RTG4 FPGA:构建 Mi-V 处理器子系统
修订历史
修订历史描述了文档中实施的更改。更改按修订列出,从最新发布开始。
修订版 3.0
以下是此次修订中所做更改的摘要。
- 更新了 Libero SoC v2021.2 的文档。
- 更新了第 1 页图 3 到第 3 页图 5。
- 替换了第 4 页的图 5、第 5 页的图 7 和第 18 页的图 17。
- 更新了第 2 页的表 6 和第 3 页的表 7。
- 添加了附录 1:使用 FlashPro Express 对器件进行编程,第 14 页。
- 添加了附录 3:运行 TCL 脚本,第 20 页。
- 删除了对 Libero 版本号的引用。
修订版 2.0
以下是此次修订中所做更改的摘要。
- 在设置硬件(第 9 页)中添加了有关 COM 端口选择的信息。
- 在第 11 页的运行演示中更新了如何选择合适的 COM 端口。
修订版 1.0
该文件的首次发布。
构建 Mi-V 处理器子系统
Microchip 提供 Mi-V 处理器 IP、32 位 RISC-V 处理器和软件工具链,用于开发基于 RISC-V 处理器的设计。 RISC-V 是一种由 RISC-V 基金会管理的标准开放式指令集架构 (ISA),具有众多优势,包括使开源社区能够以比封闭式 ISA 更快的速度测试和改进内核。
RTG4® FPGA 支持 Mi-V 软处理器运行用户应用程序。 本应用笔记介绍了如何构建 Mi-V 处理器子系统以从指定的结构 RAM 或 DDR 存储器执行用户应用程序。
设计要求
下表列出了运行演示的硬件和软件要求。
表 1 • 设计要求
软件
- Libero® 片上系统 (SoC)
- FlashPro 快递
- 软件控制台
笔记: 参考readme.txt file 在设计中提供 file用于此参考设计的软件版本。
笔记: 本指南中显示的 Libero SmartDesign 和配置屏幕截图仅用于说明目的。
打开 Libero 设计以查看最新更新。
先决条件
开始之前:
- 下载并安装 Libero SoC(如 web此设计的站点)从以下位置在主机 PC 上: https://www.microsemi.com/product-directory/design-resources/1750-libero-soc
- 用于演示设计 filel 下载链接: http://soc.microsemi.com/download/rsc/?f=rtg4_ac490_df
设计说明
RTG4 μPROM 的大小为 57 KB。 不超过 μPROM 大小的用户应用程序可以存储在 μPROM 中并从内部大型 SRAM 存储器 (LSRAM) 中执行。 超过 μPROM 大小的用户应用程序必须存储在外部非易失性存储器中。 在这种情况下,需要从 μPROM 执行的引导加载程序使用来自非易失性存储器的目标应用程序来初始化内部或外部 SRAM 存储器。
该参考设计展示了引导加载程序将目标应用程序(大小为 7 KB)从 SPI 闪存复制到 DDR 存储器并从 DDR 存储器执行的功能。 引导加载程序从内部存储器执行。 代码段位于μPROM中,数据段位于内部大容量SRAM(LSRAM)中。
笔记: 有关如何构建 Mi-V 引导加载程序 Libero 项目以及如何构建 SoftConsole 项目的更多信息,请参阅 TU0775:PolarFire FPGA:构建 Mi-V 处理器子系统教程
图 1 显示了设计的顶层框图。
图 1 • 顶层框图
如图 1 所示,以下几点描述了设计的数据流:
- Mi-V 处理器从 μPROM 和指定的 LSRAM 执行引导加载程序。 引导加载程序通过 CoreUARTapb 块与 GUI 交互并等待命令。
- 当从 GUI 接收到 SPI 闪存编程命令时,引导加载程序使用从 GUI 接收到的目标应用程序对 SPI 闪存进行编程。
- 当从 GUI 接收到引导命令时,引导加载程序将应用程序代码从 SPI 闪存复制到 DDR,然后从 DDR 执行它。
时钟结构
设计中有两个时钟域(40 MHz 和 20 MHz)。 板载 50 MHz 晶体振荡器连接到生成 40 MHz 和 20 MHz 时钟的 PF_CCC 块。 40 MHz 系统时钟驱动整个 Mi-V 处理器子系统,μPROM 除外。 20 MHz 时钟驱动 RTG4 μPROM 和 RTG4 μPROM APB 接口。 RTG4 μPROM 支持高达 30 MHz 的时钟频率。 DDR_FIC 被配置为 AHB 总线接口,其运行频率为 40 MHz。 DDR 内存以 320 MHz 的频率运行。
图 2 显示了时钟结构。
图 2 • 时钟结构
重置结构
POWER_ON_RESET_N 和 LOCK 信号进行与运算,输出信号 (INIT_RESET_N) 用于复位 RTG4FDDRC_INIT 块。 释放 FDDR 复位后,FDDR 控制器被初始化,然后 INIT_DONE 信号被置位。 INIT_DONE 信号用于重置设计中的 Mi-V 处理器、外设和其他模块。
图 3 • 复位结构
硬件实现
图 4 显示了 Mi-V 参考设计的 Libero 设计。
图 4 • SmartDesign 模块
笔记: 本应用笔记中显示的 Libero SmartDesign 屏幕截图仅用于说明目的。 打开 Libero 项目以查看最新的更新和 IP 版本。
知识产权块
图 2 列出了 Mi-V 处理器子系统参考设计中使用的 IP 块及其功能。
表 2 • IP 块1
所有 IP 用户指南和手册均可从 Libero SoC -> Catalog 获得。
RTG4 μPROM 最多可存储 10,400 个 36 位字(374,400 位数据)。 在器件编程后,它仅支持正常器件操作期间的读取操作。 MIV_RV32_C0 处理器内核包括指令获取单元、执行流水线和数据存储系统。 MIV_RV32_C0 处理器内存系统包括指令缓存和数据缓存。 MIV_RV32_C0 内核包括两个外部 AHB 接口——AHB 内存 (MEM) 总线主控接口和 AHB 内存映射 I/O (MMIO) 总线主控接口。 高速缓存控制器使用 AHB MEM 接口重新填充指令和数据高速缓存。 AHB MMIO 接口用于对 I/O 外设进行非缓存访问。
AHB MMIO接口和MEM接口的内存映射分别是0x60000000到0X6FFFFFFF和0x80000000到0x8FFFFFFF。 处理器的复位向量地址是可配置的。 MIV_RV32_C0 的复位是低电平有效信号,必须通过复位同步器与系统时钟同步取消断言。
MIV_RV32_C0 处理器使用 AHB MEM 接口访问应用程序执行内存。 CoreAHBLite_C0_0 总线实例配置为提供 16 个从插槽,每个插槽大小为 1 MB。 RTG μPROM 存储器和 RTG4FDDRC 块连接到该总线。 μPROM 用于存储引导加载程序应用程序。
MIV_RV32_C0 处理器将地址 0x60000000 和 0x6FFFFFFF 之间的数据事务定向到 MMIO 接口。 MMIO 接口连接到 CoreAHBLite_C1_0 总线,以与连接到其从插槽的外设进行通信。 CoreAHBLite_C1_0 总线实例配置为提供 16 个从插槽,每个插槽大小为 256 MB。 UART、CoreSPI 和 CoreGPIO 外设通过 CoreAHBTOAPB1 桥和 CoreAPB0 总线连接到 CoreAHBLite_C3_3 总线。
内存映射
表 3 列出了存储器和外设的存储器映射。
表 3 • 内存映射
软件实现
参考设计 file包括包含以下软件项目的 SoftConsole 工作区:
- 引导加载程序
- 目标应用
引导加载程序
引导加载程序应用程序在器件编程期间在 μPROM 上编程。 引导加载程序实现以下功能:
- 使用目标应用程序对 SPI 闪存进行编程。
- 将目标应用程序从 SPI 闪存复制到 DDR3 内存。
- 将程序执行切换到 DDR3 内存中可用的目标应用程序。
引导加载程序应用程序必须从以 LSRAM 作为堆栈的 μPROM 执行。 因此,链接描述文件中的 ROM 和 RAM 地址分别设置为 μPROM 和指定 LSRAM 的起始地址。 代码部分从 ROM 执行,数据部分从 RAM 执行,如图 5 所示。
图 5 • 引导加载程序链接描述文件
链接器脚本 (microsemi-riscv-ram_rom.ld) 可在
设计的SoftConsole_Project\mivrv32im-bootloader文件夹 files.
目标应用
目标应用程序使板载 LED 1、2、3 和 4 闪烁并打印 UART 消息。 目标应用程序必须从 DDR3 内存执行。 因此,链接描述文件中的代码和堆栈部分被设置为 DDR3 存储器的起始地址,如图 6 所示。
图 6 • 目标应用程序链接描述文件
链接描述文件 (microsemi-riscv-ram.ld) 位于设计的 SoftConsole_Project\miv-rv32imddr-application 文件夹中 files.
设置硬件
以下步骤描述了如何设置硬件:
- 使用 SW6 开关确保电路板已断电。
- 连接RTG4开发套件上的跳线,如下表所示:
表 4 • 跳线跳线 销自 固定到 评论 J11、J17、J19、J23、J26、J21、J32 和 J27 1 2 默认 J16 2 3 默认 J33 1 2 默认 3 4 - 使用 USB 电缆将主机 PC 连接到 J47 连接器。
- 确保自动检测到 USB 到 UART 桥接驱动程序。 这可以在主机 PC 的设备管理器中进行验证。
- 如图7所示,COM13的端口属性显示它连接的是USB Serial Converter C,因此本例选择COM13amp乐。 COM 端口号是系统特定的。
图 7 • 设备管理器
笔记: 如果未安装 USB 转 UART 桥接驱动程序,请从以下位置下载并安装驱动程序 www.microsemi.com//documents/CDM_2.08.24_WHQL_Certified.zip. - 将电源连接到 J9 连接器并打开电源开关 SW6。
图 8 • RTG4 开发套件
运行演示
本章介绍了使用参考设计对 RTG4 设备进行编程、使用目标应用程序对 SPI 闪存进行编程以及使用 Mi-V 引导加载程序 GUI 从 DDR 存储器引导目标应用程序的步骤。
运行演示涉及以下步骤:
- 对 RTG4 设备进行编程,第 11 页
- 运行 Mi-V 引导加载程序,第 11 页
对 RTG4 设备进行编程
可以使用 FlashPro Express 或 Libero SOC 对 RTG4 设备进行编程。
- 使用作业对 RTG4 开发套件进行编程 file 作为设计的一部分提供 file如果要使用 FlashPro Express 软件,请参阅附录 1:使用 FlashPro Express 对设备进行编程,第 14 页。
- 要使用 Libero SoC 对设备进行编程,请参阅附录 2:使用 Libero SoC 对设备进行编程,第 17 页。
运行 Mi-V 引导加载程序
成功完成编程后,请执行以下步骤:
- 运行 setup.exe file 可在以下设计 file位置。
<$下载目录>\rtg4_ac490_df\GUI_Installer\Mi-V Bootloader_Installer_V1.4 - 按照安装向导安装引导加载程序 GUI 应用程序。
图 9 显示了 RTG4 Mi-V 引导加载程序 GUI。
图 9 • Mi-V 引导加载程序 GUI - 选择连接到 USB 串行转换器 C 的 COM 端口,如图 7 所示。
- 单击连接按钮。 连接成功后,红色指示灯变为绿色,如图 10 所示。
图 10 • 连接 COM 端口 - 单击“导入”按钮并选择目标应用程序 file (。垃圾桶)。 导入后的路径 file 显示在 GUI 上,如图 11 所示。
<$下载目录>\rtg4_ac490_df\Source_files
图 11 • 导入目标应用程序 File - 如图 11 所示,单击 Program SPI Flash 选项以在 SPI Flash 上编程目标应用程序。 如图 12 所示,在对 SPI 闪存进行编程后会显示一个弹出窗口。单击“确定”。
图 12 • SPI 闪存编程 - 选择 Start Boot 选项将应用程序从 SPI Flash 复制到 DDR3 内存并开始从 DDR3 内存执行应用程序。 从 DDR3 内存成功启动目标应用程序后,应用程序打印 UART 消息并使板载用户 LED1、2、3 和 4 闪烁,如图 13 所示。
图 13 • 从 DDR 执行应用程序 - 应用程序从 DDR3 内存运行,演示到此结束。 关闭 Mi-V 引导加载程序 GUI。
使用 FlashPro Express 对器件进行编程
本节介绍如何使用编程作业对 RTG4 设备进行编程 file 使用 FlashPro Express。
要对器件进行编程,请执行以下步骤:
- 确保板上的跳线设置与UG3的表0617中列出的相同:
RTG4 开发套件用户指南。 - 或者,当使用外部 FlashPro32、FlashPro2 或 FlashPro3 编程器时,跳线 J4 可以设置为连接引脚 5-6,而不是使用嵌入式 FlashPro5 的默认跳线设置。
笔记: 进行跳线连接时,电源开关 SW6 必须关闭。 - 将电源线连接到电路板上的 J9 连接器。
- 打开电源开关 SW6。
- 如果使用嵌入式 FlashPro5,将 USB 电缆连接到连接器 J47 和主机 PC。
或者,如果使用外部编程器,则将带状电缆连接到 JTAG 接头 J22 并将编程器连接到主机 PC。 - 在主机 PC 上,启动 FlashPro Express 软件。
- 单击新建或从项目菜单中选择 New Job Project from FlashPro Express Job 创建一个新的作业项目,如下图所示。
图 14 • FlashPro Express 作业项目 - 在来自 FlashPro Express 作业的新建作业项目对话框中输入以下内容:
- 编程工作 file:单击浏览,然后导航到 .job 所在的位置 file 位于并选择 file. 默认位置是: \rtg4_ac490_df\Programming_Job
- FlashPro Express 作业项目位置:单击浏览并导航到所需的 FlashPro Express 项目位置。
图 15 • 来自 FlashPro Express 作业的新作业项目
- 单击确定。 所需的编程 file 被选中并准备在设备中进行编程。
- FlashPro Express 窗口如下图所示。 确认程序员编号出现在程序员字段中。 如果没有,请确认电路板连接并单击 Refresh/Rescan Programmers。
图 16 • 对设备编程 - 单击运行。 当设备烧录成功后,会显示 RUN PASSED 状态,如下图所示。
图 17 • FlashPro Express——运行通过 - 关闭 FlashPro Express 或单击“项目”选项卡中的“退出”。
使用 Libero SoC 对设备进行编程
参考设计 files 包括使用 Libero SoC 创建的 Mi-V 处理器子系统项目。 可以使用 Libero SoC 对 RTG4 设备进行编程。 Libero SoC 项目从综合、布局布线、时序验证、FPGA 阵列数据生成、更新 μPROM 存储器内容、比特流生成、FPGA 编程完全构建和运行。
Libero设计流程如下图所示。
图 18 • Libero 设计流程
要对 RTG4 设备进行编程,必须在 Libero SoC 中打开 Mi-V 处理器子系统项目,并且必须重新运行以下步骤:
- 更新 uPROM 存储器内容:在此步骤中,μPROM 使用引导加载程序应用程序进行编程。
- 比特流生成:在这一步中,工作 file 为 RTG4 设备生成。
- FPGA 编程:在这一步中,使用作业对 RTG4 设备进行编程 file.
请按以下步骤操作:
- 从 Libero Design Flow 中,选择 Update uPROM Memory Content。
- 使用“添加”选项创建客户端。
- 选择客户端,然后选择编辑选项。
- 从中选择内容 file 然后选择 Browse 选项,如图 19 所示。
图 19 • 编辑数据存储客户端 - 导航到以下设计 files 位置并选择 miv-rv32im-bootloader.hex file 如图20所示。<$Download_Directory>\rtg4_ac490_df
- 设置 File 键入 Intel-Hex (*.hex)。
- 选择使用项目目录中的相对路径。
- 单击“确定”。
图 20 • 导入内存 File
- 单击“确定”。
μPROM 内容已更新。 - 双击 Generate Bitstream,如图 21 所示。
图 21 • 生成比特流 - 双击 Run PROGRAM Action 对器件进行编程,如图 21 所示。
RTG4 器件已编程。 请参阅运行演示,第 11 页。
运行 TCL 脚本
设计中提供TCL脚本 fileTCL_Scripts 目录下的 s 文件夹。 如果需要,可以重现设计流程,从设计实施到作业生成 file.
要运行 TCL,请按照以下步骤操作:
- 启动自由人软件。
- 选择项目 > 执行脚本…。
- 单击浏览并从下载的 TCL_Scripts 目录中选择 script.tcl。
- 单击运行。
成功执行 TCL 脚本后,将在 TCL_Scripts 目录中创建 Libero 项目。
有关 TCL 脚本的更多信息,请参阅 rtg4_ac490_df/TCL_Scripts/readme.txt。
有关 TCL 命令的更多详细信息,请参阅 Libero® SoC TCL 命令参考指南。 接触
运行 TCL 脚本时遇到的任何问题的技术支持。
Microsemi 对此处包含的信息或其产品和服务对任何特定目的的适用性不作任何保证、陈述或保证,Microsemi 也不承担因应用或使用任何产品或电路而产生的任何责任。 在此销售的产品和 Microsemi 销售的任何其他产品都经过了有限的测试,不应与任务关键型设备或应用程序一起使用。 任何性能规格都被认为是可靠的,但未经验证,买方必须单独、与任何最终产品一起或安装在任何最终产品中进行并完成产品的所有性能和其他测试。 买方不得依赖 Microsemi 提供的任何数据和性能规格或参数。 买方有责任独立确定任何产品的适用性并对其进行测试和验证。 Microsemi 在此提供的信息是“按原样、在哪里”提供的,并且存在所有错误,与此类信息相关的全部风险完全由买方承担。 Microsemi 没有明确或暗示地向任何一方授予任何专利权、许可或任何其他知识产权,无论是关于此类信息本身还是此类信息所描述的任何内容。 本文档中提供的信息是 Microsemi 的专有信息,Microsemi 保留随时对本文档中的信息或任何产品和服务进行任何更改的权利,恕不另行通知。
关于Microsemi
Microsemi 是 Microchip Technology Inc.(纳斯达克代码:MCHP)的全资子公司,为航空航天和国防、通信、数据中心和工业市场提供全面的半导体和系统解决方案组合。 产品包括高性能和抗辐射模拟混合信号集成电路、FPGA、SoC和ASIC; 电源管理产品; 计时和同步设备和精确的时间解决方案,设定世界时间标准; 语音处理设备; 射频解决方案; 分立元件; 企业存储和通信解决方案、安全技术和可扩展的反tamp呃产品; 以太网解决方案; 以太网供电 IC 和中跨; 以及定制设计能力和服务。 了解更多信息 www.microsemi.com.
微半导体总部
一个企业,Aliso Viejo,
CA 92656美国
美国境内:+1 800-713-4113
美国境外:+1 949-380-6100
销售额:+1 949-380-6136
传真:+1 949-215-4996
电子邮件: sales.support@microsemi.com
www.microsemi.com
©2021 Microsemi,Microchip Technology Inc. 的全资子公司。保留所有权利。 Microsemi 和 Microsemi 徽标是 Microsemi Corporation 的注册商标。 所有其他商标和服务标记均为其各自所有者的财产
文件/资源
![]() |
Microsemi AC490 RTG4 FPGA:构建 Mi-V 处理器子系统 [pdf] 用户指南 AC490 RTG4 FPGA 构建 Mi-V 处理器子系统,AC490 RTG4,FPGA 构建 Mi-V 处理器子系统,Mi-V 处理器子系统 |