gaojun927的个人空间 https://blog.eetop.cn/757190 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

仿真的意义

热度 1已有 5487 次阅读| 2012-4-29 19:48 |个人分类:模拟电路设计

如果学术化一些,我可以把我们设计的芯片定义为三个层次:生物级,数学级,物理级。听着很高深,让我慢慢讲解。第一种是我们需要或者想要做出的一些指标,比如一些spec,一些feature,这些可能是老板拍板的,可能是自己决定的,但无论如何都只是停留在大脑中,只是一个概念,所以只好说是生物级。第二种就是我们设计工程师大部分时间在做的,设计一个芯片,跑仿真。这时候我们其实是在写一些数学表达式,在解一些方程,所以只能说是数学级。第三种就是tapeout之后的芯片,那才是真正的芯片,电子空穴在晶格中跑来跑去,不就是物理级的吗?
定义这三种层次,并不是为了好玩,用这个模型还是为了解答题目中提出的问题,而解答题目提出的问题则是为了更好的做我们的设计和仿真工作。
工程师的工作,最终目标是让物理级和生物级芯片完美统一(通俗些,做的芯片和期望的完全一样),而为了达到统一,必须经过数学级模型(做数字电路的有福气,可以用fpga验证,但仿真也是必须的,做模拟的偶尔可以搭一些验证电路,但概率很低),所以我们就必须讨论一下如何做好数学级的芯片(通俗些,就是怎么做设计,怎么做仿真)。
把设计和仿真的过程再分解一下,是两个过程,一个是如何建立方程,一个是如何解方程。
有人会说,我从来不做数学推导。其实我这里说的建立方程是个抽象概念。我们写出一个网表,写出一个simulink模型,写出一个verilogA模型,其实都是建立方程的过程。而跑程序其实就是让matlab,或者spice去求解所给定的方程。所以设计的过程其实就是一个建立数学方程的过程。要做好设计,一个重要的内容就是如何建立一个好的数学方程。什么是好的数学方程呢?我觉得一个是精确,另一个是求解快速。可惜这两个一般是互相矛盾的。所以在设计过程中,一般是逐渐细化的过程。刚开始时,用一些高层次的数学手段,建立一个基本符合的模型,然后逐渐细化成电路的网表,然后再细化成带寄生参数的网表。
那么设计者在其中要起到什么作用呢?设计者的作用就是保证建立模型的合理,选择合理的解方程工具以及在时间和精度上做合理的tradeoff。这才是设计者区别于仿真器的一点。目前有的EDA公司搞设计自动化,其实就是在做后一步,假设当仿真时间足够短之后,设计者不必要做太多的tradeoff,那就可以由机器做这个工作(这个假设是否合理完全看当前block的大小以及硬件的发展速度)但前两个作用是很难替代的。
举一些实际的例子说明吧。
先说保证模型的合理(这个模型并不是指器件模型这个概念,但是器件模型其实也是模型的一种)。最简单的,假如你用工艺厂家的模型设计电路,然后让他工作在液氮温度下,那就属于不合理的模型,因为工艺厂家给的器件一般参数只到-40C,而液氮远低于这个温度,所以基础都错了,上面的电路也就不对了。这时就需要要么自己提参数,要么预留更大的margin。再比如,假如只做了前仿,期望仿出线和线之间的干扰,有些不现实。所以有的人故意在前仿加一些寄生电容考虑耦合。再比如一个常见的例子,对全差分结构opamp仿psrr,而不带mismatch参数。其他例子还包括,用现有的前仿或者后仿电路,期望得到衬底噪声(目前一般的衬底电阻电容是没有被包含在后仿网表中的);用普通的器件仿真snapback特性的ESD电路(snapback目前是没有被建立在器件模型中的,有人这样仿,但目的是看RC常数)。
然后说说选择合理的求解工具。这个最常见的例子就是用tran仿完之后,看某个节点上的波动,这是不是噪声呢?(目前有的仿真器开始有带noise的tran仿真,这种的确是噪声,但传统的tran仿真,的确不是噪声)。
最后一个是在精度和时间上做tradeoff。举个例子,在整个adc上跑蒙特卡洛仿真,这就属于要tradeoff的范围了。我在国外的论文上真看到有人在晶体管级做这个,但是我很诧异他们的仿真速度。通常的做法是在比较早的行为级就做这个工作,因为那时可能一个仿真才几分钟。但是如果在晶体管级,多多少少一个仿真都要在几小时到几天的范围了。而蒙特卡洛仿真做一个是没太大意义的。那时再做,精确一定是精确了(但可能也精确不了太多),但花的代价未免太大。再比如,是用spectre仿真呢还是用hsim,用hsim的话是设成level几,后仿真时是提取什么样的参数?这些其实都是一些工程上的东西,学校里未必讲,但在实践中常常碰到。
1

点赞

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 302

    粉丝
  • 0

    好友
  • 275

    获赞
  • 157

    评论
  • 7282

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 03:36 , Processed in 0.012696 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部