SoC设计流程
迪丽瓦拉
2025-06-01 14:17:39
0

此为一个学习记录文,内容可能从书上《SoC设计方法与实现,郭炜等电子工业出版社》来,也可能从网络来。

目录

软、硬件协同设计:

基于标准单元的SoC设计流程:


软、硬件协同设计:

SoC 通常被称作系统级芯片或者片上系统,作为一个完整的系统,其包含了硬件和软件两部分内容。这里所说的硬件指 SoC芯片部分,软件是指运行在 SoC 芯片上的系统及应用。

软、硬件协同设计指的是软、硬件的设计同步进行,在系统定义的初始阶段两者就紧密相连。近年来,由于电子系统级设计 (ESL, Electronic Sxstern Level Design)工具的发展,软、硬件协同设计已被逐渐采用。
这种方法使软件设计者在硬件设计完成之前就可以获得软件开发的虚拟硬件平台,在虚拟平台上开发应用软件,评估系统架构设计,从而使硬件设计工程师和软件设计工程师联合进行 SoC 系统芯片的开发及验证。
这样并行设计不仅减少了产品开发时间,同时大大提高了芯片一次流片成功的概率。

过程:

系统需求说明:系统设计从确定所需的功能开始,包含系统基本输入和输出,及基本算法需求,以及系统要求的功能、性能、功耗、成本和开发时间等。这一步确定系统的设计流程。

算法建模与仿真:确定流程后,设计者使用EDA工具创建整个系统的高级算法模型 和 仿真模型。有了模型,就可以得到软、硬件协调仿真所需的可执行说明文档。

软、硬件划分过程:软、硬件划分和任务分配,划分哪些功能由硬件完成,哪些由软件完成。划分的合理性对系统的实现比较重要。通常,在复杂的系统中,有些功能既可以用软件实现,也可以用硬件实现,这取决于所要达到的性能指标与实现的复杂程度及成本控制等因素。

采用硬件作为解决方案的好处有:由于增加了特定的硬件实现模块,(通常是硬件加速器),因而可使系统的性能提升,仅就速度而言可以提高 10倍,甚至 100 倍;增加的硬件所提供的功能可以分担原先处理器的部分功能,这一点有助于降低处理器的复杂程度,使系统整体显得简单。

硬件解诀方案也存在一些不利的地方:添加新的硬件必然会提高成本,主要花费在购买IP和支付版权费等方面;硬件的研发周期通常都比较长,中等规模的开发团队开发一套复杂程度一般的硬件系统至少需要3个月的时间;要改正硬件设计存在的错误,可能需要再次流片;相比于软件设计工具,硬件设计工具(EDA)要昂贵许多,这也使得设计成本增加。

采用软件实现作为解决方案的好处有:软件产品的开发更灵活,修改软件设计的错误成本低、周期短;受芯片销量的影响很小,即使所开发的软件不用在某一特定芯片上,也可以应用到其他硬件设备上,因而市场的风险比较低。软件解决方案也存在着难以克服的不足之处:软件实现从性能上来说不及硬件实现;采用软件实现对算法的要求更高,这又对处理器的速度、存储器的容量提出了更严格的条件,一般还需要实时操作系统的支持。

软、硬件划分的过程通常是将应用一一在特定的系统架构上映射,搭建系统的虚拟平台,然后在平台上进行性能评估,多次优化系统架构。系统架构的选择需要在成本和性能之间折中

软、硬件同步设计:

硬件设计包括:RTL设计和集成、综合、布局布线及最后的流片,

软件设计包括:算法优化、应用开发、以及操作系统、接口驱动、和应用软件的开发。

硬件系统测试:协同设计的最后一步是硬件系统的测试。系统测试策略是根据设计的层次结构制定的。首先是测试子模块的正确性,接着验证子模块的接口部分及总线功能,然后在整个搭建好的芯片上运行实际的应用软件或测试平台。这一步通常也称为软、硬件协同仿真验证,软件將作为硬件设计的验证向量,这样不仅可以找出硬件设计中的问题,同时也验证了软件本身的正确性。可以说验证仿真贯穿于整个软、硬件协同设计的流程中,为了降低设计风险,在流程的每一步都会进行不同形式的验证和分析。
总之,协同设计方法的关键是在抽象级的系统建模。目前,对该领城的研究非常活跃,将来可以预见描述语言、结构定义及算法划分工具会被广泛使用。

基于标准单元的SoC设计流程:

soc芯片设计(硬件设计)是以IP核(满足特定规范,能在设计中复用的功能模块)为基础,以分层次的硬件描述语言为系统功能和结构的主要描述手段,并借助于EDA 工具进行芯片设计的过程。

设计周期、进度和人力资源安排是关系到产品成败与否的关键,因为目前电子产品的市场生命周期越来越短,这就需要迅速地推出自己的产品来抢占市场。        

1. 硬件设计定义说明(Hardware Design Specification)
硬件设计定义说明描述芯片总体结构、规格参数、模块划分、使用的总线,以及各个模块的详细定义等。
2.模块设计及 IP 复用 (Module Design & IP Reuse)
模块设计及 IP 复用是根据硬件设计所划分出的功能模块,确定需要重新设计的部分及可复用的 IP核。IP 核可自主研发或者购买其他公司的 IP。目前,设计的输人是采用硬件描述语言(HDL),如 Verilog 或 VHDL,所以,数字模块的设计通常称为 RTL代码编写。
3.顶层模块集成 (Top Level Integration)
顶层模块集成将各个不同的功能模块,包括新设计的与复用的整合在一起,形成一个完整的设计。通常采用硬件描述语言对电路进行描述,其中需要考虑系统时钟/复位、I/O 环等问题。


4. 前仿真 (Pre-layout Simulation)
前仿真也叫 RTL级仿真,功能仿真。通过 HDL 放真器验证电路逻辑功能是否有效,即HDL描述是否符合设计所定义的功能期望。在前仿真时,通常与具体的电路实现无关,没有时序信息。
5. 逻辑综合 (Logic Synthesis)

未完,待后期待续,,,,,

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...