数字ic设计流程与模拟IC
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字ic设计流程与模拟IC
1. 首先是使用HDL语言进行电路描述,写出可综合的代码。然后用仿真工具作前仿真,对理想状况下的功能进行验证。这一步可以使用Vhdl或Verilog作为工作语言,EDA工具方面就我所知可以用Synopsys的VSS(for Vhdl)、VCS(for Verilog)Cadence的工具也就是著名的Verilog-XL和NC Verilog
2.前仿真通过以后,可以把代码拿去综合,把语言描述转化成电路网表,并进行逻辑和时序电路的优化。在这一步通过综合器可以引入门延时,关键要看使用了什么工艺的库这一步的输出文件可以有多种格式,常用的有EDIF格式。综合工具Synopsys的Design Compiler,Cadence的Ambit
3,综合后的输出文件,可以拿去做layout,将电路fit到可编程的片子里或者布到硅片上这要看你是做单元库的还是全定制的。全定制的话,专门有版图工程师帮你画版图,Cadence的工具是layout editor单元库的话,下面一步就是自动布局布线,auto place & route,简称apr cadence的工具是Silicon Ensembler,Avanti的是Apollo layout出来以后就要进行extract,只知道用Avanti的Star_rcxt,然后做后仿真,如果后仿真不通过的话,只能iteration,就是回过头去改。
4,接下来就是做DRC,ERC,LVS了,如果没有什么问题的话,就tape out GDSII
格式的文件,送制版厂做掩膜板,制作完毕上流水线流片,然后就看是不是work 了做DRC,ERC,LVSAvanti的是Hercules,Venus,其它公司的你们补充好了
btw:后仿真之前的输出文件忘记说了,应该是带有完整的延时信息的设计文件如:*.VHO,*.sdf
RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC,LVS--->TAPE OUT
1。PT后一般也要做动态仿真,原因:异步路径PT是做不了的
2。综合后加一个形式验证,验证综合前后网表与RTL的一致性
3。布版完成后一般都会有ECO,目的手工修改小的错误
SPEC->ARCHITECTURE->RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC, LVS--->TAPE OUT
SPEC:specification,在进行IC设计之前,首先需要对本IC的功能有一个基本的定义。
ARCHITECTURE:IC的系统架构,包括算法的设计,算法到电路的具体映射,电路的具体实现方法,如总线结构、流水方式等。
在IC前端的设计中,ARCHITECTURE才是精华,其他的大部分都是EDA工具的使用,技术含量不高。
dv, design verification,验证 和前端、后端并列。
DFT, design for test. 前后端合作,并与tapeout 后测试合作。
ir-drop. 后端和验证合作。
SI, 后端。
low-power design ,前后端合作.
数字ic设计流程2
根据我的工作写了一个数字ic的设计流程,肯定有很多不足甚至错误的地方,欢迎大家批评指正!
数字ic设计流程; 1. 需求分析:只有需求分析做好了才可能设计出一个好的产品。这个工作主要是根据市场需求规划整个chip所要实现的全部功能,这也是一个很痛苦的工作,因为市场要求设计人员设计出功能越多越好并且单价越低越好的产品(mission impossible ^_^)。如果你做得是一个很有前瞻性很有技术性的chip,那就更要命了,在你做规划的时候,你用的协议很可能只是一个草案,到你的代码仿真通过或者即将投片的时候,草案变成了一个国际标准,并且作了修改,修改的那部分你很可能就没有实现(痛苦啊),这个时候你怎么办?所以需求分析是很重要的,不过国内的工程师一般不重视这一步。 2. 系统设计:就是考虑把需求怎么实现的过程。这个阶段涉及到的工作是时钟模块的实现思想、各个具体模块的划分、模块之间的接口和时序关系、管脚说明及封装、寄存器功能描述及编址等。Active HDL这个工具可以很清楚的表达出模块之间的层次和关系,推荐在系统设计的时候使用。系统设计做的好对代码编写和仿真有很大帮助,可以很大程度上减轻后端的压力。
3. 代码编写: code,大家最喜欢的阶段也是大家认为比较没有前途的阶段。不过要想做出来的chip
成本低,一个好的高质量的code也是很重要的。流行的编辑工具是Ultraedit32,Active HDL也很不错,没有这些工具就用记事本吧,赫赫,工作站上一般就是用vi编辑器了。 4. 代码仿真:仿真用的工具工作站上的有VCS、nc_verilog和nc_sim等,也有用modelsim的,不过比较少;pc上一般就是用modelsim了,Active HDL也有比较多的人用,我觉得pc上还是modelsim比较好,但是Active HDL可以生成test_bench的框架,要是两个工具都有,不防结合起来用。 5. fpga测试:这一步不是必需的,但是fpga测试很容易找出代码仿真很难发现的错误,比如异步fifo的空满判断等,只是fpga验证环境的构建比较困难。在fpga阶段经常用到下面的一些工具:Synplicity这是一个非常好的综合工具,综合效率比较高、速度也比较快,同时也能检查出代码编写中的一些错误,FPGA Express 也不错。布线工具根据选用的不同公司的fpga而选用不同的工具,Xilinx公司的产品用ISE,Altera 公司的产品选用QuartusII或者MaxplusII。以上就是数字ic设计的所谓的前端工作,下面是后端流程,后端流程的工作和投片厂家有关,设计人员的工作量在不同厂家之间相差还是比较大的 6. 综合:综合是指将rtl电路转换成特定目标(用约束来描述)的门级电路,分为Translation、Optimization 和Mappin,设计者需要编写约束文件,主要为了达到时序,面积,功耗等的要求,涉及到的综合工具如synopsys的design compiler,cadence的ambit buildgates(包含在se_pks or spc中)。毫无疑问,synopsys的DC是大家常用的,最新的版本是2003.06版。还有一个工具是magma,主要是面向0.18及以下工艺,发展比较快。 7. 门级验证:这一步是为了保证布局布线的正确性。门级验证包括了门单元的延时信息,因而需要厂家工艺库的支持。一开始要用到formality进行功能上的形式验证。通过formality检查后,要进行动态仿真和静态时序分析(STA)。STA的工具常见的工具是synopsys公司的primetime,这种工具只用来分析门级的时序,速度较快,对提高电路的分析速度很有帮助,可以在很短的时间找出timing violation,缩短验证所用的时间,并且分析的覆盖面比较广,不需要testbench。动态仿真和代码仿真一样,仿真用的工具有VCS、nc_verilog和nc_sim等,观察输出是否达到功能与时序的要求,这种验证方法需要testbench,对硬件要求高,速度慢,但是是一种比较可靠的方法8布局布线 CADENCE的SPC、MONTEREY的ICWIZARD都是很好的工具,易于使用。厂家根据工艺会加入线延时信息返回给设计者。9后仿真使用的工具和门级验证一样。
有些厂家为了尽可能缩短后端时间,可以帮你做formality检查,但是需要设计者提供源代码,设计者一般都会拒绝。好了,剩下的事情就让厂家去做吧。欢迎大家批评指正!