基于飞腾芯片的设计与调试入门指导

news2024/10/7 18:27:35

图片

 

一、啥是自主可控

国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但是真正能叫做自主可控的CPU厂商,只有6家。那啥是自主可控?首先来不严谨的讲下现在数字芯片是怎么做的设计。FPGA大家都知道,可以通过Verilog或者VHDL等硬件编程语言实现硬件功能。比如,我要实现一个SPI控制8个LED灯的功能,可能从市面上找这种功能的芯片是没有的,那么我就可以自己指定控制LED的指令,通过使用FPGA自己编成,解析SPI传下来的指令,控制LED的亮灭。如果测试验证没有问题,那么就可以把FPGA的RTL拿出来,经过处理拿去流片,流片完成给芯片起个名字,比如YKS2D8001,这就成为了市面上能够实现SPI接口控制8个LED的ASIC芯片了。同时,咱们FPGA的实现代码,也可以拿出来当成一个IP,以后谁要想使用FPGA来实现这个功能的时候,就可以拿来用而不用再单独购买咱们流片完成的ASIC芯片YKS2D8001。

那么,咱们在做复杂功能FPGA的时候,比如xilinx的,咱们会调用xilinx提供的现成的IP,比如它的DDR控制器IP、PCIe IP或者更简单些的串口IP、IIC IP。这些IP咱们在程序实现时,是可以直接调用,根据xilinx提供的操作手册把这个IP给用起来的,但是这个IP核的实现代码,咱们是看不到的,如果咱们想改IP核内的代码,那肯定是没办法的。这就是非自主可控。自主可控,就是能够掌握IP的所有代码,自己想改就改。

飞腾就是国内自主可控6家之一。也就是可以简单的理解为飞腾芯片内的每行代码,每一个功能实现,都是自己实现的。这里有人会说,飞腾不是arm64的么,那是arm的呀。是的,飞腾是arm64的,但是飞腾是购买的arm的指令集授权。指令集授权大家可以通俗的认为就是购买了函数名,但是函数实现是自己做的。所以即使是arm64,也是自主可控的。

二、基于飞腾芯片的设计

2.1 最小系统硬件设计

要想让飞腾CPU加电后跑起来,硬件设计上有几个部分是必须有的。时钟、供电、内存、调试串口、QSPI Flash接口、存储。下面就针对每个部分详细说一下。

2.1.1 时钟

时钟不用多说,所有的芯片都需要时钟。飞腾芯片需求的时钟主要就是两种,1是芯片的主时钟48MHz,2就是芯片的PCIe控制器PEU的时钟100MHz。这个100MHz时钟要求PEU和外设同源,也就是从同一个时钟发生器产生,HSCL电平标准,AC耦合。并且设计时,即使PEU不用,PCIe时钟也是要接的。

图片

图 CPU总的时钟框图

图片

图 PEU0的时钟

图片

图 PEU1的时钟

2.1.2 供电和电源管理

飞腾的电源种类并不多,需要0.8V(核电)、1.2V(VDDQ)、1.8V(IO)三种。其他电源域基本都可以直连或者通过磁珠连接到这三个电源中,这里就参考demo设计就可以了。

这里需要提示的是:

1.就近放置在芯片电源管脚下的电容为4.7uF,这里尽量不要修改。

2.CPU有一个3.3V的电源管脚,这里给供一个3.3V过来即可。

3.各个电的最大电流一定要查手册,设计电源时一定要保证满足。

4.各个电的纹波不能超5%。注意,这里说的是整个运行状态下,就是BIOS阶段、OS系统启动和运行阶段,是都不能超的。这里特别强调,非常重要!

说到电源,就不得不说电源管理。借鉴x86的电源管理状态,飞腾CPU也有电源管理的几个状态。

图片

图 飞腾CPU电源状态

S0就是正常工作的状态,S3就是类似window的睡眠,即待机状态压到内存中,所以要求内存一直带电。S4/S5就是类似window的休眠和关机,即待机状态压到硬盘,或者就是直接关机了,这个时候整板都会掉电。

那么有人问了,S4/S5是俩状态呀?一个是休眠系统状态压到硬盘,一个是关机,这俩放一起咋区分呢?其实不用区分,系统状态压到硬盘了,就已经是被固定保存了,即使掉电也不会有数据丢失,这里应该没错吧。所以对于电源管理来说,S4/S5状态时都是要掉电的。那么S4、S5的区别,主要在下一次开机时。如果去看系统下去执行休眠和关机时的log信息,可以看出,休眠和关机系统处理是不同的,他们会置不同的标志。那么在下次开机的时候,这个置的标志,就能够告知系统要从哪种状态启动。

到这里,供电和电源管理的几个状态应该就说清了,那么现在实际问题来了,供电我能明白,就是使用电源芯片供电嘛。那么这个电源管理,我咋做?

那么下面,我们就一个一个的来说。

首先,我们一个板子肯定是从未加电状态转为加电状态,让CPU跑起来。那么对应上面的状态,那就是S4/S5状态到S0状态,也就是断电关机状态到上电工作状态。这个状态的控制,其实就是对CPU各个电源域上电时序的控制。所以,做硬件不用想太多,从未加电到加电让CPU跑起来,换句话说就是从S4/S5状态到S0状态的实现,就是你想办法把你给CPU的各个电按下面时序跑完就好了。在保证电路设计的情况下哈,只要你按时序跑完,CPU肯定就启动了,也就到了S0阶段。

图片

图 S4/S5到S0开机时序图

那么,你能猜到了吧,S0到S4/S5是咋弄,其实也一样,也是跑电时序。但是……硬件工程师又问了,板子系统正好好的跑着呢,我咋知道要去跑掉电时序呢?这个问题问的很好。去执行掉电时序,总是要收到信号的,那么这个信号在时序图中是能够看出来的,就是图中标绿的部分。PWR_CTR0、PWR_CTR1这两个是CPU芯片上的两个管脚,当我们在OS系统下点了休眠或者关机命令时,系统肯定是要先去保存自己的状态到硬盘,当保存完了,OS会通过PWR_CTR0、PWR_CTR1这两个管脚,发送脉冲出来(应该是4脉冲代表重启,8脉冲代表转S3状态,12脉冲代表转S4/S5状态),告诉外边可以去跑掉电时序了。外边收到这个脉冲后,自己根据掉电时序去跑就可以了。

图片

图 S0到S4/S5关机时序图

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

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

相关文章

XP Power电源模块替代 HVF124000D-10W HVF15A6000D-10W 直流升压高压单路双路输出升压模块

F Features 最低工作电压:0.7V电压隔离:1000VDC /3000VDC 平均无故障时间: > 800,000 小时短路与电弧保护无最低负载要求:可空载工作输入电压:5、12、15、24VDCOutput 100,200、300、400、500 、600、800、 1000…

问道管理 :现金流若充裕 回购应是常态

许多闻名企业家将是否具有富余的现金流,置于企业运营风险的首位。看上去巨大的公司由于现金流开裂而轰然坍毁,已层出不穷。而富余的现金流是用于运营回购、股票分红还是理财出资,表现着公司对行业前景和估值水平的判别。 现金流富余的公司&am…

无套路,财务数据分析-多组织损益表分析分享

在报表众多的财务数据分析中,损益表是老板们最关注的报表,特别是当有多组织时,损益表的分析就变得更加重要了。以前受限于数据分析工具,做损益表分析时很难做到多维度灵活分析,但随着BI数据可视化工具的发展&#xff0…

【力扣 第 360 场周赛】题解(一题待补)

目录 2833. 距离原点最远的点2834. 找出美丽数组的最小和2835. 使子序列的和等于目标的最少操作次数TODO 2836. 在传球游戏中最大化函数值 这场比赛排名第 1 - 1000 名的参赛者 可获「NIO 蔚来」简历内推机会,比有的场次前十才给容易多了。 2833. 距离原点最远的点…

python下又一款漂亮超炫酷的动态数据可视化工具——可动态交互

python下有很多漂亮的数据可视化库,例如 Matplotlib、Seaborn、Bokeh、Plotly、Pyecharts等等,我们直接使用这些第三方库来进行漂亮的数据可视化操作。虽然这些库都可以很好的展示数据,但是在实现动态可交互上,很多库并不支持动态…

ssm公司信息管理系统源码和论文

ssm公司信息管理系统源码和论文071 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳…

LInux之chrony服务器

目录 场景 重要性 LInux的两个时钟 硬件时钟 系统时钟 NTP协议 Chrony介绍 定义 组成 --- chronyd和chronyc 安装与配置 安装 Chrony配置文件分析 同步时间服务器 chronyc命令 chronyc sources输出分析 其它命令 查看时间服务器的状态 查看时间服务器是否在线 …

OpenCV为老照片,黑白照片增加色彩

Colorful Image Colorization 图片的颜色上色,主要使用到了CNN卷积神经网络,作者在ImageNet数据集上进行了大量的训练,并将此问题使用在分类任务中,以解决问题的潜在的不确定性,并在训练时使用颜色重新平衡的损失函数方…

气传导耳机哪个品牌好?推荐几款非常不错的气传导耳机

​气传导耳机能够提供高品质的音效,同时保持耳道的开放,让你在享受音乐的同时保持对外界的感知,户外使用安全性更高。还有很多人对气传导耳机不了解的,以下是我们为大家推荐的四款气传导耳机,仅供大家参考。 NO1&…

【2023最新版】R安装(直接+Anaconda)及使用(Pycharm配置R)教程

目录 一、R语言 1. R官网 2. R介绍 二、直接安装R 1. 下载 2. 安装 三、Pycharm使用R 1. 安装Pycharm 2. R Language for IntelliJ插件 3. R设置 报错 4. R软件包 安装 加载 查看已安装的包 四、使用Anaconda创建R语言虚拟环境 1. 安装Anaconda 2. 创建R语言…

9 款值得您花钱的最佳 PDF 编辑器

PDF 格式在 90 年代初一推出就开始流行。PDF 文件便于携带、易于共享、阅读有趣,但难以编辑。有什么不喜欢的呢?与其他格式相比,无论大小的企业都更喜欢 PDF,因为他们不喜欢其他人篡改他们的文档。 无论是指南、职业道德还是展示…

2023年05月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:怪盗基德的滑翔翼 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天&#xff…

element——switch接口成功后赋值打开开关

应用场景 基本用法使用v-model双向绑定值,进行开关控制 例子1:需求: **点击switch,出弹窗,点击弹窗保存按钮调接口成功后再赋值(row.orderButtonValue“1”)打开switch开的状态变颜色。 在vue 中使用 :va…

【openEuler创新项目探索】一个Java端的向量化BLAS库VectorBLAS

VectorBLAS简介 VectorBLAS是一个使用Java语言实现的向量化BLAS高性能库,目前已在openEuler社区开源。 VectorBLAS通过循环展开、矩阵分块和内存布局优化等算法优化,对BLAS函数进行了深度优化,并利用VectorAPI JDK提供的多种向量化API实现。…

快速学习ES6新特性Promise之实例代码

&#xff08;一&#xff09;首先用setTimeout模拟一个异步请求&#xff0c;然后封装成一个new Promise <script type"text/javascript">function createAudioFileAsync() {console.log(调用返回数据前);let newPromise new Promise((resolve, reject) > {…

电子邮件营销模板怎么写?如何做营销邮件?怎么设计EDM邮件模板?

推荐的电子邮件营销模板有哪些&#xff1f; 电子邮件营销模板是现代营销策略中的重要组成部分。通过精心设计的邮件模板&#xff0c;您可以有效地吸引客户&#xff0c;传达信息&#xff0c;并提高销售率。在本文中&#xff0c;我们将介绍如何撰写出色的电子邮件营销模板&#x…

猫头虎博主赠书一期:《Kubernetes原生微服务开发》

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

C语言(第三十三天)

3.1.2 画图推演 3.2 举例2&#xff1a;顺序打印一个整数的每一位 输入一个整数m&#xff0c;打印这个按照顺序打印整数的每一位。 比如&#xff1a; 输入&#xff1a;1234 输出&#xff1a;1 2 3 4 输入&#xff1a;520 输出&#xff1a;5 2 0 3.2.1 分析和代码实现 这个题目&a…

算法通关村第8关【黄金】| 寻找祖先问题

思路&#xff1a;递归三部曲 第一步&#xff1a;确定参数和返回值 题目要求找到指定的结点&#xff0c;就需要返回结点。 题目又涉及到p,q就需要传入p,q&#xff0c;需要遍历传入root 第二步&#xff1a;确定终止条件 当遍历到结点为空说明到底没找到返回空 或者遍历到p,…

cyclictest stress 工具 使用

工具介绍 1. Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异&#xff0c;以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟 2.stress是Linux的一个压力测试工具&#xff0c;可以对CPU、Memory、IO、磁盘进行…