加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

前端设计从DesignSpec编制开始

(2018-06-06 09:19:35)

对于芯片前端设计人员来说,在写代码之前需要完成Design Spec的编制。编制文档可以尽早发现设计中可能出现的问题,同时Design Spec会交付给集成、验证、中后端及软件人员,让他们提前了解设计的功能并进行Review。


如何编制Design Spec呢?


通常根据不同的阶段将文档分为架构设计(概要设计)和微架构设计(详细设计),架构设计通常指整体架构、模块划分、接口定义等,对所设计的东东有个整体的描述;微架构设计主要要描述清楚各模块的设计细节,通过看微架构设计文档可以很轻松的完成代码的编制。

本文从Design Spec应该包含的要素来介绍,会涵盖架构和微架构的内容。


1、  功能列表

        要求完整而全面的描述模块的功能,功能列表是验证人员关注的重点,是验证人员构建验证case的基本依据。请注意是以列表的方式,每一条不要涵盖太多的功能,可以一条一个功能点。

参考:

http://s8/mw690/002ROtHPzy7l2D0MtiTa7&690


2、  架构框图

整体描述模块的系统框架,框图中要体现模块的划分和基本的数据路径以及顶层的信号。

参考:

http://s13/mw690/002ROtHPzy7l2D2x4PWdc&690


3、  顶层接口信号说明

详细描述模块的顶层信号,包含信号名、位宽、输入输出属性、详细说明等。

参考:

http://s12/bmiddle/002ROtHPzy7l2D7eWgjfb&690


4、  各模块信号说明及设计细节

       这是最需要花时间的部分,需要在文档阶段就完成对模块的整体划分,同时对模块之间的交互进行明确的定义。详细描述各个子模块的信号,以及内部的设计细节(如算法的内容,状态机的跳转图,memory的定义等)。通过文字的描述可以提前发现一些问题,让后面的代码实现更加顺利。


5、  寄存器描述

       寄存器的描述通常需要单独列出来,这部分是软件人员关注的重点,也是软硬件的主要接口。需要对寄存器的每一位的读写属性、详细定义以及配置的顺序等做出详细说明,有助于软件人员进行Firmware的编写。

参考:

http://s9/mw690/002ROtHPzy7l2D9PbiUd8&690

http://s13/mw690/002ROtHPzy7l2Da6uHG9c&690


6、  集成说明

       描述模块在做全芯片集成时的需求,比如中断集成、总线集成、DMA handshake 信号集成以及时钟复位信号的特殊需求等。


7、  可测性设计

       描述模块中对可测试设计的考虑,比如测试信号的详细说明(bist_en/dft_en…)、是否内嵌了mbist逻辑等等。


8、  中后端实现说明

       内部是否集成了一些IP(数字or模拟or DW等),多时钟域的说明,对输入输出delay的特殊要求,multi-cycle的说明,低功耗设计的要求等等。



从上面的Design Spec可以看出,通过Spec的编制基本完成了模块的主体设计,剩下的任务主要就是Coding了(当然Coding的过程中也需要动态更新设计文档)。良好的设计文档,可以大大降低沟通的成本,可以大大提高写代码的效率。

推荐阅读:

 

你们最期待的《数字前端设计工程师就业班》开课啦!!!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有