AG16K MCU ARM Cortex M3

AGM AG16K MCU 器件是 FPGA+MCU 的 SoC 单芯片产品。
FPGA 单元具有 16K LEs 的逻辑资源,MCU 为硬核 ARM Cortex M3。

MCU 特性
 内核 ARM32 位的 Cortex M3 CPU

  1. 最高 200 Mhz 工作频率
  2. 单周期乘法和硬件除法
  3. 集成的嵌套式的中断控制器(NVIC)提供确定性的中断处理
     高达 128K 字节的 SRAM
     调试模式
  4. 串行调试模式(SWP)和 JTAG 接口
  5. Cortex M3 内嵌跟踪模块(ETM)
     定时器
  6. 两个定时器,每个可被配置为一个 32 位的定时器或两个 16 位的定时器
  7. 独立的看门狗定时器
     GPIO
    3 组 GPIO,每组 GPIO 是 8bit,取决于用户的配置
     通信接口
  8. SPI 接口,用于访问程序存储器 FLASH,支持 FLASH 快速读写模式
  9. Uart 接口
  10. 访问外设的 AHB Master 接口
  11. 与 FPGA 交互的 AHB Slave 接口
  12. 共享 MCU 内部 RAM 访问接口;

MCU 管脚说明:
所有 MCU 接口均可灵活配置为任意 FPGA 外部 IO,或 FPGA 内部连接。
MCU 例化 Primitive 模版见文档结尾。
在这里插入图片描述
在这里插入图片描述
注:在使用 MCU EXT AHB Interface 前,需要先对该接口进行使能才能正常使用。
使能寄存器 EXTAHBEN,具体见文档中寄存器说明;

 设计说明
AG16K MCU 的 FPGA 工程中,需调用 alta_mcu_m3 的硬核 IP,包含在 alta_sim.v 的库文
件中,这个文件默认在 supra 的安装目录中,如:D:\Supra\etc\arch\rodinia。Quartus II
project 要添加这个文件,同时,要把 alta_mcu_m3 设为 Design Partition,如下图:
在这里插入图片描述
MCU 的 SPI 接口接到 FPGA 的 AS 口(复用配置管脚),就可以从配置 FLASH 读取软件程序了。
alta_mcu_m3 还有 2 个参数需要确定,需在 Supra 软件执行 migrate 时,添加 mcu.ip 文件,mcu.ip 文件用户自行创建,内容如下:
IP mcu_inst
TYPE : alta_mcu_m3;
PARAMETER
FLASH_BIAS : 24’h060000 BITS; //MCU 程序在 FLASH 中存放的首地址
CLK_FREQ : 8’h64 BITS; //MCU 主时钟频率(100MHz)
END_PARAMETER
END_IP
在这里插入图片描述
注: mcu.ip 文件中 IP 名字(如上:mcu_inst)需与设计中的自定义的 IP 名字完全一致;mcu 在 FLASH 中的存放地址 FLASH_BIAS 和 mcu 工作频率一定要与实际设计一致;

MCU 程序在 SPI FLASH 里的存储格式:
以下为偏移地址,存放 FLASH 中的起始地址由 MCU.IP 中的FLASH_BIAS 给出。
在这里插入图片描述
该存储格式可通过 2018.06.01 之后版本的 Supra 软件 Tools 中的 Generate 生成,流程如下:在这里插入图片描述
其中,Input文件为Keil生成的mcu程序文件,输出为合成后的存储格式Bin文件,Program address 为上方表格中“程序运行 RAM 地址(4bytes)”,即 Keil 中设置的程序运行地址。在这里插入图片描述
通过正常 FPGA 设计流程(参见 Manual_Supra),可得到 FPGA 硬件编程文件。
最后通过 Generate 将 MCU 程序和 FPGA 程序打包,生成 flash 烧写文件。其中 MCU 程序的地址,根据 mcu.ip 中设置的 FLASH_BIAS 进行设置。在这里插入图片描述
 软件设计
AG16K 的 MCU 可用 SWD 或者 JTAG 调试接口,管脚可通过任意 FPGA IO 引出,即可通过 ARM M3 调试工具进行软件设计和调试,如 J-LINK 和 Keil。在这里插入图片描述
SWD 接口:
SWD 接口最少只需 VCC, GND, SWDIO, SWCLK 四个 pin 脚即可调试。SWD 接口的复用 JTAG接口的 JTMS 和 JTCK 两个管脚,如上图所示。
使用 SWD 接口替代 JTAG 接口时,需设置顶层 SWDIO 端口为 inout 型,同时代码中添加语句:“ assign SWDIO = SWDOEN ? SWDO : 1’bz; ”,MCU SWD 接口接法如下:
.JTRST_n ( ),
.JTCK (SWCLK ),
.JTDI ( ),
.JTMS (SWDIO ),
.JTDO ( ),
.SWDO (SWDO ),
.SWDOEN (SWDOEN ),

JTAG 接口:在这里插入图片描述
SWD 接口:在这里插入图片描述
在这里插入图片描述
 MCU 地址映射表:
一、基本地址空间在这里插入图片描述
Note: 0x2000_0000-0x2000_FFFF 地址映射的 64KB SRAM 与 0x1FFF_0000-0x1FFF_FFFF 地址映射的 64KB SRAM 是同一个;

二、地址 REMAP
当通过 CPU 的 DBUS、IBUS 访问代码区空间(0x0000_0000-0x1FFF_FFFF)时,可以通过 REMAP功能改变地址映射。
在这里插入图片描述
REMAP=0 时,0x0000_0000 地址映射在 ROM 上,CPU 从 ROM 启动。
REMAP=1 时,0x0000_0000 地址映射在 On-chip Ram 上,CPU 从 On-chip Ram 启动。
注意,REMAP 的设置,只对来自 DBUS、IBUS 的访问有效。
来自 CPU SBUS 以及 DMA 等其他 AHB Master 的访问,无论 REMAP 如何设置,都按照基本地址空间的地址访问。

 MCU 寄存器地址说明:
在这里插入图片描述
 MCU 例化模版:
注意:其中 EXT_RAM,AHB_SLAVE, AHB_MASTER 接口不使用时,一些控制管脚需设置定值;
alta_mcu_m3 mcu_inst (
.CLK ( ),
.POR_n ( ),
.EXT_CPU_RST_n ( ),

.JTRST_n ( ),
.JTCK ( ),
.JTDI ( ),
.JTMS ( ),
.JTDO ( ),

.SWDO ( ),
.SWDOEN ( ),

.UART_RXD ( ),
.UART_CTS_n ( ),
.UART_TXD ( ),
.UART_RTS_n ( ),

// On-Chip Memory Ports
.EXT_RAM_RDATA ( ),
.EXT_RAM_EN (1’b0 ),
.EXT_RAM_WR ( ),
.EXT_RAM_ADDR ( ),
.EXT_RAM_BYTE_EN ( ),
.EXT_RAM_WDATA ( ),

// AHB Slave Ports
.HRESP_EXT (2’b00 ),
.HREADY_OUT_EXT ( ),
.HRDATA_EXT ( ),
.HTRANS_EXT ( ),
.HADDR_EXT ( ),
.HWRITE_EXT ( ),
.HSEL_EXT ( ),
.HWDATA_EXT ( ),
.HSIZE_EXT ( ),
.HREADY_IN_EXT ( ),

// AHB Master Ports
.HRESP_EXTM ( ),
.HREADY_OUT_EXTM ( ),
.HRDATA_EXTM ( ),
.HTRANS_EXTM (2’b0 ),
.HADDR_EXTM ( ),
.HWRITE_EXTM ( ),
.HSEL_EXTM (1’b0 ),
.HWDATA_EXTM ( ),
.HSIZE_EXTM ( ),
.HREADY_IN_EXTM (1’b1 ),
.HBURSTM ( ),
.HPROTM (4’b0 ),

.FLASH_SCK (FLASH_SCK ),
.FLASH_CS_n (FLASH_CS_n ),
.FLASH_IO0_SI_i (FLASH_IO0_SI ),
.FLASH_IO1_SO_i (FLASH_IO1_SO ),

.FLASH_IO0_SI (flash_io0_si_o ),
.FLASH_IO1_SO (flash_io1_so_o ),
.FLASH_IO2_WPn (flash_io2_wpn_o ),
.FLASH_IO3_HOLDn (flash_io3_holdn_o ),
.FLASH_IO2_WPn_i (1’b1 ),
.FLASH_IO3_HOLDn_i (1’b1 ),
.FLASH_SI_OE (flash_si_oe ),
.FLASH_SO_OE (flash_so_oe ),
.WPn_IO2_OE (flash_wpn_oe ),
.HOLDn_IO3_OE (flash_holdn_oe ),

.GPIO0_I ( ),
.GPIO1_I ( ),
.GPIO2_I ( ),
.GPIO0_O ( ),
.GPIO1_O ( ),
.GPIO2_O ( ),
.nGPEN0 ( ),
.nGPEN1 ( ),
.nGPEN2 ( )
) ;
assign FLASH_IO0_SI = (flash_si_oe == 1’b1)? flash_io0_si_o :1’bz;
assign FLASH_IO1_SO = (flash_so_oe == 1’b1)? flash_io1_so_o :1’bz;
assign FLASH_IO2_WPN = (flash_wpn_oe == 1’b1)? flash_io2_wpn_o :1’bz;
assign FLASH_IO3_HOLDN = (flash_holdn_oe == 1’b1)? flash_io3_holdn_o :1’bz;

最详细的基于AG16K的Cortex M3应用手册,欢迎使用,有疑问请联系kh_hsiah@126.com/Douglas。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024生化仪器与实验室装备创新发展论坛将于3月6日济南召开

2024生化仪器与实验室装备创新发展论坛 2024年3月6日 | 山东国际会展中心 一、会议介绍 近年来,制药及生物制药行业的高速成长,生化仪器与实验室装备作为科学研究的重要组成部分,同时也在不断的更新和升级。伴随生物制药、CRO等下游行业的…

(c语言)输出一个十进制整数的二进制序列

#include<stdio.h> int main() {int x;scanf("%d",&x);for (int i 31; i >0; i--)//从前向后输出{if (((x >> i) ^ 0) 0) //当移位后全都是0时&#xff0c;进入下一个循环{continue; //需要输出完整二进制数时该判断语句删去}if (…

Javascript高频面试题

系列文章目录 文章目录 系列文章目录前言1.JavaScript常见数据类型null 和 undefind区别symbol&#xff08;ES6新增&#xff09;、bigInt&#xff08;ES10新增&#xff09; 2.JavaScript判断数据类型的方式3. 和 区别&#xff0c;分别在什么情况使用&#xff1f;4.变量声明 va…

[Application] The app delegate must implement the window property if ..... 错误

在xcode中新建ios项目后再真机上运行&#xff0c;会发现手机上一篇漆黑&#xff0c;仔细观察控制台会发现这样的提示&#xff1a; [Application] The app delegate must implement the window property if it wants to use a main storyboard. 大概意思是&#xff1a; app d…

【Spring技术专题】「实战开发系列」保姆级教你SpringBoot整合Mybatis框架实现多数据源的静态数据源和动态数据源配置落地

SpringBoot整合Mybatis框架实现多数据源和动态数据源配置 Mybatis是什么SpringBoot整合Mybatis框架实现多数据源操作应用场景选择和配置Maven依赖禁掉DataSourceAutoConfiguration去除DataSourceAutoConfiguration定制化配置对应的数据源 配置主、从数据源主数据源从数据源配置…

Mybatis-plus介绍与入门

前言 MyBatis-Plus是在MyBatis基础上的一个增强工具库&#xff0c;旨在简化开发者的工作&#xff0c;提高开发效率&#xff0c;同时保留MyBatis的灵活性。使用 MyBatis-Plus 可以减少重复性的代码&#xff0c;简化常见的数据库操作 官方学习文档&#xff1a;MyBatis-Plus (bao…

添加E1000网卡进行测试,只有VMXNET3性能的四分之一

正文共&#xff1a;1444 字 14 图&#xff0c;预估阅读时间&#xff1a;2 分钟 我们前面介绍了VMware ESXi 6.7中的适配器类型性能&#xff08;VMWare ESXi中&#xff0c;不同的虚拟网卡性能竟然能相差三倍&#xff01;&#xff09;&#xff0c;当时的配置项主要为E1000e和VMXN…

RK3568/RV1126/RV1109/RV1106 ISP调试方案

最近一直在做瑞芯微rv1126的开发&#xff0c;由于项目性质&#xff0c;与camera打的交道比较多&#xff0c;包括图像的采集&#xff0c;ISP处理&#xff0c;图像处理&#xff0c;H.264/H.265编解码等各个方面吧。学到了不少&#xff0c;在学习的过程中&#xff0c;也得到了不少…

2.electron之纯原生js/jquery的桌面应用程序(应用篇)

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 将 Chromium 和 Node.js 嵌入到了一个二进制文件中&#xff0c;因此它允许你仅需一个代码仓库&#xff0c;就可以撰写支持 Windows、…

Linux查询指定时间点段日志Linux查询指定文件

Linux服务器高效查询日志查询文件 Ⅰ、常用几种日志查询语法Ⅱ、常用几种查询语法 Ⅰ、常用几种日志查询语法 #查询某日志前xx行日志 head -n 行数 日志文件名 #查询某日志后xx行日志 tail -n 行数 日志文件名 #查询固定时间点日志&#xff08;前提是这个时间点确实有日志输出…

智慧工地人工智能信息管理平台源码,建筑工地管理平台源码

智慧工地云平台源码&#xff0c;微服务架构JavaSpring Cloud UniApp MySql 智慧工地是指以物联网、​移动互联网技术为基础&#xff0c;充分应用人工智能等信息技术&#xff0c;通过AI赋能建筑行业&#xff0c;对住建项目内人员、车辆、安全、设备、材料等进行智能化管理&#…

女生未来赋能计划“闪亮她未来”职业启蒙课程走进开江县

为女童未来赋能&#xff0c;”爱小丫闪亮她未来”职业启蒙系列活动经过前期对接与筹备&#xff0c;于2023年12月4日和7日&#xff0c;分别走进甘棠小学与灵岩小学&#xff0c;本次活动由开江县网格员社会工作服务中心“爱小丫女生未来赋能计划”项目志愿者讲师谭顺玲老师为两所…

解决ES伪慢查询

一、问题现象 服务现象 服务接口的TP99性能降低 ES现象 YGC&#xff1a;耗时极其不正常, 峰值200次&#xff0c;耗时7sFULL GC&#xff1a;不正常,次数为1但是频繁&#xff0c;STW 5s慢查询&#xff1a;存在慢查询5 二 解决过程 1、去除干扰因素 从现象上看应用是由于某种…

荣耀时刻丨2023AIoT新维奖揭晓,美格智能荣登企业榜·行业先锋榜

12月15日&#xff0c;由物联网智库、智次方研究院主办&#xff0c;广东省物联网协会、深圳市物联网协会协办&#xff0c;智次方承办的中国AIoT产业年会暨2024年智能产业前瞻洞察大典在深圳顺利举办。 会上公布了“2023AIoT新维奖”系列榜单评选结果&#xff0c;美格智能荣登20…

C# WPF上位机开发(crc校验)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 为了验证数据传输的过程中有没有发生翻转&#xff0c;我们在传输报文的同时一般还会添加一个crc校验。对于modbus协议也是一样&#xff0c;它在数据…

国际教育-微积分试讲讲稿

Substitution for Integration-Notes换元积分法

【SpringBoot】之Mybatis=Plus集成及使用(入门级)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringBoot开发之Mybatis-Plus系列》。&#x1…

MySQL数据存储、索引记录

行格式(每行记录) 行格式(每行记录)&#xff1a; 以记录为单位来向表中插入数据的&#xff0c;这些记录在磁盘上的存放方式也被称为 行格式 或者 记录格式。 InnoDB 存储引擎4种不同类型的 行格式 &#xff0c;分别是 Compact 、 Redundant 、Dynamic 和 Compressed 行格式。组…

git 的使用

git reset详解-CSDN博客 git reset 命令详解 git revert命令详解。-CSDN博客 关于Git分支中HEAD和Master的理解 - 知乎 (zhihu.com) 一文带你精通 Git&#xff08;Git 安装与使用、Git 命令精讲、项目的推送与克隆&#xff09;-CSDN博客 Git 常用操作&#xff08;5&#xff…

SpringMVC上传下载文件解读

知识点 文件上传&#xff08;File Upload&#xff09;&#xff1a; 创建一个控制器方法&#xff0c;使用 MultipartFile 参数来接收上传的文件。在 Spring 配置文件中配置一个 MultipartResolver&#xff0c;常用的实现类是 CommonsMultipartResolver。在 MultipartResolver …