日常记录(59)全视界-项目管理

芯片流片前的开发流程

用户需求:设计结构和产品描述。

系统设计:模块化的功能详述。

硬件设计:HDL文件

功能验证:验证文件(前仿真部分)

后端综合:门级网表,SDF文件(后仿真部分:零延时映射,单位延时映射,SDF仿真)

 

验证要求

完备性:各种覆盖率、跨时钟域等的检查需要完备。

复用性:标准化验证环境、测试规范、UVM:小粒度的功能组件、快速拔插式的环境集成。

高效性:随机约束于基本范围进行基本功能验证,放开随机约束并限定护理情形进行完备功能验证,理解设计本身和约束缩窄范围或定向测试以完成剩余20%的功能验证。遵守先易后难,先基本后高级,以及基本缺陷禁止出现的规定。

高产出:单位时间能效率更高。按进度完成验证节点,保持质量并避免在硅后、客户测试、甚至上市后出现问题。

代码性能:同复用性,代码规范。

 

验证的检查点

验证计划回顾:整个验证周期内进行修改完善

验证代码检查:可能遗漏的测试激励,不恰当的随机约束,代码结构缺陷等。

完备性检查:根据检查清单判定模块、子系统、芯片是否达到验证目标,并在流片前确认。

硅后系统测试:判定是否有设计缺陷,以及缺陷是否可以用软件修复,硬件变通。

逃逸分析:总结失败或者某个点没有检查到的原因,以及如何克服,后续如何处理完善。

 

验证文档

芯片功能

接口信息:是否为标准接口,接口的名称和说明。

结构信息:模块划分为功能组件,各个组件之间如何交互与联系的逻辑关系。

交互信息:握手信号,电平信号,持续周期等说明。

验证计划

验证方法:动态仿真、形式验证、硬件加速。透明度(白盒,灰盒,黑盒)。测试方法(定向,随机约束)

验证工具:VCS等

完备标准:衡量验证任务的完备性指标说明,覆盖率要求

验证资源:人力、时间、硬件、软件等的预算

进度安排:人力和时间,评估芯片结构的不稳定性,工具选择的风险,人力精力与模块交付进度的风险。

功能点:

  • 基本功能:时钟,复位,寄存器访问等。
  • 互动功能:模块之间,子系统,芯片级的互动验证。
  • 次要功能:性能,效能等。
  • 测试用例:激励与结果。
  • 其中的激励需要在序列颗粒度和可控性之间考虑,并有独立性和组合*度(中心式,分布式)。

断言

TLM模型与ESL

TLM事务级模型:用于模拟硬件行为,侧重功能描述,用于验证中的(设计)模块交互,同时前期作为也可在准确的情况下作为参考模型。

ESL电子系统级:多流程分支并行开发提高效率。

ESL通过TLM模型,使得开发过程中各小组实现并行开发。

日常记录(59)全视界-项目管理

 

 

验证的层次

模块级:测试:状态机、数据存储、数据打包编解码、指令执行、寄存器配置等。

子系统级:交付:设计包,验证包,回归测试表,覆盖率收集脚本和数据,完整的文档(设计验证集成后端)

芯片系统级:测试:输入输出,寄存器检查,数据检查,定向测试。

硅后系统级:定向激励测试。

 

验证方法

动态仿真:原始的激励前仿真。

形式验证:形式验证是为了验证RTL代码与门级网表之间的逻辑等价性。https://www.cnblogs.com/nevel/p/13600170.html

硬件加速:专用模拟器(主流)或者FPGA上加速。

日常记录(59)全视界-项目管理

 

 

验证的收敛

快速的项目周期做出合适的回归流程,将RTL1,RTL2,RTL3的串行节点适当并行化。保证质量的同时,提高回归效率。

日常记录(59)全视界-项目管理

 

上一篇:使用filebeat解析nginx的json格式日志,并且保存原始message字段的值,输出到es中并通过grafana图形化显示


下一篇:C语言程序设计100例之(59):幸运数字