首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

低功耗设计基础:深入理解Internal Power

之前的文章我们引入了不少低功耗设计的基本概念,同时也介绍过芯片的总体功耗计算方法,其中就包括internal power的定义。今天想深入挖掘internal power以及它在应用过程中有哪些细节需要大家注意。 首先还是回顾一下关于数字芯片的功耗定义:主要由静态功耗(Static Power)和动态功耗(Dynamic Power)组成。二者的主要起因可以参考下图: 简而言之,静态功耗是芯片中的部分或全部电路在通电但不工作的状态下的功耗;动态功耗是芯片在正常工作时因信号翻转引起的功耗。而今天我们想要深挖的internal power,其实是动态功耗的一种。在数字电路中,动态功耗一般分为internal power和switching power,在此我们将重点介绍一下internal power。 很多人都知道internal power的定义是在cell内部由于充放电而产生的功耗,每个cell的功耗数值都可以在.lib文件中通过特定的查表方式获取。其实贡献internal power的因素应该分为两个因素:一是信号翻转时由于NMOS和PMOS同时导通而产生的短暂但巨大的贯穿电流;而是给内部和外部负载充放电所消耗的能量。对于第一种贯穿电流可以参考下图: 而对于第二种充放电引起的功耗,其实不同类型的cell的表现形式略有不同,internal power计算方式和在.lib中的表现形式也不尽相同。我们以三种主要的cell类型来说明: 第一种cell类型:单输入cell。这类cell以inverter为代表,仅有一个输入和输出,它的internal power计算方式最为简单直接, 就是input transiton和output load的二维查表,而且需要注意,这里的internal power是定义在输出端的: 第二种是多输入的组合逻辑门如nand,xor等。这类cell有一种共同点,那就是在特定条件下某一个或者几个pin的输入值对输出不造成影响,例如当nand的A1输入为0时,不管A2的输出是什么,最终输出都是1。此时尽管A2对输出没有贡献,但是它仍然会消耗一部分功耗,而这部分功耗会单独在.lib文件中有所体现: 第三种就是时序逻辑门如DFF。它的特殊之处主要有两点:一是输入的CLK pin即使在锁存的数值没有变化的时候仍然会消耗能量,具体原因大家可以参考DFF的内部结构;二是DFF一般都存在输出Q和取反值QN,每次Q的变化都会导致QN也发生变化,这部分QN的翻转也会消耗额外的能量,因此输出pin上的internal power会变成input, Q和QN负载的三维表格: 以上就是关于internal power的相关介绍,大家可以对照自己手中的项目去印证是否如此,如果有哪里不符合也请留言区告诉我一起讨论。 码字不易,如果你觉得这篇文章帮到了你,请帮忙转发让更多的人看到,谢谢! 重磅消息,粉丝福利! 近期小编开发了一台用于芯片设计的云服务器,和IC企业的设计环境相同,里面包含所有主流前后端EDA工具的最新/次新版本、几种开源45nm/32nm/14nm的工艺库和多个实验项目,非常适合初学者学习。每个人可以有一个独立账号可以随时随地用VNC远程访问服务器,里面的所有资源包括我开发的一些脚本和小工具都免费使用,只需分担一下云服务器的购置费用和服务器开发维护费用即可。小编会带着有需要的同学从头做一个小项目来帮助大家深入理解后端的工作和工具使用方法,而且不会是跑流程就能完成的,需要大家用原生命令一点点把设计做起来。目前首批开放的10个账号已用完,第二批又开放10个账户就等你来!有兴趣的同学可以扫描文章最后左侧的二维码加微信咨询,10个账号先到先得! 如果大家有任何数字后端感兴趣的技术话题想要了解和探讨,欢迎识别左侧二维码加入数字后端交流群。 同时为避免散布广告人士入群骚扰,请同时发送验证信息回答以下问题: IC设计主流EDA工具厂商除了Synopsys,Mentor还有谁? 也欢迎大家识别右侧二维码关注我的知乎: 知乎账号:阎浮提 知乎专栏:数字IC后端设计工程师修炼之路。 本文分享自微信公众号 - 数字后端设计芯讲堂(PhysicalDesign)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

8道Python基础面试练习题

1.26个字母大小写成对打印,例如:Aa,Bb...... for i in range(26): print(chr(65+i)+chr(97+i)) 2.一个list包含10个数字,然后生成一个新的list,要求新的list里面的数都比之前的数多1 list=[2,3,6,4,7,5,1,8,9,0] list1=[] for i in list: list1.append(i+1) print(list1) 3.倒序取出每个单词的第一个字母,例如:I am a good boy!方法1 tre='I am a good boy!' t=tre.split() #print(t) t.reverse() list=[] #print(t) for i in t: list.append(i[0]) print(list) 方法2 a = "I AM A BOY" result = [] for i in a.split()[::-1]: result.append(i[0]) print(result) 4.输入一个自己的生日月份,用if和else判断一下当月是不是你的生日月第一种方法,datetime模块获取时间 import datetime date=datetime.datetime.now() #获取当前时间 # print(date.strftime('%Y-%m-%d')) #把当前时间格式化为可读懂的年月日 r=date.strftime('%m') #把当前时间格式化为可读懂的年月日,只取月份 print(r) #Python学习交流QQ群:579817333 t=input('请输入自己的生日月份:') if t==r: print('true') else: print('不是') 第二种方法,time模块获取时间 import time # date=time.time() #获取当前时间 # print(date) # print(time.localtime(time.time()))#按固定格式显示当前时间 # print(time.strftime('%Y-%m-%d')) #把当前时间格式化为可读懂的年月日 # print(time.strftime('%Y-%m-%d',time.localtime(time.time()))) #把时间格式化为可读懂的年月日,后一个参数可省略 # print(time.strftime('%m',time.localtime(time.time()))) #只取月儿份 #t=time.strftime('%m',time.localtime(time.time()))#只取月儿份 t=time.strftime('%m')#只取月儿份 print(t)#Python学习交流QQ群:579817333 r=input('请输入自己的生日月份:') if t==r: print('true') else: print('不是') 5.输入3个字母:e、a、r,如果输入e,那么推出循环,如果输入a,执行continue,如果输入r,那么再读取一次字母,并打印,用死循环实现。 while True: str = input('请输入三个字母:') if str=='r': print(str) if str=='a': continue if str=='e': break else: print('输入有误') 6.输入3个字母:e、a、r,如果输入e,那么退出循环,如果输入a,执行continue,如果输入r,那么再读取一次字母,并打印,只允许输入三次字母,重复输入的字母不算在内。 count = 0 for i in range(3): letter = input("send a letter%d:"%i) if letter == 'e': break elif letter == 'a': continue elif letter == 'r': count += 1 if count == 2: input("send a letter dddd:") 7.把一个字符串"abcdefg"插入到一个list中,每个字母占一个list中的元素位置,例如: ["a","b","c","d","e","f","g"] ls=["a","b","c","d","e","f","g"] s="abcdefg" lt=[] #插入元素到后边 for i in s : ls.extend(i) print(ls) for i in s: ls.append(i) print(ls) #每个元素都插在第一个,或者说倒序插入列表前边 for i in s: ls.insert(0,i) print(ls) 8.['a','b','c','d','e','f','g']操作这个list,拼出一个字符串"adg" lis=['a','b','c','d','e','f','g'] print(len(lis)) t=lis[0]+lis[int(len(lis)/2)]+lis[-1] print(t) 或 print("".join(lis[::3]))

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册