0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

聊聊SOC设计质量相关的规范

路科验证 来源:路科验证 2023-10-20 09:52 次阅读

你们以为我要讲的是coding-style?

NO,我主要讲的是其它和设计质量相关的规范。

1、代码篇

1.1、手撕代码部分

module name需要包含一定的功能展现,什么意思呢,比如要设计address remap,你就叫XXX_addr_remap或者XXX_addr_decoder。切记不要叫XXX_misc,一定是迫不得已再写这个module,否则集成或者debug会很头疼,谁知道这玩意是干啥用的。

当然,内容部分就是老生常谈的:

·加注释

·组合和时序

·缩进

·状态机

·阻塞赋值和非阻塞赋值

·一个module一个变量

·begin end对齐

·?语句和:的对齐等

1.2、第三方IP

我们除了仔细写的代码外,还会用第三方工具例如ARM和DesignWare生成很多简单IP,例如AHB2AHB桥,I2C,DWT,UART,TIMER等,我们除了要清楚我们的功能feature外,还要注意module一定要加前缀,文件名同样,否则我们无法与其他人的代码区分开,这样就会存在设计风险。

1.3、common cell

什么是common cell,就是我们常用的lib cell,例如mux,ckmux,ckg,ckand,ckor,sync_cell,dft_dff,等。为什么要单独拎出来呢?因为这里不做好标准,后端很痛苦。

我们一般会由专人负责设计和维护,以后所有人无特殊情况禁止直接手写lib cell,比如在某个module内用always语句写sync cell。

为什么呢?因为这些cell和后端约束强相关,和dont touch list强相关,和timing强相关,因此,从SYNTH开始就要用专门的DC LIB替换他们,如果我们自己随便在一个module里写这些逻辑,DC工具和脚本无法抓取信息,但是如果我们例化common cell的话,他们处理起来就方便多了。

当然,有一个细节就是define分支,一般会有SIMASIC分支,但是因为FPGA没有CKG,所有我们会在这里增加FPGA分支将CKG变为CKBUF。

1.4、memory cell

采用多级wrapper的方式,底层wrapper例化我们的physcal memory,并且在这一级对DFT信号,和timing相关调整信号做tie值处理。

二级wrapper做分支,分为SIM分支,FPGA分支和ASIC分支。这样的话,即便没有真实的物理memory,也不影响FPGA和SIM的同事使用。

当然也可以再加一级wrapper,将所有的memory放在一起,通过generate if不同的参数(例如宽度,深度,tag)决定例化哪一个memory,这样做的好处就是集成方便,不好的地方就是维护起来太麻烦。

2、filelist篇

soc设计的下游分为FPGA,SIM和SYNTH。但是三者的要求不同

FPGA要求filelist内容FPGA vivado可综合(有相关资源)。

SIM要求可以存在SIM model,不需要可综合。

SYNTH要求必须可综合。

因此,我们一般需要维护三个filelist,XX_FPGA.f,XX_SIM.f和XX_SYN.f,来满足不同同事的需求,防止他们自己处理出现问题。

仅仅是这样,对于大型SOC还是不够的,需要一个filelist去重脚本,因为每个子系统subsys都可能例化了common cell(因为可能会单独仿真或者综合呀),所以soc top拿到的filelist一定是有很多重复的文件,所以需要脚本展开并去重,重复的不是删除,而是注释,方便review(不知道脚本删除的对不对,需要review)。

3、difine macro篇

设计中一定会有很多define,主要分为两类:common define和function define

3.1、common define

例如SYNTH,FPGA,SIM这些,主要存在于memory wrapper和common cell中,我们需要整个项目组采用统一的格式,不能一会用SYNTH,一会用ASIC,这样DC同事会经常漏define,需要resynth。

3.2、function define

例如设计一个I2C,内部多个模块,这样的话我们的位宽,地址宽度等会是由define参数传递,这些参数往往不需要给其他人展示,我们自己在define中定义,最后undefine就可以了,但是顺序一定是最先编译define,最后undefine,所以刚才的filelist去重脚本还有一点很重要的就是不能调整filelist顺序哟。

4、交付质量hand-off

我们每个需要综合的节点一定要保证hand-off质量,我们通常会使用spyglass做lint检查,这是最基本的,否则DC同事一定无法综合。会显得我们的设计很LOW。

不同的节点有不同的要求,如果DFT也要进场,我们需要用spyglass跑DFT flow,例如scan-ready,bist-ready和best-practice等几个重要的goal。

当然还有非常重要的CDC FLOW,也是静态时序检查,只是STA关注的是同步逻辑,spyglass CDC关注异步处理,两个都做好了,才能保证设计的RTL和真实芯片的时序是一致的。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21665

    浏览量

    601765
  • SoC设计
    +关注

    关注

    1

    文章

    148

    浏览量

    18761
  • 状态机
    +关注

    关注

    2

    文章

    492

    浏览量

    27472
  • UART接口
    +关注

    关注

    0

    文章

    124

    浏览量

    15266
  • Vivado
    +关注

    关注

    19

    文章

    808

    浏览量

    66318

原文标题:聊聊SOC设计那些与质量相关的事儿

文章出处:【微信号:Rocker-IC,微信公众号:路科验证】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    建筑工程施工规范全集

    建筑工程施工规范全集A 建筑工程施工质量验收统一标准(GB50300-2001).pdfB 建筑地基基础工程施工质量验收规范(GB50202-2002).pdfC 砌体工程施工
    发表于 07-03 21:56

    计算机软件质量保证计划规范

      计算机软件质量保证计划规范1 主题内容与适用范围 本规范规定了在制订软件质量保证计划时应该遵循的统一的基本要求。 本规范适用于
    发表于 09-18 17:21

    高通产品的进来聊聊

    高通产品的进来聊聊,共享一下资源.
    发表于 01-03 14:32

    你了解元器件的质量等级与相关标准吗?

    规范统称产品规范。b.标准—主要包括:试验和测量标准、质量保证大纲和生产线认证标准、元器件材料和零件标准、型号命名标准、文字和图形符号标准等;c.指导军工技术文件—主要包括:指导正确选择和使用元器件
    发表于 03-07 18:40

    想和你聊聊:DFM设计规范(可制造性设计规范

    ,老板降我工资吧。。。先百度了一下,和你们分享一个基本概念,看看像我这样的工程师有多少,是不是你也要降工资,呵呵。。。DFM基本理念:DFM是基于并行设计的思想,在制造产品时要满足成本、性能和质量的要求
    发表于 05-29 21:50

    聊聊复位电路

    时钟电路我第一篇博客已经说讲过了,今天我们来聊聊复位电路。当然,复位电路博大精深,并...
    发表于 01-17 07:50

    聊聊存储器的相关知识

    虚拟地址物理地址等众多地址及MMU相关知识先聊聊存储器STM32单片机存储器关于编译器生成的文件数据在存储器上的存储结构物理地址、虚拟地址、线性地址和逻辑地址物理地址虚拟地址逻辑地址线性地址这些地址
    发表于 02-11 07:51

    SOC设计相关的linux基础资料

    SOC设计相关的linux基础资料整理
    发表于 09-20 07:51

    建筑地基基础工程施工质量验收规范(GB50202-2002)

    P GB 50202—2002建筑地基基础工程施工质量验收规范Code for acceptance of construction qualityof building foundation P GB 50202—2002建筑地基基础工程施工
    发表于 07-03 22:03 37次下载

    砌体工程施工质量验收规范(GB50203-2002)

    砌体工程施工质量验收规范Code for acceptance of construction qualityof masonry engineering 砌体工程施工质量验收规范C
    发表于 07-03 22:06 27次下载

    计算机软件质量保证计划规范

    计算机软件质量保证计划规范1 主题内容与适用范围 本规范规定了在制订软件质量保证计划时应该遵循的统一的基本要求。 本规范适用于软件特别是重要
    发表于 09-18 17:22 12次下载

    分布式电源并网中电能质量相关规范探讨

    分布式电源并网中电能质量相关规范探讨摘要:本文在介绍典型分布式电源并网方法的基础上,针对我国分布式电源发展状况,结合分布式电源发达国家的经验
    发表于 05-17 10:53 7次下载

    SOC设计相关的linux基础说明

    SOC设计相关的linux基础介绍。
    发表于 03-30 09:16 11次下载

    知识点:SOC设计质量相关规范

    module name需要包含一定的功能展现,什么意思呢,比如要设计address remap,你就叫XXX_addr_remap或者XXX_addr_decoder。
    的头像 发表于 10-17 11:36 706次阅读

    聊聊Redis的使用案例

    今天我们来聊聊 Redis 的使用案例。
    的头像 发表于 12-13 14:13 485次阅读