本实例系统是一个简单的微处理器设计(你可以按照自己的需求配置处理器)。它包含以下内容:
•单个Cortex-M3或Cortex-M4处理器。
•内部程序存储器。
•SRAM数据存储器。
• Boot loader.
•外设:几个定时器timer, GPIO ,UART, 看门狗定时器;
•调试连接。
顶层
明框图各模块
名称 | 说明 |
---|---|
cmsdk_mcu | 示例微控制器。这个层级包含行为记忆和时钟生成组件。 |
cmsdk_mcu_system | 微控制器设计的综合层次。实例化Cortex-M3或Cortex-M4处理器。 |
CORTEXM3INTEGRATION | 处理器整合层,集成了Cortex-M3处理器和调试接口模块。 |
cmsdk_apb_subsystem | APB外设和APB子系统。 |
System controller | 包含用于系统控制的可编程寄存器,例如内存重映射和电源管理启用。 |
Systick reference clock | Systick参考时钟生成逻辑。 |
cmsdk_ahb_gpio | 具有AHB接口的低延迟GPIO。每个GPIO模块提供16个I/O引脚。 |
PL230 DMA Controller | An optional instantiation of the Arm CoreLink DMA-230 Micro DMA Controller. The DMA-230 is not included in this deliverable, and you must license it separately. |
cm3_example_pmu | 可选的Cortex-M3电源管理单元(PMU)。 |
cmsdk_mcu_clkctrl | 时钟和复位生成逻辑行为模型。 |
cmsdk_mcu_pin_mux | 用于I/O端口的引脚多路复用器和三态缓冲器。 |
cmsdk_ahb_rom | A memory wrapper for the ROM to test the behavior of different implementations of memory. You can modify the Verilog parameters to change the implementation.(ROM存储器包) |
cmsdk_ahb_ram | RAM存储器包 |
cmsdk_mcu_addr_decode | 基于CMSDK地址映射为每个内存映射组件生成hsel。 |
Testbench文件说明
note:测试用到断言:编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。
名称 | 说明 |
---|---|
cmsdk_clkreset | 产生时钟和复位信号。XTAL1以50MHz运行。It asserts NRST LOW for 5ns at the start of the simulation. The example system contains a behavioral clock and reset controller that synchronizes and extends the reset pulse. |
cmsdk_uart_capture | 从UART2捕获文本消息并在模拟期间显示该消息。它在收到回车符后显示消息的每一行。为了减少模拟时间,将波特率设置为与时钟频率相同。必须将设计工具包中的UART设置为高速测试模式。该单元还控制在微控制器和调试测试仪之间传递调试命令和状态信息的三态缓冲区。它通过向捕获模块发送转义码来实现。 |
cmsdk_debug_tester | debug tester是一个独立的基于处理器的系统,它生成调试活动来测试调试连接。要运行这些测试,微控制器通过GPIO 0和端口0的I/O与调试测试仪通信。默认情况下,测试台禁用与三态缓冲区的通信,因此微控制器可以在不启动调试测试的情况下测试I/O端口功能。 |
有DMA控制器系统示例
无DMA控制器系统示例
名称 | 说明 |
---|---|
cmsdk_ahb_gpio | 两个带AHB接口的低延迟GPIO。每个GPIO模块提供16个I/O引脚。 |
cmsdk_apb_timer | 32位计数器 |
cmsdk_apb_uart | 通用异步收发器 |
cmsdk_apb_watchdog | 与AMBA设计套件中的看门狗兼容的看门狗组件。 |
cmsdk_apb_dualtimers | 与AMBA设计套件中的双定时器兼容的双定时器模块。 |
VERILOG文件功能说明
文件名 | 说明 |
---|---|
cmsdk_mcu.v | 微控制器的顶层 |
cmsdk_mcu_defs.v | 示例微控制器的常量定义和配置定义 |
cmsdk_mcu_system.v | 微控制器系统级设计 |
cmsdk_mcu_sysctrl.v | 用于系统级控制的可编程寄存器块 |
cmsdk_mcu_stclkctrl.v | SysTick参考时钟生成逻辑 |
cmsdk_mcu_clkctrl.v | 时钟和复位控制 |
cmsdk_mcu_pin_mux.v | 引脚多路复用器 |
cmsdk_mcu_addr_decode.v | 基于CMSDK地址映射为每个内存映射组件生成hsel |
测试VERILOG文件
文件名 | 说明 |
---|---|
tb_cmsdk_mcu.v | 示例微控制器测试文件 |
cmsdk_clkreset.v | 产生时钟和复位 |
cmsdk_uart_capture.v | 用于文本消息显示和调试测试仪通信控制的UART捕获 |
tbench_M3.vc | Cortex-M3的Verilog命令文件 |
debug tester VERILOG 文件
文件名 | 说明 |
---|---|
cmsdk_debug_tester.v | debug tester程序的顶层。 |
cmsdk_debug_tester_ahb_interconnect.v | debug tester内部的AHB互连。debug tester是一个基于Cortex-M的系统,它需要自己的AHB块。 |
cmsdk_debug_ahb_default_slave.v | debug tester使用的CMSDK AHB默认从设备。 |
cmsdk_ahb.v | debug tester程序内存。 |
cmsdk_ahb_ram.v | debug tester使用的CMSDK AHB SRAM。 |
cmsdk_ahb_gpio.v | CMSDK AHB GPIO |
cmsdk_debug_tester_trace_capture.v | 用于debug tester的跟踪数据捕获设备。 |
debug tester Verilog文件位于logical/cmsdk\u debug\u tester/Verilog/目录中。
第二章还有很多内容…