• 一个完整IC项目需要走过的流程


    第一阶段、设计准备

           1. 需求分析:市场调研,同功能芯片功能比较。

           2. 定架构:选择合适的CPU、总线类型、各类型IP(RAM、ROM、EEPROM、EFUSE、晶振、PLL)、接口(I2C、spi、uart、Jtag、swd)、

                             协议、算法、看门狗、定时器、中断、时钟复位管理、电源管理、 模拟电路(电源电压、ADC、charge pump、FET)。

           3. 撰写文档:总体描述功能,画出系统架构、系统状态跳转图,详细描述各个模块功能、寄存器,给出功能设计图、时序图。

    第二阶段、方案实施

           1. 代码实现:根据以上设计准备阶段指定的设计方案 ,工程师在规定的时间内完成代码实现。

                                 在实现过程中,要考虑:面积、速度、clock gating、CDC、latch等设计要点。

           2. 功能前仿:在完成代码实现之前和过程中,验证工程师根据设计方案中每一个功能点写出验证case,并统计覆盖率,保证代码里的branch、line、

                                 toggle、FSM等都有覆盖到。

    第三阶段、时序分析 

           1、综合:在完成代码实现和功能仿真后,根据设计方案,制定时序约束文件,综合工具依据时序约束文件生成网表和SDC文件。

           2、等效检查:利用等效工具,比较RTL代码和综合生成的网表,检查两者一致。

           3、静态时序分析:

    第四阶段:布局布线

           1、网表、库文件:完成第三阶段后,向Layout house提供网表和功能实现过程中用到的库文件,其包括:

                                         a. 工艺PDK 

                                         b. stdcell库数据(lef、lib、cdl、gds)

                                         c. 验证规则文件(drc、ant、lvs)

                                         d. QRC techfile

                                         e. 网表和SDC

                                         同时,还要提供block形状、面积、PIN坐标。

           2、功能后仿:提供上述文件后,layout house将进行PR,生成带延时信息的网表和各种Corner的SDF文件。在拿到网表后,需要使用网表进行功能

                                  一致性检查、静态时序分析,并检查spare gate是否被加入到网表里面。

                                  然后利用这个网表和sdf文件,进行功能后仿(测试用例使用之前功能前仿时的case)。 如果发现时序违例,就要分析违例原因。根据

                                  违例原因类型,可以采取修改部分代码、ECO、PR修复等方式来解决违例。

                                  如果需要修改代码或者ECO,在修改完后,需要重复第三阶段过程,并将综合的网表再次提供给layout house,layout house返回网表和SDF后,

                                  重复上述检查和仿真;如果进行PR修复,那就是直接由layout house进行修改,layout house返回网表和SDF后,重复上述检查和仿真。

    第五阶段:signoff

             1、review:当上述步骤完成后,还要召集相关designer一起review,确保所有设计都是正确无误的。

                                a. 确认所有功能都与设计方案一致。

                                b. 确认所有功能点都有仿真激励覆盖到。

                                c. 确认所有IP的GDS、PIN连接、电源供电、时序关系。

                                d. 确认D2A、A2D端口的名称、方向、位宽。

                                只有上述几项都确认无误,最后才能tapeout。

                          

  • 相关阅读:
    (紫书,感谢作者)第7章暴力求解法
    明日更新
    明天更新
    UVa11882最大的数(dfs+剪枝)
    UVa12569树上的机器人的规划
    es6中的reduce方法?
    浏览器是如何渲染页面的?
    判断是不是一个数组?
    判断是否是一个数组?
    var与let的区别?
  • 原文地址:https://www.cnblogs.com/hxing/p/14624497.html
Copyright © 2020-2023  润新知