一、简介
本项目是使用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描述了设计工具包的主目录。
目录名称 | 目录内容 |
Recovery | FPGA 映像,包括字节码文件、BIOS、配置和软件二进制文件。 |
RevC | FPGA 设计文件 (Verilog) 和实现流程。 |
cores/cortexm0_designstart_r2p0 | 混淆Cortex-M0集成级别。 |
logical | FPGA 设计文件 (Verilog) 和实现流程。 |
smm_common | 常见的 FPGA 组件和外设。 |
software | 软件文件。这些包括:
|
systems/cortex_m0_mcu | CMSDK 示例系统的设计文件、测试平台文件和仿真设置文件。 |
systems/fpga_testbench |
FPGA 示例系统的测试台文件和仿真设置文件。 |
documentation | 文档文件。 |
2.MCU示例及其余模块
下图为本项目的MCU系统顶层试图示例,表2解释组成MCU的各模块的含义。
项目 | 描述 |
|
微控制器设计示例。此级别包含行为记忆和时钟生成组件。 |
|
微控制器设计的可合成水平。这将实例化 Cortex-M0 处理器。 |
CORTEXM0INTERGRATION |
Cortex-M0 集成层。这是经过混淆和拼合的代码。 |
cmsdk_apb_subsystem |
APB 外设和 APB 基础设施的子系统。 |
System controller | 包含用于系统控制的可编程寄存器,例如存储器重映射。 |
SysTick reference clock | 系统Tick参考时钟生成逻辑。 |
cmsdk_ahb_gpio |
具有 AHB 接口的低延迟 GPIO。每个 GPIO 模块提供 16 个 I/O 引脚。 |
|
时钟和复位生成逻辑行为模型。 |
|
用于 I/O 端口的引脚多路复用器和三态缓冲器。 |
cmsdk_ahb_rom |
用于ROM的内存包装器,用于测试不同内存实现的行为。您可以修改 Verilog 参数以更改实现。 |
cmsdk_ahb_ram |
RAM 的内存包装器,用于测试不同内存实现的行为。您可以修改 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描述系统设计包括的外围组件。
项目 | 描述 |
---|---|
cmsdk_ahb_gpio |
两个具有 AHB 接口的低延迟 GPIO。每个 GPIO 模块提供 16 个 I/O 引脚。 |
cmsdk_apb_timer |
32 位计时器。 |
cmsdk_apb_uart |
A UART. |
cmsdk_apb_watchdog |
与 AMBA 设计套件中的看门狗兼容的看门狗组件。 |
cmsdk_apb_dualtimers |
与 AMBA 设计套件中的双定时器模块兼容的双定时器模块。 |
表4介绍了Cortex-M0 微控制器中包含的 Verilog 文件。
文件名 | 描述 |
---|---|
|
微控制器的顶层 |
|
示例微控制器的常量定义和配置定义 |
|
微控制器系统级设计 |
|
用于系统级控制的可编程寄存器块 |
|
系统Tick参考时钟生成逻辑 |
|
时钟和复位控制 |
|
用于 I/O 端口的引脚多路复用器和三态缓冲器 |
cmsdk_mcu_addr_decode.v |
基于 CMSDK 地址映射为每个内存映射组件生成 HSELS |
cmsdk_ahb_cs_rom_table.v |
CoreSight system level ROM table for CMSDK |
表5介绍了测试平台中包含的 Verilog 文件。
文件名 | 描述 |
---|---|
|
示例微控制器的测试台 |
cmsdk_clkreset.v |
时钟和复位发生器 |
cmsdk_uart_capture.v |
用于文本消息显示的 UART 捕获 |
tbench_M0_DS.vc |
Cortex-M0 DesignStart Eval 的 Verilog 命令文件 |
表6介绍了 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.v |
FPGA 版本 cmsdk_mcu_system 的地址解码 |
表7介绍了测试平台中包含的 Verilog 文件。
文件名 | 描述 |
---|---|
tb_fpga.v |
测试台* |
cmsdk_uart_capture_ard.v |
UART 捕获/显示模块 |
tb_arduino_shield.v |
Arduino Shield 组件的包装器 |
arduino_adaptor.v |
用于Arduino Shield的Arm适配器模型 |
arduino_shield.v |
Arduino shield的测试台模型 |
GS8160Z36DT.v |
内存模型 |
core.v |
内存模型组件 |
SPI_EEPROM.v |
内存模型 |
I2C_SRAM.v |
内存模型 |
IS66WVE409616BLL.v |
内存模型 |
scc_tb.v |
SCC 接口包装器示例 |
对于系统文件的介绍就到这里。