基于 arm 设计开发工具包的 Arm Cortex-M3 处理器设计(第二章:示例微处理器组成及各个Verilog文件功能及作用)

本实例系统是一个简单的微处理器设计(你可以按照自己的需求配置处理器)。它包含以下内容:
•单个Cortex-M3或Cortex-M4处理器。
•内部程序存储器。
•SRAM数据存储器。
• Boot loader.
•外设:几个定时器timer, GPIO ,UART, 看门狗定时器;
•调试连接。

顶层
在这里插入图片描述
明框图各模块

名称说明
cmsdk_mcu示例微控制器。这个层级包含行为记忆和时钟生成组件。
cmsdk_mcu_system微控制器设计的综合层次。实例化Cortex-M3或Cortex-M4处理器。
CORTEXM3INTEGRATION处理器整合层,集成了Cortex-M3处理器和调试接口模块。
cmsdk_apb_subsystemAPB外设和APB子系统。
System controller包含用于系统控制的可编程寄存器,例如内存重映射和电源管理启用。
Systick reference clockSystick参考时钟生成逻辑。
cmsdk_ahb_gpio具有AHB接口的低延迟GPIO。每个GPIO模块提供16个I/O引脚。
PL230 DMA ControllerAn 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_romA 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_ramRAM存储器包
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_testerdebug tester是一个独立的基于处理器的系统,它生成调试活动来测试调试连接。要运行这些测试,微控制器通过GPIO 0和端口0的I/O与调试测试仪通信。默认情况下,测试台禁用与三态缓冲区的通信,因此微控制器可以在不启动调试测试的情况下测试I/O端口功能。

有DMA控制器系统示例
在这里插入图片描述

无DMA控制器系统示例
在这里插入图片描述

名称说明
cmsdk_ahb_gpio两个带AHB接口的低延迟GPIO。每个GPIO模块提供16个I/O引脚。
cmsdk_apb_timer32位计数器
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.vSysTick参考时钟生成逻辑
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.vcCortex-M3的Verilog命令文件

debug tester VERILOG 文件

文件名说明
cmsdk_debug_tester.vdebug tester程序的顶层。
cmsdk_debug_tester_ahb_interconnect.vdebug tester内部的AHB互连。debug tester是一个基于Cortex-M的系统,它需要自己的AHB块。
cmsdk_debug_ahb_default_slave.vdebug tester使用的CMSDK AHB默认从设备。
cmsdk_ahb.vdebug tester程序内存。
cmsdk_ahb_ram.vdebug tester使用的CMSDK AHB SRAM。
cmsdk_ahb_gpio.vCMSDK AHB GPIO
cmsdk_debug_tester_trace_capture.v用于debug tester的跟踪数据捕获设备。

debug tester Verilog文件位于logical/cmsdk\u debug\u tester/Verilog/目录中。

第二章还有很多内容…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值