IC系统组成概论
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系统组成概论的更多相关文章
- 图解Android - Android GUI 系统 (1) - 概论
Android的GUI系统是Android最重要也最复杂的系统之一.它包括以下部分: 窗口和图形系统 - Window and View Manager System. 显示合成系统 - Surfac ...
- 图解Android - System Service 概论 和 Android GUI 系统
通过 图解Android - Binder 和 Service 一文中,我们已经分析了Binder 和 Service的工作原理.接下来,我们来简要分析Android 系统里面都有哪些重要的Servi ...
- Android GUI系统
图解Android - Android GUI 系统 (1) - 概论 图解Android - Android GUI 系统 (2) - 窗口管理系统 图解Android - Android GUI ...
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...
- NodeJS爬虫系统初探
NodeJS爬虫系统 NodeJS爬虫系统 0. 概论 爬虫是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上是针对爬虫而做出的优化. robots.txt是一个文本文 ...
- Linux系统编程【转】
转自:https://blog.csdn.net/majiakun1/article/details/8558308 一.Linux系统编程概论 1.1 系统编程基石 syscall: libc:标准 ...
- 入行数字IC验证后会做些什么?
半年前,公众号写了第一篇推文<入行数字IC验证的一些建议>,介绍了IC小白可以如何一步一步地摸索入门数字IC验证,同时也在知乎发了这篇入门贴,并且衍生出很多额外基础的内容,收获了不少的浏览 ...
- 【凯子哥带你学Framework】Activity界面显示全解析
前几天凯子哥写的Framework层的解析文章<Activity启动过程全解析>,反响还不错,这说明“写让大家都能看懂的Framework解析文章”的思想是基本正确的. 我个人觉得,深入分 ...
- 2012高校GIS论坛
江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...
随机推荐
- Upgrading or Redeploying SharePoint 2010 Workflows
While creating several State Machine SharePoint 2010 workflows using visual studio for a client I ha ...
- EdgesForExtendedLayout
在IOS7 之后viewController有一个新的属性叫做edgesForExtendedLayout,这个属性指定viewController的view边缘延伸的方向,默认情况下是UIRectE ...
- iOS开发之网络编程--获取文件的MIMEType
前言:有时候我们需要获取文件的MIMEType的信息,下面就介绍关于获取MIMEType的方法. 1.直接百度搜索关键字"MIMEType",你会找到,然后查吧: 2.用代码获取文 ...
- Reveal常用技巧(翻译来自Reveal官网blog)
翻译来自官网:http://revealapp.com/blog/reveal-common-tips-cn.html 以下基于Reveal 1.6. 用于快速上手的内置应用 刚刚下载Reveal,啥 ...
- Objective-C之@class的使用
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- hibernate集合类型映射
Set无序 元素不可重复 List有序 元素可重复 Bag无序 元素可重复 Map键值对 Student: package model; import java.util.Set; public cl ...
- AngularJS的一点学习笔记
ng-options="item.action for item in todos" ng-options表达式的基本形式, 形如 "<标签> for < ...
- ExtJS之开篇:我来了
以前做web开发一直在用jquery框架,或者开发html5用到backbone.js+sea.js+underscore.js等,现在做网站后台要用到extjs了,结合spring mvc,正式学习 ...
- MAC、IDFA、IMEI正则表达式
一.安卓: MAC:接入网络的设备的序号,唯一值.用 16 进制数表示,由 0-9,A-F 组成,如:44:2A:60:71:CC:82 Uuid 正则表达式: ^([0-9a-fA-F]{2})(( ...
- FOJ 1683 纪念SlingShot(矩阵快速幂)
C - 纪念SlingShot Description 已知 F(n)=3 * F(n-1)+2 * F(n-2)+7 * F(n-3),n>=3,其中F(0)=1,F(1)=3,F(2)=5, ...