DC与DCT DCG的区别

先进工艺不再wire load model进行静态时序分析,否则综合结果与后端物理电路差距很大,因此DC综合工具也进行了多次迭代,DC工具有两种模式,包括wire load mode和Topographical Mode,也就是对应的DC Expert和DC Ultra。

DC Expert:基础版的DC工具,采用线负载模型wire load model 进行延时计算,启动命令是dc_shell。

DC Ultra:升级版的DC工具,在DC Expert基础上,优化升级了算法,启动命令是compile­_ultra。其中又可以分为DC Topographical和DC Graphical。DC Topographical使用拓扑技术,用dc_shell -topo命令启动,使用floorplan信息预估线上延时。DC Graphical在DCT 的基础上,进一步升级了功能,不仅可以对multicorner-multimode design进行优化,还可以对congestion进行优化。

图片

景芯12nm 2.5GHz A72实战培训项目由于采用FinFET先进工艺,我们需要将TOP的四颗CPU进行partition,然后写出CPU的floorplan,然后回到DC工具做CPU的DCG综合,本项目不再使用DC,选择使用Fusion Compiler工具来做CPU的DCG综合。

图片

 12nm工艺,2.5GHz频率,DVFS低功耗A72后端培训

 01 

12nm Cortex-A72后端实战

本项目是真实项目实战培训,低功耗UPF设计,后端参数如下:

工艺:12nm

频率:2.5GHz

资源:2000_0000 instances

低功耗:DVFS

为了满足广大学员的诉求,我们将12nm A72 TOP课程分为两个版本:

1、基础版(价格是知名机构的1/5,全国最低价)

2、进阶版(低功耗、hierarchy UPF、Stampling)!业界最先进技术!

进阶版本的低功耗设计如下:7个power domain

图片

Stampling打起来真是高级手工艺术,全网唯一:

图片

Flow:Partition Flow

图片

时钟结构分析:

图片

复位结构分析:

图片

12nm 2.5GHz的A72实战训练营需要特别设置Latency,TOP结构如下,参加过景芯SoC全流程训练营的同学都知道CRG部分我们会手动例化ICG来控制时钟,具体实现参见40nm景芯SoC全流程训练项目,本文介绍下12nm 2.5GHz的A72实战训练营的Latency背景,欢迎加入实战。

时钟传播延迟Latency,通常也被称为插入延迟(insertion delay)。它可以分为两个部分,时钟源插入延迟(source latency)和时钟网络延迟(Network latency)。

图片

大部分训练营同学表示平时都直接将Latency设置为0了,那latency值有什么用呢?其实这相当于一个target值,CTS的engine会根据你设置的latency值来插入buffer来实现你的latency target值。

下图分为1st Level ICG和2nd Level ICG,请问这些ICG为什么要分为两层?

请问,为什么不全部把Latency设置为0?2nd Level ICG的latency应该设置为多少呢?

图片

latency大小直接影响clock skew的计算。时钟树是以平衡为目的,假设对一个root和sink设置了400ps的latency值,那么对另外的sink而言,就算没有给定latency值,CTS为了得到较小的skew,也会将另外的sink做成400ps的latency。请问,为何要做短时钟树?因为过大的latency值会受到OCV和PVT等因素的影响较大,并有time derate的存在。

图片

 02

28nm Cortex-A7后端实战

此外,我们提供全国最低价的28nm A7后端设计,价格惊喜!打垮动辄1.5w-2.5w的后端培训价格!

图片

我们再来对比下A72与A7的资源。A72 Gate数目是A7的13倍!如果都采用28nm制程,A72的面积应该是1180790um^2,实际A72采用12nm制程面积是486100um^2,1180790/486100=2.4,符合摩尔定律。

Cortex-A7单核:

Gates=240291 Cells=118421

Cortex-A72单核:

Gates=3125649 Cells=1207766

28nm Cortex-A7单核:

Area=90830.1 um^2

12nm Cortex-A72单核:

Area=486100.9 um^2

28nm A7后端设计课程采用的全国最低价格来推广,本文不做过多介绍,本文重点介绍下先进的12nm A72进阶版本课程。分享个例子,比如,Cortex-A72低功耗设计,DBG domain的isolation为何用VDDS_maia_noncpu供电而不是TOP的VDD?

图片

答:因为dbg的上一级是noncpu,noncpu下面分成dbg和两个tbnk。

再分享个例子,比如,Cortex-A72低功耗设计,这个switch cell是双开关吗?答:不是,之所以分trickle和hammer,是为了解决hash current大电流,先开trickle,然后再开hammer。

图片

再分享个例子,比如,Cortex-A72进阶版本课程的低功耗例子:请问,如果iso cell输出都要放parent,输入放self,那么下面-applies_to_outputs对应的-location为何是self?

图片

答:这个需要了解CPU的内部设计架构,tbnk掉电 VDDS_maia_noncpu也必然掉电,pst如下,所以-applies_to_outputs对应的-location是可以的,那么注意下debug domain呢?

图片

实际上,没有tbnk到debug domain的信号,因此脚本如下:

图片

再分享个例子,比如,Cortex-A72进阶版本课程的低功耗例子:为何non_cpu的SRAM的VDD  VDDM都接的可关闭电源?SRAM的VDD  VDDM分别是常开、和retention电源吧?

图片

答:本来是VDDM作为retention电源设计的,VDD关掉后 VDDM可以供电作为retention使用,但是此处没有去做memory的双电源,sram当成单电源使用,不然sram无法彻底断电。

再分享个例子,比如,Cortex-A72基础版课程有学员的Cortex-A72 maia_cpu LVS通过, 但是MAIA顶层LVS比对不过,我们来定位一下。

以FE_OFN4326_cfgend_cpu1_o为例,点击下图FE_OFN4326_cfgend_cpu1_o:

图片

找到calibredrv错误坐标:(1949,139)

对应到innovus去看坐标:(1949,139)

看到maia_cpu的pin脚过于密集,造成顶层连接pin脚时候会无法绕线,从而导致innovus从maia_cpu上面走线,形成short。尽管maia_cpu带了blockage,但是invs没有足够的连接pin的routing resource,也就只能在maia_cpu上面去try了。

图片

修改办法很简单,具体操作option参见知识星球。

图片

保存db,重新LVS,比对通过。

图片

03

12nm Cortex-A72—DFT实战

开发完成,全国最低价!

04

景芯SoC—全芯片UPF后端实战

景芯SoC培训的全芯片UPF低功耗设计(含DFT设计)

图片

景芯SoC训练营培训项目,低功耗设计前,功耗为27.9mW。

图片

低功耗设计后,功耗为0.285mW,功耗降低98.9%!

图片

图片

图片

7天冲刺PR训练营有同学问如何给IO添加PAD?请思考景芯SoC的IO和PAD如何实现最佳?

图片

7天冲刺PR训练营有同学问,同样的floorplan,有些同学很快跑完,有些同学则遇到大量DRC问题(EDA工具不停iteration)导致工具始终无法跑完,具体什么问题呢?

图片

首先,小编发现该同学的stripe把TM2定义为了horizontal,而熟悉景芯工艺的同学知道,TM2的preference direction是VERTICAL。

图片

查询景芯的lef库文件也可以确认:

图片

用错方向有多大影响呢?大家上景芯SoC的后端flow实践一下吧,实践出真知。

7天冲刺PR训练营有同学问,为啥PR花了一天一夜24个小时完成布线还大量DRC错误?小编已经将设计规模尽可能减小以加速PR设计,实际上2小时就可以跑完routing,为何这么慢?原因就是低功耗单元的走线。具体原因及解决办法欢迎加入景芯训练营讨论。

图片

其错误主要集中在M4上,请思考如何解决。

图片

7天冲刺PR训练营有同学问,power switch cell的secondPG pin(VDDG)从M1接出的,而不是M2, 请思考有什么问题?如何解决?

图片

7天冲刺PR训练营有同学问,景芯SoC培训营同学遇到Corner Pad LVS不过怎么处理?

图片

完成景芯SoC培训的前端设计仿真、DFT后,我们来到后端flow,本教程教你一键式跑完数字后端flow。

图片

生成脚本命令如下:

tclsh ./SCRIPTS/gen_flow.tcl -m flat all

图片

生成flow脚本之前需要配置setup.tcl等相关参数,具体参见【全网唯一】【全栈芯片工程师】提供自研的景芯SoC前端工程、DFT工程、后端工程,带你从算法、前端、DFT到后端全流程参与SoC项目设计。

景芯SoC训练营的同学问,为何innovus读取做好的floorplan def文件报Error? 首先看log:

图片

Reading floorplan file - ./data_in/DIGITAL_TOP.def (mem = 1595.0M).

#% Begin Load floorplan data ... (date=10/23 22:38:01, mem=1579.3M)

**ERROR: (IMPFP-710): File version unknown is too old.

以前EDI的时期,我们可以通过定义fp_file的方式来加载floorplan:

set vars(fp_file)        "./data_in/DIGITAL_TOP.def"

但是现在innovus升级并放弃了fp_file的加载方式,当然也可以用老版本的EDI9.1及以前版本来加入fp_file,然后转存为新版本,这方式明显没有必要。正如下log提示所说,检查log是非常好的工程师习惯。

Input floorplan file is too old and is not supported in EDI 10.1 and newer.

You can use EDI 9.1 and before to read it in, then save again to create new version.

小编的直觉告诉我,先去看看同学保存的def文件是哪个def版本?

图片

同学保存方式如下:

图片

那么请问如何解决?请大家加入景芯训练营实践。

景芯SoC用了很多异步FIFO,关注异步RTL实现的同学,可以抓取异步FIFO出来看一下版图连线:

图片

查看下所有异步FIFO cell的面积;

dbget [dbget top.insts.pstatus unplaced -p].area

查下所有异步FIFO的cell的名字:

dbget [dbget top.insts.pstatus unplaced -p].name

那么怎么抓出异步路径来观察版图走线呢?如何让report_timing呢?更多内容参见知识星球和SoC训练营。

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

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

相关文章

python有哪些应用

Python是一种功能强大且灵活的编程语言,具有广泛的应用领域。以下是Python常见的一些应用: Web开发: Python常用于构建Web应用程序。流行的Web框架包括Django、Flask和Pyramid等,它们提供了强大的工具和库来简化开发过程。 数据科…

unity hub (第一部)初学配置

1、安装Unity Hub 2、设置中文 3、安装编辑器 4、新建项目 5、新建完成后进入编辑器 6、 编辑器设置中文 editPreferencesLanguages选择中文

【Webpack】Webpack 优化

提升开发体验 使用 Source Map 让开发或上线时代码报错能有更加准确的错误提示。 提升 webpack 提升打包构建速度 使用 HotModuleReplacement 让开发时只重新编译打包更新变化了的代码,不变的代码使用缓存,从而使更新速度更快。使用 OneOf 让资源文件…

机器学习基础(五)监督与非监督学习的结合

导语:上一节我们详细探索非监督学习的进阶应用,详情可见: 机器学习基础(四)非监督学习的进阶探索-CSDN博客文章浏览阅读613次,点赞15次,收藏13次。非监督学习像一位探险家,挖掘未标…

C语言实现五子棋小游戏

代码采用C语言编写&#xff0c;结合图形库&#xff0c;实现五子棋小游戏&#xff0c;代码如下&#xff1a; #include<fstream> #include <stdlib.h> #include <graphics.h> #include <stdio.h> #include<bits/stdc.h> #include <windows.h&…

电路设计(25)——4位数字频率计的multisim仿真及PCB设计

1.设计要求 使用4位数码管&#xff0c;显示输入信号的频率。完成功能仿真后&#xff0c;用AD软件&#xff0c;画出原理图以及PCB。 2.电路设计 输入信号的参数为&#xff1a; 可见&#xff0c;输入为168HZ&#xff0c;测量值为170HZ&#xff0c;误差在可接受的范围内。 3.PCB设…

Bluesky数据采集框架-2

访问保存的数据 到此&#xff0c;自然想到了"我如何访问我保存的数据&#xff1f;"。从bluesky的视角&#xff0c;那真的不是bluesky的关注&#xff0c;但它是一个合理的问题&#xff0c;因此我们将强调一个特定的场景。 注意&#xff1a;本章假设你正在使用databr…

从零开始手写mmo游戏从框架到爆炸(二十)— 战斗系统一

导航&#xff1a;从零开始手写mmo游戏从框架到爆炸&#xff08;零&#xff09;—— 导航-CSDN博客 规则 我们现在设计并尝试开发战斗系统。战斗系统我们先设定几个规则 1、多人对多人&#xff1a;英雄可以携带宝宝&#xff0c;面对的野怪也可以是成群的&#xff0…

C++ //练习 8.3 什么情况下,下面的while循环会终止?

C Primer&#xff08;第5版&#xff09; 练习 8.3 练习 8.3 什么情况下&#xff0c;下面的while循环会终止&#xff1f; while(cin>>i) /* ... */环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释 当输入条件不为真的时候&am…

AI:134-基于深度学习的社交媒体图像内容分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

【右一的电子笔记】全导航,持续更新...

文章目录 &#x1f4da;计算机基础&#x1f407;高程&#xff08;c&#xff09;&#x1f407;python基础&#x1f407;数据结构&#x1f407;数据库系统概念&#x1f407;计算机网络&#x1f407;计算机组成原理&#x1f407;操作系统 &#x1f4da;大数据&#x1f407;大数据管…

C语言——实用调试技巧——第2篇——(第23篇)

坚持就是胜利 文章目录 一、实例二、如何写出好&#xff08;易于调试&#xff09;的代码1、优秀的代码2、示范&#xff08;1&#xff09;模拟 strcpy 函数方法一&#xff1a;方法二&#xff1a;方法三&#xff1a;有弊端方法四&#xff1a;对方法三进行优化assert 的使用 方法五…

Spring之AOP源码解析(下)

前言 在上一遍文章中,我们主要讲解了ProxyFactory在Spring完成AOP动态代理的过程中发挥的作用。这一篇我们主要讲解这些注解都是如何注入Advisors,然后分析这些Advisors生效的条件 注解都是如何注入Advisor并匹配的 EnableTransactionManagement注解 我们在之前提到EnableT…

C++ const关键字

在C中&#xff0c;const是一个关键字&#xff0c;用于声明常量或者修饰变量、指针、引用等&#xff0c;表示其数值是不可修改的。const关键字的主要作用包括一下几个方面&#xff1a; 一、修饰基本数据类型 基本数据类型&#xff0c;修饰符const可以用在类型说明符前&#xf…

STM32 TCP实现OTA

芯片&#xff1a;stm32f407 开发平台&#xff1a;stm32cubeide 上位机开发平台&#xff1a;visual studio 2017 1. FLASH分配 将flash划分为四个部分&#xff1a; bootloader: 0x8000000-0x800ffff app1: 0x8010000-0x805ffff app2: …

一流的财务:搞数据!!!(干货)

“三流财务给数据&#xff0c;二流财务给分析报告&#xff0c;一流财务给....&#xff08;解决方案&#xff09;“这些文章应该很多人都看到过&#xff0c;这个口号粗看好像很有道理&#xff0c;但笔者并不认同&#xff0c;因为大家都忽略了一个重要的概念&#xff1a;数据&…

什么是rouge metric

采用分类任务的指标评估生成任务的问题 举个例子&#xff0c;在一个seq2seq模型中&#xff0c;黄金标签是“police killed the gunman”&#xff0c;模型输出是"the gunman police killed"&#xff0c;两句话的意思是有差别的&#xff0c;但是从unigram的角度&#…

数字化浪潮下的企业变革:深度解析ERP的崭新篇章

引言&#xff1a; 随着科技的飞速发展&#xff0c;企业正迎来前所未有的数字化浪潮。在这个数字时代&#xff0c;企业资源规划&#xff08;ERP&#xff09;被认为是企业应对挑战、实现创新的重要工具。本文将深入研究ERP的发展历程&#xff0c;聚焦不同行业和场景下的创新应用…

Atomic-flag-tutorial

本文介绍 <atomic> 头文件中最简单的原子类型: atomic_flag。atomic_flag 一种简单的原子布尔类型&#xff0c;只支持两种操作&#xff0c;test_and_set 和 clear。 std::atomic_flag 详解 std::atomic_flag 构造函数 std::atomic_flag 构造函数如下&#xff1a; ato…

ROS2 学习笔记13:创建 ROS2 包

ROS2 学习笔记13&#xff1a;创建 ROS2 包 Background 背景1 什么是ROS2 包2 ROS2包的组成3 工作空间的包 Prerequisites 前提Tasks 任务1 Create a package2 Build a package3 Source the setup file4 Use the package5 Examine package contents6 Customize package.xml Summ…