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

图片

一、啥是自主可控

国产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.mzph.cn/news/60888.shtml

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

相关文章

SOD-123FL贴片整流二极管,有哪些型号?

近日发现,客户对整流二极管的需求特别大。常有客户前来东沃电子咨询整流二极管型号参数、选型、替代、价格、交期、样品等方面的问题。那么,关于DS1A、DS1B、DS1D、DS1G、DS1J、DS1K、DS1M贴片整流二极管,您知道多少呢?东沃电子推…

【微服务部署】06-日志集成

文章目录 1. EFK日志三件套集成1.1 核心组件1.2 部署 2. Exceptionless日志系统2.1 Exceptionless核心特性2.2 Exceptionless部署文件2.3 K8s中使用Exceptionless 1. EFK日志三件套集成 1.1 核心组件 Elasticsearch(存储)Fluentd(收集器&am…

W5100S-EVB-PICO主动PING主机IP检测连通性(十)

前言 上一章节我们用我们开发板在UDP组播模式下进行数据回环测试,本章我们用开发板去主动ping主机IP地址来检测与该主机之间网络的连通性。 什么是PING? PING是一种命令, 是用来探测主机到主机之间是否可通信,如果不能ping到某台…

LeetCodeHot100python版本:单调栈,栈,队列,堆

单调栈 739. 每日温度 42. 接雨水 双指针 单调栈(横向求解) ​​​​​​84. 柱状图中最大的矩形 栈和队列 队列:先入先出 栈:先入后出 两个栈 模拟 队列 一个队列 可以模拟 栈 20. 有效的括号 ​​​​​​155. 最小栈 394. 字符串解码 堆 215. 数组中的第K个最大元素 (…

STM32 Cubemx 同名外设中断及回调

文章目录 前言示例工程个人理解 前言 最近在学习STM32,采用HAL库开发方式。记录一下同名外设中断及回调。 这里提及的同名外设指USART1/2之类的相同外设,但不是同一个instance。 示例工程 以使用cubemx配置两个同名外设EXTI0/EXT4为例。 在NVIC配置…

JS三座大山 —— 原型和原型链

系列文章目录 内容链接2023前端面试笔记HTML52023前端面试笔记CSS3 文章目录 系列文章目录前言一、原型是什么?二、原型链是什么?2.1 原型链全方面解析2.2 为什么构造函数也有原型? 总结 前言 理解原型和原型链可以帮助我们更好地理解 Java…

传统分拣弊端明显,AI机器视觉赋能物流行业包裹分类产线数智化升级

随着电子商务的快速发展,物流行业的包裹数量持续增长,给物流企业带来了巨大的运营压力。目前,国内大型物流运转中心已开始采用机器视觉自动化设备,但多数快递公司处于半自动化状态,中小型物流分拣中心目前仍靠人工录入…

每日一题——旋转图像

旋转图像 题目链接 方法一:利用辅助数组 通过对示例的观察和分析,我们可以得到这样的结论: 对于原数组的下标为i行元素,顺时针旋转九十度后,都变成了下标为(n-1-i)列元素。如图所示&#xff…

代替forever下一个部署node的持久化工具---pm2

最近有个后端项目,用的是node,在持久化的时候会挂掉,详细了解到用的是nohup,然后先详细了解了一下nohup nohup是一个Linux命令,用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行1nohup的英文全称…

基于RabbitMQ的模拟消息队列需求文档

文章目录 一、项目背景二、需求分析1.核心概念2.BrokerServer核心组件3.核心API4.交换机类型5.持久化6.网络通信7.消息应答 三、消息队列模块划分 一、项目背景 什么是消息队列? 消息队列就是,基于阻塞队列,封装成一个独立的服务器程序&#…

Nginx百科之gzip压缩、黑白名单、防盗链、零拷贝、跨域、双机热备

引言 早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业…

three.js渲染带动画的glb文件

1. 准备工作 将下列文件在three.js的包中找到,注意的是我这里使用的是模块化版本的,这里不知道模块化的,可以先去看一下es6的模块化。 控制器: OrbitControls.js 加载器:GLTFLoader.js 材质: RoomEnvironm…

数据时代的必备利器:数据可视化工具的崭新价值

在当今信息时代,数据扮演着越来越重要的角色,而数据的可视化呈现正是一种强大的工具,能够帮助我们更好地理解和利用这些数据。虽然Excel和PPT在处理数据方面有着不可否认的作用,但在处理大规模、复杂数据时,数据可视化…

微信小程序 基于Android的美容理发师预约管理系统

,本系统主要根据管理员、用户及理发师的实际需要,方便用户利用互联网实现对商品信息进行立即订购,同时让管理者可以通过这个系统对用户实际需求以及各信息进行管理。设计该系统主要目的是为了方便用户、理发师可以有一个非常好的平台体验&…

文心一言 VS 讯飞星火 VS chatgpt (84)-- 算法导论8.2 1题

一、用go语言,参照图8-2 的方法,说明 COUNTING-SORT 在数组 A(6,0,2,0,1,3,4,6,1,3,2)上的操作过程。 文心一言: Counti…

现货黄金走势图中的止盈点

对平仓时机的把握能力,是衡量现货黄金投资者水平的重要标志,止盈点设置得是否合理,在行情兑现的时候能否及时地离场,是事关投资者账户浮盈最终能否落袋为安的“头等大事”,要在现货黄金走势图中把握止盈点,…

Linux-安装redis6.2.1及主备复制模式(replication)

Linux-安装redis6.2.1 下载redis6.2.1资源上传至安装目录解压及编译解压修改名称编译 修改配置文件主节点从节点 启动及测试启动主节点从节点 测试 下载redis6.2.1资源 地址》https://redis.io/download/ 上传至安装目录 例:/data/replication/ 解压及编译 解…

【kubernetes系列】Calico原理及配置

概述 Calico是针对容器,虚拟机和基于主机的本机工作负载的开源网络和网络安全解决方案。 Calico支持广泛的平台,包括Kubernetes,OpenShift,Docker EE,OpenStack和裸机服务。 Calico在每个计算节点都利用Linux Kernel实…

DP4863 国产双声道音频功率放大器芯片

产品概述: DP4863 电路是一种双声道桥接音频功率放大器。在 5 V 电源电压下,它能向 4 Ω 负载提供 2.2 W 的输出功率,或向 3 Ω 负载提供 2.5 W的输出功率,THD N 小于 1 %。此外,它还具有耳机输入端,可驱…

《Go 语言第一课》课程学习笔记(十四)

接口 认识接口类型 接口类型是由 type 和 interface 关键字定义的一组方法集合,其中,方法集合唯一确定了这个接口类型所表示的接口。type MyInterface interface {M1(int) errorM2(io.Writer, ...string) }我们在接口类型的方法集合中声明的方法&#…