模拟IC芯片设计开发的流程

IC的设计,模拟和数字, 还有混合IC, 在设计方法, 注意点, 工具等有明显的区别, 我主要以模拟无线接收IC系统设计为例说明.

一个IC芯片的设计开发大致包括如下步骤.

1.       潜在市场挖掘

一样IC产品, 投入巨大, 没有巨大的潜在市场或者收益回报, 是很难想象的. 这就要求公司的决策者要有超前的眼光, 发掘潜在的应用点, 比如3G商业化进程中, 手机终端的功能不断的挖掘, 08年下期, 手机终端开始集成CMMB数字电视的功能. 如果设计公司早期能在这方面(DVB, ASTC等)积累一定的经验,则可以在国内的行业中领先一步.

2.       IC初期的规格设定

根据用途范围不通, 规格肯定不通, 比如车载的和一般家用的, 还有军用的, 各个用途对IC的耐性能度都不通, 像ESD耐压, 温度变化等. 当然最重要的,还是根据协议标准来制定IC产品的规格, 比如GSM中频处 LPF的cut-off量好像要达到50dBc以上, 另外数字移动电视如果是OFDM的64QAM变调的话, 则一般要求PLL的位相噪音积分值要在1degrms以下.

3.       确定总体架构

根据成本, 工艺, 设计难易度, 人力等, 来确定到底是采用哪种结构,

每种架构都有其优缺点, 比如零中频接收器, mixer不用考虑, 镜像干扰, 不需要LPF, 设计难度降低, 但是同时也面临了, DC offset的问题, 用DC server电路经过设当的设计可以解决问题, 但是挑战性较大.

中频, lower-IF, Zero-IF, 还有mixer up-down形式, 需要根据具体的应用, 来确定最佳的结构.

4.       设计阶段

根据公司现有人力,物力资源, 项目管理者制定好各block具体设计目标后, member同时进行设计. 项目管理者必须对系统性能有充分的熟悉程度, 并且要使各单元电路分配到合理的设计目标, 比如VGA的话, 同时要求很高的P1dB, 功耗要求的话, 是很难的设计课题. (模拟设计的折衷, 最普遍也是最难得问题), 又比如VCO, 一般相位噪音和Kv(电调速度?)是折衷的关系的, 所以相位噪音要求高的时候, 一般都牺牲面积和功耗,
同时是Kv保持一定的值, 来满足相位噪音的高要求.

个别block电路设计, 在要求设计者一定的经验水平的基础上, 一般选用有常用的结构, 采用新颖的结构的时候, 特别要注意对其元件参数变动, 温度, 电压变动的sim(corner simulation).

5 layout设计

这时候, 基本要确定了IC的pin数目, 封装PKG的类型(这也是需要项目管理者确定的), 然后layout设计者可以根据pin的配置, 来确定block的位置, 这里关于个别block设计,

主要有差分信号的地方要对称配置, 信号线, gnd, 电源line要合理配置等, 这里主要谈一下总的layout设计.

1)      LO和RF要分开, VCO, xtal都是主要的噪声源, 这些block不能靠RF,IF太近

2)      要设计test block电路, 以便能在测试阶段, 都能对每个关键的block电路性能进行测试

3)      信号的流向要自然, 比如RF信号从左到右, LO信号从下到上等

4)      Block之间的line 根据要求来选择第几层line, 比如LO的block, 对损耗要求不是很高, 则可以用metal1, 2等line节约面积.

5.       后期仿真

这里根据CAD资源, 每个block的back annotation sim是必不可少的, block串接起来, 局部系统的仿真现在随着cad tool的发展也可以实现了, 比如用agilent 的Goldengate 小信号高速仿真器, 大大提高仿真时间, 提高设计精度.

6.       封装

流片这里不具体讲了, 一般component的变化浮动都已经考虑进设计过程了.

关于封装, 如果是高功耗的IC, 则一定要进行热阻抗测试, 关于热阻抗, 以后我再具体谈一下, 对于一些小的封装公司, 热阻抗的测试往往不是很完善, 这最终可能会导致使用保存温度范围的要求达不到规格.

7.       测试

测试包括block测试, 系统测试, esd, 选别测试等多项目. 每个环节都很重要,

第一次流片的话, 测试越具体, 则会发现越多的曾在设计中没有考虑的东西, 比如设计的时候block设计, 只考虑了p1db, IP3等, 其实比如数字电视接收IC, 还有考虑CTO, CBO等参数, 还有附近频带的干扰, 比如模拟电视信号的干扰等等

另外测试的时候, 如果PCB板也是自己设计的话, 这里我也谈谈自己的一些感受. 用protel, allegro等带drc check的软件要比autocad来的强. 主要电压线设计成可以分离的那种类型, 尽量避免平行临近走线. 在关键部位, 多考虑设计些预备pad, 增加测试的灵活度.

在这里我只是最简单的谈谈我对IC产品开发的认识, 所列的各个环节最关键的部分.

以后有时间逐步再详细讨论一下各部分和细节的部分.

模拟IC芯片设计开发的流程的更多相关文章

  1. [转]关于几本模拟IC设计书

    1.P.R.Gray的书 这本书被业界誉为模拟IC的Bible,盛名之下,必无虚士.现在已经出到第四版,作者无一例外是业界大牛,该书论述严谨,思路清晰,对电路分析透彻,定义严格明确,无愧Bible之名 ...

  2. EClipse开发NDK流程

    EClipse开发NDK流程(现在studio也在2.2之后支持了非常简单,只要创建项目的时候勾选c++支持就可以了)   什么情况下使用ndk,1.保护代码,java很容易反编译,c/c++反汇编比 ...

  3. git开发部署流程

    git的分支操作 https://blog.csdn.net/QH_JAVA/article/details/77853605 Git 开发部署流程 采用业界成熟方案 Git Flow 分支方式进行开 ...

  4. smart git使用+单人开发一般流程

    单人开发一般流程 clone checkout develop start gitflow start feature 写代码... 选中文件stage(相当于add) commit push fea ...

  5. [转] electron实战开发详细流程

    [From] http://www.myk3.com/arc-8856.html 很久没有更新博客,人越来越懒了,唉 说好做的electron教程距离上次玩electron已经过去了好几个月了.. 这 ...

  6. webWMS开发过程记录(一)- 软件开发的流程

    前言:计划开发一个webWMS,并将开发过程比较完整的记录下来.希望可以完成这个目标 软件开发的流程: 1. 了解该项目的相关概念. 了解所要开发的软件属于什么产品.该产品的基本定义是什么?基本功能模 ...

  7. 【1】TensorFlow光速入门-tensorflow开发基本流程

    本文地址:https://www.cnblogs.com/tujia/p/13862339.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...

  8. 03python开发之流程控制

    03 python开发之流程控制 目录 03 python开发之流程控制 3 流程控制 3.1 流程判断之if判断 3.1.1 代码块 3.1.2 if判断基础语法 3.1.3 案例 3.1.4 if ...

  9. pip:带你认识一个 Python 开发工作流程中的重要工具

    摘要:许多Python项目使用pip包管理器来管理它们的依赖项.它包含在Python安装程序中,是Python中依赖项管理的重要工具. 本文分享自华为云社区<使用Python的pip管理项目的依 ...

随机推荐

  1. Hibernate超简单多表操作

    所谓一对多映射 在数据库中我们通常会通过添加外键的方式将表关联起来,表现一对多的关系. 而在Hibernate中,我们则要通过在一方持有多方的集合来实现,即在"一"的一端中使用元素 ...

  2. antlr v4 使用指南连载1——简介

    antlr v4简介        antlr是一个强大语言解析工具,可以用于处理结构化文本.二进制文件.说白了,其实可以这么认为,antlr是一个更强大的正则表达式工具.它可以完成更多正则表达式无法 ...

  3. Sharepoint2013部署ADFS 报new-sptrustedIdentityTokenIssuer:the trust provider certificate already exist

    在做sharepoint2013的adfs部署时,根据MSDN的步骤到新建身份验证程序时,powershell中报"ADFS new-sptrustedIdentityTokenIssuer ...

  4. Android开发学习之路--UI之自定义布局和控件

    新的一年已经开始了,今天已经是初二了,两天没有学习了,还是要来继续学习下.一般手机的title都是actionbar,就像iphone一样可以后退,可以编辑.这里自定义布局就来实现下这个功能,首先准备 ...

  5. [Err] 1093 - You can't specify target table 's' for update in FROM clause

    [Err] 1093 - You can't specify target table 's' for update in FROM clause 执行SQL DELETE from book WHE ...

  6. 海量数据挖掘MMDS week6: MapReduce算法(进阶)

    http://blog.csdn.net/pipisorry/article/details/49445519 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  7. UNIX环境高级编程——时间和日期

    由UNIX内核提供的基本时间服务是计算自国际标准时间公元1970年1月1日00:00:00以来经过的秒数.这种秒数是以数据类型time_t表示. 1.     time函数返回当前时间和日期: tim ...

  8. 72【leetcode】经典算法- Lowest Common Ancestor of a Binary Search Tree(lct of bst)

    题目描述: 一个二叉搜索树,给定两个节点a,b,求最小的公共祖先 _______6______ / \ ___2__ ___8__ / \ / \ 0 _4 7 9 / \ 3 5 例如: 2,8 - ...

  9. Linux 操作之基础命令

    1.罗列出文件和文件夹 –ls ls 是帮助我们罗列出当前目录下的所有的文件和文件夹,当然了,还可以加上许多选项,最为重要的是所加的参数可以进行组合,起到让人意想不到的效果,下面就是常用的一些ls的及 ...

  10. (NO.00001)iOS游戏SpeedBoy Lite成形记(五)

    在GameScene.m中添加matchRun的实现: -(void)matchRun{ CCLOG(@"%@ invoke!",NSStringFromSelector(_cmd ...