当前位置: 首页 > news >正文

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

图片

一、啥是自主可控

国产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关机时序图

相关文章:

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

一、啥是自主可控 国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但是真正能叫做自主可控的CPU厂商,只有6家。那啥是自主可控?首先来不严谨的讲下现在数字芯片是怎么做的设计。FPGA大家都知道,可以通过Verilog…...

了解 HarmonyOS

引言 在开始 HarmonyOS 开发之前,了解其背景、特点和架构是非常重要的。本章将为你提供一个全面的 HarmonyOS 概览。 目录 什么是 HarmonyOS HarmonyOS 的发展历程 HarmonyOS 的特点 HarmonyOS 的架构 HarmonyOS 与其他操作系统的比较 1. 什么是 HarmonyOS …...

【校招VIP】产品面试之面试官的真实意图

考点介绍: 大厂面试时,面试官提出的问题除了了解经历和想法外,最看重的是思维逻辑能力、团队协作能力和协调能力。 『产品面试之面试官的真实意图』相关题目及解析内容可点击文章末尾链接查看! 一、考点题目 1. 你遇到的最大的…...

实现远程访问Linux堡垒机:通过JumpServer系统进行安全的服务器管理

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…...

Go 1.21新增的 maps 包详解

maps 包提供了几个非常有用的用于操作 map 类型(任何类型的 map)的函数,本文接下来详细介绍下这几个函数。 maps.Clone 定义如下: func Clone[M ~map[K]V, K comparable, V any](m M) M 返回 m 的一个副本,因为新的…...

《向量数据库指南》——腾讯云向量数据库(Tencent Cloud VectorDB) SDK 正式开源

腾讯云向量数据库 SDK 宣布正式开源。根据介绍,腾讯云向量数据库(Tencent Cloud VectorDB)的 Python SDK 与 Java SDK 是基于数据库设计模型,遵循 HTTP 协议,将 API 封装成易于使用的 Python 与 Java 函数或类,为开发者提供了更加友好、更加便捷的数据库使用和管理方式。…...

Tutorial: Mathmatical Derivation of Backpropagation

目录 1. 概要 2. Gradient Descent 3. Chain rule 3.1 单变量基本链式法则 3.2 单变量全微分链式法则 3.3 小贴士:微分、导数、导函数是什么关系? 4. What and why backpropagation? 5. Backpropagation for a simple neural network 5.1 基于…...

如何在 Linux 中设置 SSH 无密码登录

SSH(Secure SHELL)是一种开源且可信的网络协议,用于登录远程服务器以执行命令和程序。 它还用于使用安全复制 (SCP) 命令和 rsync 命令通过网络将文件从一台计算机传输到另一台计算机。 在本文[1]中,我们将向您展示如何在基于 RHE…...

什么时候用增量式PID,什么时候用位置式PID

PID控制器原理: 增量式PID: 位置式PID: 什么时候用位置式PID,什么时候用增量式PID: 在设计PID控制器时,应该考虑下什么时候用增量式,什么时候用位置式。需要看控制器输出u与控制目标之间的关系…...

Go语言入门记录:从基础到变量、函数、控制语句、包引用、interface、panic、go协程、Channel、sync下的waitGroup和Once等

程序入口文件的包名必须是main,但主程序文件所在文件夹名称不必须是main,即我们下图hello_world.go在main中,所以感觉package main写顺理成章,但是如果我们把main目录名称改成随便的名字如filename也是可以运行的,所以…...

位运算进阶操作

位运算的进阶操作,适合做题的时候用,共10点 1.通过位运算与特定的位模式进行掩码操作,可以提取、设置或清除特定的位信息。例如,我们可以使用位掩码来检查一个数的二进制表示中特定位置是否为1。 bool checkBit(int num, int po…...

sql:SQL优化知识点记录(四)

(1)explain之ref介绍 type下的ref是非唯一性索引扫描具体的一个值 ref属性 例如:ti表先加载,const是常量 t1.other_column是个t1表常量 test.t1.ID:test库t1表的ID字段 t1表引用了shared库的t2表的col1字段&#x…...

Java----Sentinel持久化规则启动

java -jar -Dnacos.add8848 你的sentinel源码修改包.jar 前期准备&#xff1a; 1.引入依赖 在order-service中引入sentinel监听nacos的依赖&#xff1a; <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</…...

Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管…...

无涯教程-Android - Grid View函数

Android GridView在二维滚动网格(行和列)中显示项目&#xff0c;并且网格项目不一定是预定的&#xff0c;但它们会使用ListAdapter自动插入到布局中 Grid View - Grid view ListView 和 GridView 是 AdapterView 的子类&#xff0c;可以通过将它们绑定到 Adapter 来填充&#x…...

【第四阶段】kotlin语言的解构语法过滤元素

1.list集合的解构操作 package Stage4fun main() {val list listOf("java","kotlin","c")//元素解构var(v1,v2,v3)listprint("v1$v1,v2$v2,v3$v3") }执行结果 2.将上述代码转化为Java代码 使用Java 代码需要大量书写 3.解构过滤元…...

和24考研说拜拜,不考研读中外合作办学硕士——人大女王金融硕士

23考研失利同学&#xff0c;大多都会有这样的疑虑&#xff0c;是再试一次还是选择其他方式呢&#xff1f;其实&#xff0c;并不用执着于全国联考&#xff0c;中外合作办学硕士或许更适合你。近年来&#xff0c;经济迅速发展&#xff0c;经济全球化不断扩大&#xff0c;金融方向…...

https比http安全在哪

HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是HTTP的安全版本&#xff0c;它在HTTP的基础上添加了安全性和加密机制。以下是HTTPS相对于HTTP的主要安全性优势&#xff1a; 数据加密&#xff1a;HTTPS使用TLS&#xff08;Transport Layer Security&#x…...

基于Java的代驾管理系统 springboot+vue,mysql数据库,前台用户、商户+后台管理员,有一万五千字报告,完美运行

基于Java的代驾管理系统 springbootvue&#xff0c;mysql数据库&#xff0c;前台用户、商户后台管理员&#xff0c;有一万五千字报告&#xff0c;完美运行。 系统完美实现用户下单叫车、商户接单、管理员管理系统&#xff0c;页面良好&#xff0c;系统流畅。 各角色功能&#x…...

广播、组播

1.广播 向子网中多台计算机发送消息&#xff0c;并且子网中所有的计算机都可以接收到发送方发送的消息&#xff0c;每个广播消息都包含一个特殊的IP地址&#xff0c;这个IP中子网内主机标志部分的二进制全部为1。 a.只能在局域网中使用。 b.客户端需要绑定服务器广播使用的端口…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...