IC系统是什么?

对算法工程师来说,IC系统是完成特定功能的硬件。
对架构设计师来说,IC系统包括控制,运算,存储部分。
电路设计工程师来说,IC系统是加法器,乘法器,与非门,运算放大器,开关电容等的搭配。
对版图工程师来说,它是多边形组成的组合。

一个常见的IC系统包括:

  • 数字部分(可能包括微处理器,控制电路,数据通路等)
  • 模拟部分(可能包括PLL,A/D,RF等)
  • 连线
  • I/O PAD
  • 存储器

数字部分
绝大多数数字系统都采用同步设计方法,即采用时钟來统一协调系统各部分的运行。它由组合逻辑和时序单元(寄存器和锁存器)组成,数据在时序单元-组合逻辑-时序单元这种结构间一级级的传递下去。通常可以将数字部分大致分为数据通路部分与控制部分。数据通路部分是指乘法器,加法器,有限响应冲击滤波器(FIR)等规则的运算单元,控制部分是指控制管理数据流通的逻辑。

模拟部分
  • 模数转换ADC
  • 数模转换DAC
  • 可编程增益放大器PGA
  • 锁相环PLL

I/O部分
I/O是IC系统与外部环境的接口。foundry提供的综合库中,通常包括三类PAD单元:输入PAD,输出PAD,双向PAD。在设计中,可以将这些PAD看作是标准单元,直接例化就可以了。

存储器
存储器对整个芯片设计至关重要:
  • 高速IC设计中,存储器的带宽已经成为性能瓶颈
  • 存储器占整个芯片70%以上的面积
  • 存储器消耗了芯片的大部分功耗
我们在实际设计中一般是无需自己设计存储器,只需根据需要(深度,速度,面积,功耗等)使用memory compiler直接生成,将别人提供的存储器单元拼接起来即可。在使用存储器的时候,需要注意接口时序是否满足要求。(例如我在2D/GPU的设计当中,都是按照要求直接用memory compier來生成各种sram)

连线
连线包括芯片的信号连线,电源线和时钟线。
• 在深亚微米设计中,不能将连线简单地看作是理想的连接,金属连线具有电容、电阻和电感效应。这些寄生效应会影响信号的完整性,而信号完整性和时序收敛问题是紧密联系的。通常,串扰会使时序更为恶化,更难以收敛。
连线的电容寄生效应会引起信号线的耦合,从而引起串扰(cross talk),串扰会影响时序,引起setup/hold violation,也可能会影响功能,导致芯片无法正常工作。
连线的电阻寄生效应会导致显著的电压降,从而影响信号电平。在一个IC系统中,是通过电源网络來供电的,一个数字系统要能正常工作,必须要为它的逻辑单元提供稳定的直流电压,并且这个电压的起伏要尽可能小。随着芯片规模的增加,芯片内部的电流越来越大,要满足电压稳定也越来越困难。加宽导线可以降低电阻,从而减小压降,并且会增加允许通过的峰值电流,但也会占用过多的面积。
如果连线过长或者电路速度极高,则导致电线的电感效应变的显著。电感效应很难处理,不过幸好目前大多数的设计中电感效应都很小,可以忽略不计。
• 连线还会导致设计时序难以收敛。
Logic synthesis的时候无法知道具体的连线信息,经常采用wireload model來估计连线延迟。这种模型并不准确,所以会导致P&R之后时序难以收敛,从而进化出physical synthesis的技术。

至于什么是physical synthesis,以及它与logic synthesis的区别,我会在以后的博文中加以讲解。

参考资料

《IC设计基础》

IC系统组成概论的更多相关文章

  1. 图解Android - Android GUI 系统 (1) - 概论

    Android的GUI系统是Android最重要也最复杂的系统之一.它包括以下部分: 窗口和图形系统 - Window and View Manager System. 显示合成系统 - Surfac ...

  2. 图解Android - System Service 概论 和 Android GUI 系统

    通过 图解Android - Binder 和 Service 一文中,我们已经分析了Binder 和 Service的工作原理.接下来,我们来简要分析Android 系统里面都有哪些重要的Servi ...

  3. Android GUI系统

    图解Android - Android GUI 系统 (1) - 概论 图解Android - Android GUI 系统 (2) - 窗口管理系统 图解Android - Android GUI ...

  4. 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)

    Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...

  5. NodeJS爬虫系统初探

    NodeJS爬虫系统 NodeJS爬虫系统 0. 概论 爬虫是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上是针对爬虫而做出的优化. robots.txt是一个文本文 ...

  6. Linux系统编程【转】

    转自:https://blog.csdn.net/majiakun1/article/details/8558308 一.Linux系统编程概论 1.1 系统编程基石 syscall: libc:标准 ...

  7. 入行数字IC验证后会做些什么?

    半年前,公众号写了第一篇推文<入行数字IC验证的一些建议>,介绍了IC小白可以如何一步一步地摸索入门数字IC验证,同时也在知乎发了这篇入门贴,并且衍生出很多额外基础的内容,收获了不少的浏览 ...

  8. 【凯子哥带你学Framework】Activity界面显示全解析

    前几天凯子哥写的Framework层的解析文章<Activity启动过程全解析>,反响还不错,这说明“写让大家都能看懂的Framework解析文章”的思想是基本正确的. 我个人觉得,深入分 ...

  9. 2012高校GIS论坛

    江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...

随机推荐

  1. C#输入输出重定向

    当 Process 将文本写入其标准流中时,通常将在控制台上显示该文本.通过重定向 StandardOutput 流,可以操作或取消进程的输出.例如,可以筛选文本.用不同方式将其格式化,也可以将输出同 ...

  2. Java GC 面试问题

    转自:http://icyfenix.iteye.com/blog/715301 这个帖子的背景是今晚看到je上这张贴:http://www.iteye.com/topic/715256,心血来潮写下 ...

  3. 一个自定义 HBase Filter -“通过RowKeys来高性能获取数据”

    摘要: 大家在使用HBase和Solr搭建系统中经常遇到的一个问题就是:“我通过SOLR得到了RowKeys后,该怎样去HBase上取数据”.使用现有的Filter性能差劲,网上也没有现成的自定义Fi ...

  4. JAVA基础拾遗-论线程池的线程粒度划分与深浅放置

    摘要:多线程任务处理对提高性能很有帮助,在Java中提供的线程池也方便了对多线程任务的实现.使用它很简单,而如果进行了不正确的使用,那么代码将陷入一团乱麻.因此如何正确地使用它,如以下分享,这个技能你 ...

  5. 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token

    一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...

  6. 虚拟机LVM扩容

    1.先在Vmware上,把虚拟机硬盘做扩展 2.现在打开虚拟机发现系统的磁盘空间已经扩了,但是硬盘分区可用空间没变,还是原来的30G [root@localhost ~]# fdisk -l Disk ...

  7. Culcurse

    一.简介 如果你是一个享受Linux终端的系统管理员,但同样需要一种方法来安排每天最重要的任务.约会和会议,你会发现calcurse是一个很有用的工具.calcurse包含了日历.一个待办事项管理.一 ...

  8. hdu 3987 Harry Potter and the Forbidden Forest 求割边最少的最小割

    view code//hdu 3987 #include <iostream> #include <cstdio> #include <algorithm> #in ...

  9. 嵌入式开发板iTOP-4412开发板移植CAN模块

    本文转自迅为:http://www.topeetboard.com 首先拷贝迅为提供的 libcanjni.tar.gz 压缩包到 android 源码的“iTop4412_ICS/device/sa ...

  10. 【转载】4412开发板、PC、ubuntu通过网线连接

    今天看到使用TFTP方式,开发板直接从ubuntu下载程序,不需要一直通过烧写文件系统下载,我试了一下,虚拟机.开发板.pc三者老是互相ping不通.纠结了很久终于解决了. 写下这个小笔记,供大家参考 ...