从验证角度谈后仿

发布时间:2026/9/15 10:49:28
从验证角度谈后仿 1.后仿是什么rtl设计到一定阶段以后需要进行综合网表的步骤用sdc综合出来的网表去给后端做设计用。 此时综合出来的网表netlist 可作为rtl的替换塞进验证环境里跑仿真此时的仿真为不带timing的网表的后仿仿真。 后端设计完成给了sdf timing约束后加进去一起跑仿真的叫带timing网表的仿真。带pg综合后的网表叫netlist_pg 此综合网表netlist_pgsdf 约束放到一起的仿真叫后仿。如果有dft逻辑那么dft netlist网表pg netlist网表是最全的netlist。 看公司需求是否用最全的netlistsdf 约束来跑仿真。2.后仿的意义检查异步逻辑检查多时钟周期的时序检查错误路径的时序。3.后仿flow加入验证环境基本的vcs timing选项sdfverbose -negdelay neg_tchk csdfprecompdir$(SDF_C_DIR) transport_path_delays pulse_e/0 pulse_r/0 transport_int_delays pulse_in_e/0 pulse_int_r/0-sdfretain -xlrm alt_retain(不会让输出发生变化的RETAIN信息和X态会被优化)-sdfretainwarning optconfigfilepostsim.cfg(ignore timing violation file) -f behavior_list-negdelay:允许 SDF 里的负互连延迟不加VCS 会把所有负 delay 强制改成 0时序结果失真。PR 后 SDF 经常出现负 delay必须开启neg_tchk:允许负的 setup/hold 时序检查很多标准单元 specify 里时序约束是负值不加会漏报时序违例。门级后仿标配只存在于门级前仿的选项notimingcheck关闭所有 setup/hold 时序检查变成纯功能仿真nospecify关闭 specify 块路径延迟时序失效no_notifier时序违例时不翻转 notifier 信号不会把输出变成 X。 作用防止一点点 hold 违例就全片 X 态传播方便继续跑完仿真看功能但是依然会报时序违例 warning。netlist comp option带dft的与此相同:基本选项no_notifier notimingcheck nospecify defineNETLIST-f /netlist.fpostsim comp option基本选项vcsinitregrandom-f /netlist.fpostsim comp with pg option:基本选项-f netlist_pg.f(将rtl list替换为网表用define的方式将sdf 文件annotate进环境。方式是在tb top里initial begin end块中加入ifdef SS$sdf_annotate(ss sdf file, tb_top.dut_inst,,./sdf_max.log,MAXIMUM,,FROM_MAXIMUM);ifdef FF$sdf_annotate(ff sdf file, tb_top.dut_inst,,./sdf_min.log,MINMUM,,FROM_MINIMUM);ifdef TT$sdf_annotate(tt sdf file,tb_top.dut_inst,,./sdf_typical.log,MINMUM,,FROM_MAXIMUM);在comp option中加入define*来决定使用哪种sdf。一般后端设计组会给出3种timingsstt和ff。每种timing又分三种delay一般选ssmaxdelay 和ffmindelay作为两个极端来跑后仿。elab选项主要用来加define去区分是跑哪种网表netlist elab optiondefineNETLISTSIMpostsim elab optiondefineNETLISTSIM definePOSTSIMpostsim pg elab optiondefineNETLISTSIM definePOSTSIM definePOWER_PINS definePOWER_PIN definePOWER_PINS_NEG_MODEL definePGnetlist sim optionpostsim sim optionpostsim with pg sim optionvcsinitreg0(init reg value is 0, to avoid init value x)4.后仿case的调试1.常见错误类型1多级同步的第一级出现timing violation一般可以忽略掉。忽略的方法是在postsim.cfg文件里加instance {第一级的信号的全路径} {noTiming}2.常见类型错误2在综合后的网表里有些信号拉成z导致case里的force信号名需要修改才能把case跑过。 解决方案是在force的时候最好使用reg类型的信号如果没有需要加define来区分跑网表类型和跑rtl。 wire类型的多bit信号在综合网表里会被打成单根信号名字也可能会发生变化需要看波形检查。3.常见类型错误3有些关键信号在每次网表仿真的时候会随机拉成0或者是1这个时候如果在case里等这个信号的话需要根据网表打开的波形来确定是等上升沿或者下降沿。3.用verdi打开后仿波形。postsimverdi -sverilog v2k -f ${TB_FILE_OPTS} ${VERID_OPTS} defineNETLISTSIMdefinePOSTSIM -uvm -full64 -workMode hardwareDebug -top tb_top -ssf */*.fsdbnetlistsimverdi -sverilog v2k -f ${TB_FILE_OPTS} ${VERID_OPTS} defineNETLISTSIM defineARM_UD_MODEL -uvm -full64 -workMode hardwareDebug -top tb_top -ssf */*.fsdbpostsim with pgverdi -sverilog v2k -f ${TB_FILE_OPTS} ${VERID_OPTS} defineNETLISTSIMdefinePOSTSIMdefinePOWER_PINS definePOWER_PIN definePOWER_PINS_NEG_MODEL -uvm -full64 -workMode hardwareDebug -top tb_top -ssf */*.fsdb5.名词解释sdcconstraining designs for synthesis综合的设计约束sdf 文件standard delay format描述电路布局布线后单元及互联线的延时数据主要作用是将延迟信息反标back annotation到功能模型中模拟芯片在真实工作时的状态。后端设计完成出的一份文件。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询