其他分享
首页 > 其他分享> > 【学习笔记】基于Arm Cortex-M0 Designstart Eval设计SOC(一)

【学习笔记】基于Arm Cortex-M0 Designstart Eval设计SOC(一)

作者:互联网

一、简介

本项目是使用Arm Cortex-M0 Designstart Eval进行开发,以下内容来自Arm Cortex-M0 DesignStart Eval User Guide。

点击此处下载Arm Cortex-M0 Designstart Eval

开发环境:

Win10、MDK5、TD(Tang Dynasty)、安路EG4S20 FPGA开发板

二、Designstart Eval文件介绍

点击上方链接申请Arm Cortex-M0 Designstart Eval后,得到一个名为AT510-MN-80001-r2p0-00rel0的压缩包。解压后得到如下文件

1.工具包的主目录

表1描述了设计工具包的主目录。

表1.主目录说明
目录名称目录内容
RecoveryFPGA 映像,包括字节码文件、BIOS、配置和软件二进制文件。
RevCFPGA 设计文件 (Verilog) 和实现流程。
cores/cortexm0_designstart_r2p0混淆Cortex-M0集成级别。
logicalFPGA 设计文件 (Verilog) 和实现流程。
smm_common常见的 FPGA 组件和外设。
software

软件文件。这些包括:

  • 与 CMSIS 兼容的 C 头文件。

  • 示例系统的示例程序文件。

  • 示例设备驱动程序。

systems/cortex_m0_mcuCMSDK 示例系统的设计文件、测试平台文件和仿真设置文件。

systems/fpga_testbench

FPGA 示例系统的测试台文件和仿真设置文件。
documentation文档文件。

2.MCU示例及其余模块 

下图为本项目的MCU系统顶层试图示例,表2解释组成MCU的各模块的含义。

表2. MCU各模块的含义
项目描述

cmsdk_mcu

微控制器设计示例。此级别包含行为记忆和时钟生成组件。

cmsdk_mcu_system

微控制器设计的可合成水平。这将实例化 Cortex-M0 处理器。
CORTEXM0INTERGRATIONCortex-M0 集成层。这是经过混淆和拼合的代码。
cmsdk_apb_subsystemAPB 外设和 APB 基础设施的子系统。
System controller包含用于系统控制的可编程寄存器,例如存储器重映射。
SysTick reference clock系统Tick参考时钟生成逻辑。
cmsdk_ahb_gpio具有 AHB 接口的低延迟 GPIO。每个 GPIO 模块提供 16 个 I/O 引脚。

cmsdk_mcu_clkctrl

时钟和复位生成逻辑行为模型。

cmsdk_mcu_pin_mux

用于 I/O 端口的引脚多路复用器和三态缓冲器。
cmsdk_ahb_rom用于ROM的内存包装器,用于测试不同内存实现的行为。您可以修改 Verilog 参数以更改实现。
cmsdk_ahb_ramRAM 的内存包装器,用于测试不同内存实现的行为。您可以修改 Verilog 参数以更改实现。
cmsdk_ahb_cs_rom_table一个示例系统级 CoreSight ROM 表,它使调试器能够将系统标识为基于 Cortex-M0 的系统。
cmsdk_mcu_addr_decode基于 CMSDK 地址映射为每个内存映射组件生成 HSELS
cmsdk_clkreset生成时钟和复位信号。XTAL1 以 50MHz 的频率运行。它在仿真开始时将NRST LOW断言为5ns。
cmsdk_uart_capture

从 UART2 捕获文本消息,并在仿真期间显示该消息。它在收到回车符后显示消息的每一行。要缩短仿真时间,请将波特率设置为与时钟频率相同。必须将 UART 设置为高速测试模式

下图显示了 Cortex-M0 示例系统的接口。

表3描述系统设计包括的外围组件。

表3.外围组件
项目描述
cmsdk_ahb_gpio两个具有 AHB 接口的低延迟 GPIO。每个 GPIO 模块提供 16 个 I/O 引脚。
cmsdk_apb_timer32 位计时器。
cmsdk_apb_uartA UART.
cmsdk_apb_watchdog与 AMBA 设计套件中的看门狗兼容的看门狗组件。
cmsdk_apb_dualtimers与 AMBA 设计套件中的双定时器模块兼容的双定时器模块。

  表4介绍了Cortex-M0 微控制器中包含的 Verilog 文件。

表4.Cortex-M0 微控制器的 Verilog 文件
文件名描述

cmsdk_mcu.v

微控制器的顶层

cmsdk_mcu_defs.v

示例微控制器的常量定义和配置定义

cmsdk_mcu_system.v

微控制器系统级设计

cmsdk_mcu_sysctrl.v

用于系统级控制的可编程寄存器块

cmsdk_mcu_stclkctrl.v

系统Tick参考时钟生成逻辑

cmsdk_mcu_clkctrl.v

时钟和复位控制

cmsdk_mcu_pin_mux.v

用于 I/O 端口的引脚多路复用器和三态缓冲器
cmsdk_mcu_addr_decode.v基于 CMSDK 地址映射为每个内存映射组件生成 HSELS
cmsdk_ahb_cs_rom_table.vCoreSight system level ROM table for CMSDK

表5介绍了测试平台中包含的 Verilog 文件。

表5.Cortex-M0 微控制器测试平台的验证日志文件
文件名描述

tb_cmsdk_mcu.v

示例微控制器的测试台
cmsdk_clkreset.v时钟和复位发生器
cmsdk_uart_capture.v用于文本消息显示的 UART 捕获
tbench_M0_DS.vcCortex-M0 DesignStart Eval 的 Verilog 命令文件

表6介绍了 FPGA 设计的主要文件(不包括外设)。

表6.Cortex-M0 FPGA 设计的验证日志文件
文件名描述
fpga_top.v顶级 FPGA,具有 I/O 引脚、PLL 和 ddr 焊盘实例、复位控制逻辑
fpga_system.v包装器级别
user_partition.v主系统集成。端口多路复用,内存设备接口,gpio 2/3
cmsdk_mcu_system.v基于 CMSDK 的系统,集成了其他外设
cmsdk_mcu_stclkctrl.v简单的系统信号控制
cmsdk_mcu_sysctrl.v简单的系统控制外设,PMU 支持捆绑
cmsdk_ahb_cs_rom_table.v标准 CMSDK 系统 ROM 表
cmsdk_mcu_addr_decode.vFPGA 版本 cmsdk_mcu_system 的地址解码

表7介绍了测试平台中包含的 Verilog 文件。

表7.Cortex-M0 FPGA 测试平台中包含的 Verilog 文件
文件名描述
tb_fpga.v测试台顶级
cmsdk_uart_capture_ard.vUART 捕获/显示模块
tb_arduino_shield.vArduino Shield 组件的包装器
arduino_adaptor.v用于Arduino Shield的Arm适配器模型
arduino_shield.vArduino shield的测试台模型
GS8160Z36DT.v内存模型
core.v内存模型组件
SPI_EEPROM.v内存模型
I2C_SRAM.v内存模型
IS66WVE409616BLL.v内存模型
scc_tb.vSCC 接口包装器示例

对于系统文件的介绍就到这里。

标签:文件,SOC,cmsdk,示例,Cortex,Eval,mcu,M0
来源: https://blog.csdn.net/m0_66764513/article/details/122761441