罗风 · 2021年01月11日

IC 圆桌派IoT,RTL及低功耗复盘篇

关于IoT

  • IOT 目前落地比较多的是工控。
  • 家用IOT 目前没有很好落地,激活率太低。
  • IOT 的赢利模式跟硬件关系不大,IOT 的目的是为了数据,数据的目的是为了钱,赢利模式得是金融才行,数据的纬度和颗粒度不是越多越好,当前从技术或芯片出发的IOT方案,是为了数据而数据为了出货量而IOT 了。
  • IOT 家用主要和事业单位配合,水电气读表。
  • IOT 是模组,未来三块肯定会集成,或者借用汽车上域控制的概念。
  • IOT 近几年都成了AIOT 了。
  • IOT 价格不是问题,刚需才是问题。
  • 目前NB 主要用于水电气跟共享单车
  • 工业IOT 大多用Lora, ZigBee, 2G, 蓝牙,工业数据太敏感,企业不是很愿意让运营商看到。
  • IOT 商用目前对数据还没重视,北方大的供热也没意识到数据的重要性。
  • IOT 芯片供应商头部有海思,MTK, 展锐,模组厂也不少,芯片选择很多。
  • NBIOT 当年朱雀可惜了。。。

后仿阶段加速仿真的一些策略

  • 挖网表,force 时钟等手段,加速仿真。
  • 基于ucli, 搭建环境时前面初始化多用dpi, 同时调整环境为支持dpi 仿真时编译,这样就可以不每次带设计编译。
  • 可以把一些东西改成读文件配置,通过修改配置直接仿真,而不必要编译。
  • 还可以保存仿真session, 随时调用debug, 需要debug 的话用ucli 的方式调用tcl 脚本,可以很随意的force 信号,随时dump 波形。
  • 分割编译也是,保证尽可能减少设计编译。
  • 没有debug 需求,只是回归,那么可以关闭debug 选项,速度快很多。
  • 在编译仿真中无效翻转对性能影响并不大,更多在于timescale debug 选项。
  • 为了减少debug 选项使用,尽量不用uvm hdl 方法,改用其他方法。
  • 编译现在是分块编译,但是分块需要满足一些划分或者coding 规则,否则会影响效率。
  • 当然dummy 一些较大的不用的模块也是很重要的,如果能dummy pll 最好了。
  • 关于dpi使用在两方面
  • 算法加速,用c++ 对大规模计算速度文件读取速度等远大于sv. 
  • 模拟一些总线操作,可以将用于soc 仿真的c 提前进行,减少后期开发成本。

什么样的RTL算好的RTL

  • 好的RTL designer 要看库,在写RTL 之前最长路径就已经规划出来了。
  • 每个层次的设计都要有架构设计,虽然时间会长,但是如果追求性能有用。
  • RTL 除了算法架构的考虑,还要考虑最后的实现,才是好的RTL. 
  • 对中后端友好,PPA 好的,具体来说就是,formal 容易过,对后端flow 友好,pr 实现相对简单。
  • 别人看的时候没有一句一句的WTF, 但RTL 有时候可能走向两个极端,太好的RTL 你也会WTF(充分利用可综合语言特性及辅助综合指令,极致精简的实现),太差的是满屏ctrl cv 的痕迹,同样会WTF. 
  • 最恶心的代码就是用软件思维来写的代码。
  • 对于代码的理解不透彻所有程序都强套几个编程范式的永远不是好程序员。
  • 个人感觉,真正有硬件思维,适合写RTL 的人不多,很多人写了挺多年,基本也只会加减乘除,最难的是硬件思维。
  • 写rtl 不光要有硬件思维,还需要思维缜密,才能经得起验证,基本功能正常,bug 太多验证很难收敛。
  •  一般工艺或者库变化后,我都会对比看看,主要的逻辑gate 时序怎么样。写的时候有数,不该省的不要省,后期要少很多事情。
  • HLS 如果想写出很高质量的代码,还需要加速pragam, 感觉也是硬件思维,还不够灵活,HLS更合适软件或者CS. 
  • 通常面试一个刚毕业的,你问他 " 你觉得设计环节什么最重要 ",八九不离十的答案都是 " 写好codes(无论是rtl, perl) "。
  • 如果广义定义为『可以给architecture 足够的support, 能够参与讨论;可以写很好的spec, 在spec阶段基本就把design 构思完成,并有很大一部分是已经具体细化;能够很好的和VE 沟通cover corner case 』。在这种广义定义下,写代码才算比较有竞争力的吧。
  •  反过来,一个能兼顾硬件实现的算法 ,可以带来一个顺畅的rtl design. 
  • rtl 设计主要还是经验,大概能预测之后可能的问题。我碰到sram 模型工艺不一样,接口就搞得很麻烦,接口输入和输出的时延模型定义不一样,导致之前的设计,时序就变得很紧张。总之,rtl如果能多考虑以后的时序问题,以后就会少麻烦,改流水线容易,改loop难。
  • 前端写RTL 就像写C 的程序员,一对一翻译spec 在实践中不可能存在,除非是设计自己写的spec. 
  • 写rtl 只是designer 的最后体力活步骤,前面还有活呢… 
  • 好多RTL 写得好的人,要懂验证。
  • 系统写系统spec, 应用写应用的spec, rtl 写design spec, 理想状况是先出design spec, 然后设计验证一起开始码代码。
  • 试想一下,designer 完全按照自己的理解写spec 和code, 然后验证按照这个写验证的teatcase, 能验出来什么?
  • 有的只有RTL, 别的一无所有呢。RTL  是大爷,SPEC 人家不写,咱也不敢问,也不敢说,公司不重视验证。RTL只动口,不动手。(不写spec 的RTL 都是没接受过正规军训练的吧!)。

低功耗

image1.jpg

image2.jpg
image3.jpg

  • 功耗评估不是从RTL 开始的,是从应用开始的。
  • 功耗看几个corner? 如果有hard IP 如何准确评估功耗?
  • 我想提一个问题,现在国内各大公司用于低功耗设计的异步电路流程发展的怎么样了?Intel 现在有完整的全局异步电路设计流程,主要用于类脑芯片的设计。现在基本上电路都是全局异步,局部同步。异步电路对功耗降低有很大的作用吧,不知道国内大公司有没有发展完整的全局异步电路设计工具?
  • PMU 的工作和应用场景息息相关,这个要架构定义得非常准确,但是很多公司没架构,由designer 来负责,他们不一定能完全了解应用场景,就很难做到优化。不能只盯着芯片,芯片其实增加些功耗,但能减少整体功耗也是值得的。
  • 低功耗应该从应用出发,先做好power budget, 从整机系统功耗指标和应用场景功耗需求入手,拆解到存储器、外设接口、主芯片功耗需求指标,有些应用的功耗大头在芯片外面,比如DDR, 传感器 3.3v 接口外设,待机功耗,启动时间都跟软件强相关。
  • 低功耗目前是瓶颈,不过要是材料突破,电池技术有进展,估计又会松下来。
  • 不止是电池啊,高温EM 严重,芯片容易失效。
  • DFT 对功耗有哪些考虑?
  • DFT 还有个总功耗的问题,时间短了,IR 太大,扛不住。可以增加pin, 只能在成本跟功耗上平衡,尽量写得代码友好。
  • HLS 是否可以用于算法迭代?以得到数学美且PPA好的结构呢?
  • 测试时间短,一般不会烫,但是有IR drop 的问题。
  • LDO 供电能力的问题,LDO 带一个100M gate 的设计150M 频率下测试,IR就很厉害,LDO 扛不住,会造成各种低良率,各种误杀。
  • AC scan IR 太难了。
  • DFT, 能说在shift 的时候比capture 功耗大吗?
  • DFT 测试频率,取决于IO 能支持的最高频率。
  • 异步电路可以降低功耗,但是没有成熟的工具链。
  • 异步电路好处可多了,还可以匀开IRdrop. 
  • 异步电路,仿真综合没啥问题,主要是定制化版图,布局,调整延迟线。
  • 异步电路都是握手协议,需要确保控制时序,确保下一级电路可以按要求触发。
  • 曼彻斯特大学开发了一套工具balsa, 但后期也需要手动调。
  • 异步真能降功耗吗?数据该怎么翻还是怎么翻,省得是时钟上的部分?
  • 目前异步电路设计工具,三大厂还没有太重视,异步电路设计方面跟国外差距也不是很大,国内加大异步电路工具链开发,有没有希望突破?
  • 之所以三大家没做,是不是因为市场太小?
  • 异步开源工具 https://github.com/cuhk-eda
  • 谁算过异步电路的静态功耗,会不会比同步的大?压制了动态,静态变多,得不偿失!
  • cdc 首先得有同步的C 跟 C, 直接comb 到C 这种异步没有任何check 的必要吧,comb到comb 这种得带着库综合看时间。
  • 同步的动作频率就能保障最终的工作时吞吐率,而异步完全不看时序,完全是事件响应机制,还完全不管事件来的早晚,那么事件延迟(比如走线远)引发的处理速率降低怎么保障?
  •  纯异步机制暂时没看见什么好办法,但是把功能模块间设计成异步已经有比较成熟的套路。
  • 我是在想之所以异步电路不普及和流行,是不是因为现在的工艺更新,DVFS, iCG这些手段已经满足对动静态功耗压制的需求了?异步电路是面向极低功耗需求的?比如一个纽扣电池的供电要工作几年?
  • 但是芯片电路也不能全部同步,异构的存在导致了异步电路也必须存在。
  • 我理解异步电路是最general 的情况,去掉细节提高抽象层即是同步。
  • 封装材料好,散热好,间接影响功耗。
  • 不同封装和不同材料散热不同,价格也不同。
  • 在稳定的金属材料中,金的导电能力仅次于银,高于铜,但是金子延展性太好了,很软,不是做封装的首选。
  • 抛个问题,微安级别的功耗用哪家工具评测最好,如何评测更准,误差能控制在多少?使用内嵌dcdc 是否会影响芯片的esd 等抗干扰能力会降低?快速唤醒如何做才能更快?
  • 我觉得功耗的估计是为了知道功耗消耗在哪里,从而设计可以进行进一步优化,功耗优化才是设计者需要进一步考虑的哦。
  • 一般芯片上电只做修复不做bist 吧,只有汽车电子这样高安全性的芯片才需要在线做bist 吧。
  • 卡类的超低端芯片没有专门的dft 都是用function 来cover 测试问题,是不是会在每次上电都会做bist ?
  • 16之后,动态功耗跟静态功耗的占比又发生了变化,动态功耗在总功耗的比例变大,另外对一些超低功耗且应用场景单一的芯片,需要极致的去优化功耗,所以可以从综合开始就带着波形文件去做优化,工具会根据翻转率,去做cell swap 去做pin swap 去尽量减小翻转频率高的net 上的电容,以减小功耗。
  • CSMA 四大家都有RTL Power 分析工具,C - Joules, S - Spyglass LP,M - PowerPro, A - PowerArtist.

如果您对某个话题有兴趣,有疑问,有见解,请扫码加高老师微信入群,加入IC 圆桌派。

作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/UsXbwx8bXrawhfJyg9IBGw
作者微信公众号
微信号二维码.jpg


相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
19610
内容数
1303
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息