AG32 mcu+cpld 联合编程(概念及流程)

在使用mcu+cpld联合编程之前,请确认已经熟练掌握mcu的使用方法,并且对cpld编程(verilog语言)有一定的基础。

另外,对AHB总线也需要有一定的了解。

这个章节分为两部分:

第一部分,展示联合编程中各种概念和操作流程;

第二部分,从具体案例出发,由浅到深来描述各种常用的编程技巧。

.

以下描述为第一部分(概念和流程)。如要查看实例讲解,请参考第二部分。

.

一、前述

在AG32芯片(所有型号)中,都有内嵌2K的逻辑门,可供fpga/cpld来使用。

也就是说,使用AG32的芯片时,有三种选择:

  1. 只使用mcu部分;
  2. 只使用cpld部分;
  3. 同时使用mcu和cpld(即:mcu和cpld联合编程);

如果:

用于1(仅用做mcu),不必关注此文档。

用于2(仅用做cpld),硬件设计和操作流程,请跳转到“纯粹cpld编程”,也不必关注此文档。

用于3(mcu和cpld联合编程):请按照该文档的描述,先完整走一个流程。

.

二、基础了解

1. AG32整颗芯片包含两部分:mcu和cpld。

  这两部分是相互独立的(各自编译、各自下载),但又可以相互连通起来(信号连通)。

  芯片要把这两部分的bin都烧录进去,才能运行起来。

2. mcu和cpld到外部Pin脚的连通,是通过VE文件来配置的。

  跟ST芯片每个Gpio对应某个固定Pin脚不同,在AG32中,所有的Gpio/大部分的外设,对外引脚并不是定死的。而是需要在VE文件中指定对应。

  VE中,除了配置Gpio到Pin的关联,还可以配置mcu到cpld之间的信号关联。

3. Mcu+cpld联合编程时,cpld工程是由vscode的“prepare LOGIC”命令自动生成的。

  注意:联合编程时,cpld工程不能手工通过supra建立。

  cpld的对外接口,也是依托于vscode工程来的,不再是孤立的。

  cpld中的top module的信号输入,是关联到mcu工程的(由VE配置出来)。

4. cpld在联合编程中的定位:

  整颗芯片运行时,需要两个bin:mcu的bin和cpld的bin。

  如果芯片中只使用mcu不使用cpld:

  此时,VE文件里只配置mcu用到的Pin脚即可。

  这种情况下,vscode工程中点“upload LOGIC”时,会自动生成默认logic(该logic中“用户逻辑”为空而已),并编译出bin并烧录。

  整个过程中,logic部分对开发者来说是无感的。

  如果芯片中同时使用mcu和cpld:

  那么要把工程配置成“自定义logic”。

  此时VE文件里需要配置用到的mcu和pin之间、mcu和cpld之间、cpld和pin之间,三种情况下的信号关联。

  这种情况下,VSCode下点“prepare LOGIC”按钮,会为开发者生成cpld的框架工程。开发者需要在这个框架下完成cpld逻辑的编写。这个编写调试中,开发者持有主动权。等全部开发完成,并编译出bin,烧录就又回到VSCode去烧录。

这个过程,除了logic需要用户自己编写编译外,从更外层的视角看,整个流程还是跟“默认Logic”是相同的。

.

三、安装软件

mcu需要使用到的VSCode前边已经安装过了。

fpga/cpld需要使用Supra和Altera Quartus II两个软件来编程。

其中:

Supra.exe软件在安装完SDK后,已经在SDK路径下了,可直接使用(无需额外安装Supra)。

(注:如果在SDK路径下没有找到Supra.exe,可进入安装路径\AgRV_pio\packages\tool-agrv_logic\bin\去找到。同时建议手工新建一个快捷方式到SDK路径下以方便后续使用)

Altera Quartus II软件需要用户自行安装,安装后再安装对应的器件库。

(注意:Quartus不能使用Lite版本,需要使用Full版本。最好使用版本:Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 SJ Full Version)

在这两个软件中,

Quartus工具用来编写vlog代码并导出vo文件,Supra工具使用vo文件来生成最终的bin。

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

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

相关文章

Hadoop调度器深度解析:FairScheduler与CapacityScheduler的优化策略

Hadoop调度器概述在大数据处理的生态系统中,Hadoop作为分布式计算框架的核心,其资源调度机制直接决定了集群的吞吐效率和作业执行公平性。调度器作为Hadoop资源管理的中枢神经,通过协调计算资源与任务需求之间的动态平衡,成为支撑…

怎么自己搭建云手机

用闲置电脑搭建云手机 确保电脑安装 Ubuntu 20.04(或其他支持Docker的Linux系统)。 安装 Docker(运行云手机的核心工具)安装Redroid(安卓容器)运行安卓容器就欧克啦。 用云服务器搭建(适合长…

网关:数据翻译、中转、协议转换与边缘计算

网关(Gateway)详解:翻译与中转站的核心作用 在计算机网络中,网关(Gateway)是一个非常重要的概念。它本质上是一个“翻译中转站”,其主要作用是将不同网络之间的数据进行“翻译”,并确…

UE5多人MOBA+GAS 番外篇:使用ECC(UGameplayEffectExecutionCalculation)制作伤害计算的流程

文章目录定义一些属性用于作为伤害基础还有获取要打出去的伤害创建一个ECC(里面执行伤害的计算)在执行ECC的GE之前需要修改ECC需要调用的值,也可以不改直接计算在属性中监听ECC输出的那个值然后处理扣血定义一些属性用于作为伤害基础还有获取…

SpringBoot实战0-5

接口文档:通俗的讲,接口文档能告诉开发者接口能返回的数据,以及为了获取这些数据,开发者需要输入什么样的数据,请求哪个接口(即规范)为什么使用接口文档:1、项目开发过程中前后端工程…

二、SpringBoot-REST开发

rest开发(表现形式转换): 1、优点:隐藏访问资源的行为,无法通过地址得知对资源是何种操作,书写简化 2、GET查询 POST 新增/保存 PUT(修改/更新) DELETE(删除)…

大数据之路:阿里巴巴大数据实践——离线数据开发

数据开发平台 统一计算平台MaxCompute:主要服务于海量数据的存储和计算 ,提供完善的数据导入方案, 以及多种经典的分布式计算模型,提供海量数据仓库的解决方案,能够更快速地解决用户的海量数据计算问题,有效…

我的网页聊天室设计

一、需求分析1.用户管理模块注册功能实现一个注册页面。注册页面上包含了一个输入框,输入用户名和密码. 注册成功后可以跳转到登录页面.登录功能实现一个登录页面。登录页面上包含一个输入框。输入用户名和密码. 登录成功后可以跳转到主页面.2.主界面用户信息左上角…

数据结构自学Days10 -- 二叉树的常用实现

✅ 一、为什么要学习二叉树? 1. 📦 组织数据的高效方式 二叉树可以快速插入、删除、查找数据,尤其在平衡时,时间复杂度为 $O(\log n)$。 适合表示分层结构(如组织结构、文件系统、语法树)。 2. &#x…

Java注解家族--`@ResponseBody`

ResponseBody ResponseBody是 Spring 框架中的一个注解,在基于 Spring 的 Web 开发中扮演着重要角色,以下是对它的详细总结: 1.定义与基本功能 定义:ResponseBody注解用于将 Controller 方法的返回值,通过适当的 HttpM…

react-window 大数据列表和表格数据渲染组件之虚拟滚动

简介 React Window 是一个高效的 React 组件库,专为渲染大数据列表和表格数据而设计。它通过”虚拟化”技术(也称为”窗口化”或”列表虚拟化”)解决了在 React 应用中渲染大量数据时的性能问题。与传统方法不同,React Window 只…

Eltable tree形式,序号列实现左对齐,并且每下一层都跟上一层的错位距离拉大

要的是如图所示效果序号加个class-name写样式然后给eltable加indent属性就可以了,我设置的25

FOC算法中SIMULINK一些常用模块(2)-Permanent Magnet Synchronous Machine模块

一,介绍这三个模块一起介绍了,由左到右,分别是电源模块,驱动模块和电机模块。主要介绍一下电机模块二,DC Voltage SourceDC Voltage Source 模块是用于表示直流电压源的基本组件,可以提供恒流直压&#xff…

RPG62.制作敌人攻击波数二:攻击ui

1。经典创建userwidget,使用xmbtextblock,结构如下。然后设置动画与音频,上下的参数是一样的,转到图表打开BP_SurvialGameMode2.再创建一个widget,结构如下新添的动画打开XMBGameModeBase,创建构造函数AXMB…

DL00691-基于深度学习的轴承表面缺陷目标检测含源码python

DL00691-基于深度学习的轴承表面缺陷目标检测含源码python

Word 中为什么我的图片一拖就乱跑,怎么精确定位?

核心原因:文字环绕方式 (Text Wrapping) 问题的根源在于图片的**“文字环绕”**设置。 默认状态:“嵌入型” (In Line with Text) 当您插入一张图片时,Word默认会把它当作一个巨大的文字字符来处理。这就是为什么您拖动它时,它会像…

Linux物理地址空间入门:从硬件到内核内存的基石

目录 一、物理地址空间是什么? 二、物理地址空间的构成:不仅仅是内存 三、Linux内核如何管理物理地址空间 (1)物理内存的碎片化问题 (2)物理地址的分区管理 (3)物理地址与内核…

【2025最新版】PDFelement全能PDF编辑器

工具https://pan.quark.cn/s/a56d17fd05dd强大全能的PDF编辑神器PDFelementPro 全能PDF工具套装 PDF阅读器 PDF创建器 PDF编辑器 PDF注释器 PDF转换器 OCR识别工具 表单填写和创建 数据提取 批量处理 更多详情万兴PDF专业版特性。格式转换:PDFelement轻松…

基于单片机汽车驾驶防瞌睡防疲劳报警器自动熄火设计

(一)系统功能设计 51单片机汽车驾驶防疲劳防瞌睡报警器自动熄火15 本系统由STC89C52单片机、蜂鸣器、ADXL345重力加速度传感器、继电器控制、按键、指示灯及电源组成。 1、通过按键点亮led灯,代表车辆启动和熄火。 2、车辆启动后,…

OpenCV中的卷积高斯模糊与中值模糊

目录 一、卷积高斯模糊 (Gaussian Blur) 1. 原理与数学基础 2. OpenCV函数实现 3. 关键参数说明 4. 代码示例 5. 特点与应用 二、中值模糊 (Median Blur) 1. 原理与数学基础 2. OpenCV函数实现 3. 关键参数说明 4. 代码示例 5. 特点与应用 三、两种模糊方法对比分析…