当前位置:首页 >> 信息与通信 >>

SOC验证NC


使用NcVerilog跑代码覆盖率 跑代码覆盖率 使用
1.运行 运行testcase的方法: 的方法: 运行 的方法 (1)实现testcase 连续运行的run脚本的格式一般 为: #!/bin/sh ncvlog -f ../filelist/filelist.v ncelab -coverage all TESTBENCH ncsim -input ./sim.tcl TESTBENCH 把要编译的文件include到filelist.v文件中。把要运 行的testcase include到testcase_file.v中,再把 testcase_file.v include到testbench中,这样可以 实现testcase 的连续运行,最后做出总的 coverage report。

? 加coverage的方法 的方法: 的方法

[1]、首先用ncvlog命令编译所有的.v文件,包括源文件、 testbench.v和所有的bfm [2]、用命令形式:ncelab –coverage all top.v elaborate [3]、仿真,命令是ncsim,在这个地方把建立coverage环境和 把仿真过程中要加的几种coverage写在一个脚本文件里,我 们写的是:sim.tcl: Coverage –setup –dut CFHC_TOP –testname cf_test Coverage –code Coverage –fsm Coverge –toggle Run Exit 仿真直接用ncsim –input ./sim.tcl TESTBENCH就可以了 [4]、最后我们直接把ncvlog,ncelab,ncsim都写在脚本run里, 直接在unix命令行里敲run就可以了 [5]、最后产生的覆盖率文件:CFHC_TOP.dgn, cf_test.cov, cf_test.fsm, cf_test.tog TESTBENCH.U_TOP.mst

生成report 生成
[1]、生成block,exppression和fsm: 1)用iccr命令进入report tool 2)用load_design加载仿真产生的.dgn文件 3)用load_coverage把包含block,exppression,fsm覆 盖率的.cov和.fsm文件加载进去 4)用report_summary或report_detail生成summary report和detail report,在detail report中会有具体的没 有覆盖到的地方的详细说明 [2]、生成toggle: 1)用togreport命令进入report tool 2)用load_master把.mst文件加载进去 3)用load_test把.tog文件加载进去 4)用report_summay或report_detail生成report,跟结 果跟上面类似。

(2)实现testcase 单个运行的run脚本的格式: #!/bin/sh echo "\`include \"../testcase166/$1.v\"" > testcase.v sed "s/\/wave.shm/\/wave$1.shm/g" ../testbench/testbench.v > testbench.tmp cp ../testbench/testbench.v ../testbench/testbench.bak cp testbench.tmp ../testbench/testbench.v rm -f testbench.tmp ncverilog -f ../filelist/filelist.v +access+rwc -l ../log/log/$1.log mv ../testbench/testbench.bak ../testbench/testbench.v rm -f testcase 运行testcase用这样的命令:run tc0001.v 这样生成的coverage report是每个testcase生成一个,要想得到 总的coverage report,需要把这些report merge.

2.在NcVerilog中运行常遇到的问题:
(1)报错:关于编译时出现的异常语句error: 在testcase 0702020102.v 、0703020204.v中出现类似的错误,分别 表 象如下: U_AHB_BFM.EX_DREG_INT_CLEAR ; 3 ——〉 0702020102.v U_AHB_BFM.EX_DREG_INT_CLEAR ; 2 ——〉 0703020204.v 分号后面不能有任何符号。 (2)报错:“failed to open ../testcase166/0401020204.v : ” 是由于其将0401020204.v的后缀名写成了大写:0401020204.V。 (3)错误:在testcase前面加上延迟出现异常情况: 是由于在BFM中除ahb_bfm.v 外的其他模块都没有对其复位完全。 解决:将其他的bfm文件的initial块做成task,在复位十调用task. (4)错误:部分testcase,对其仿真无反应。 跑覆盖率时丢掉了这几个testcase。

(5) 问题: 一个个的testcase跑,最后的结果不能够合并在 一起 解决:把所有的testcase合并成一个testcase跑,这样一次 就可以全部跑完,会得出一个总的覆盖率报告。合并方法: 直接把各个testcase按顺序include到testbench中。 (6) 问题:直接include testcase 到testbench后出现以下问题: 跑完第一个testcase后第二个testcase只能跑个开头,第二个 testcase不能正常跑下去。 解决过程: [1]、调换顺序跑还是出现同样的问题,试着加延迟时发现即 使在单独跑一个testcase时,如果加1000个延迟时也会出现 同样的问题,于是就怀疑复位出现问题。 [2]、然后用加延迟和不加延迟的两个testcase跑,并把所有的 dut和bfm的输出都在waveform上显示出来,找复位后的信号 差异。 [3]、结果发现在几个bfm中只有ahb_bfm.v中在reset信号到来 时initial一次,而连起来运行时要保证每个testcase跑的条件 相同,应该在每个testcase跑完之前initial一次,因此把initial 做成task,在每个testcase中调用即可。


相关文章:
SoC技术
SoC 设计方法学主要研究总线架构技术、IP 核可复用技术、可靠性设计技术、软 硬件协同设计技术、SoC 设计验证技术、芯片综合/时序分析技术、可测性/可调试性设计技...
soc试题库
3)验证设计结果是否符合原始设计规范的性能指标 4)验证结构是否包含违反物理设计规则的错误 动态验证 静态验证 8、SOC 设计中常用的处理器有哪些?不同的处理器在 ...
soc复习整理
soc复习整理_计算机软件及应用_IT/计算机_专业资料。西电计算机学院SOC复习整理第一讲 SoC 设计概论 SoC 基本概念-> SoC 关键技术分析-> SoC 设计方法-> SoC 总...
SOC
动态仿真工具中,常用的逻辑仿真工具有 VCS ,Veril og-XL,NC Verilog, ()等...SoC 功能验证的目标是尽量确保设计能够实现设计文档中所描述的功能吗? 答:是 ...
片上系统SOC
SoC的开发是从整个系统的功能和性能出发, 利用IP复用和深亚微米 技术,采用软件和硬件结合的设计和验证方法,综合考虑软硬件资源的使用成本, 设计出满足性能要求的高...
片上系统(SOC)设计流程及其集成开发环境
片上系统(SOC)设计流程及其集成开发环境_信息与通信_工程科技_专业资料。片上系统...在设计的中后期,要进行软硬件协同验证,即把软硬件设计放到一个虚拟的集成环 境...
SoC 简介
SoC 简介_信息与通信_工程科技_专业资料。SoC 简介第1 章 SoC 简介 近 10 年来,无论是消费类产品如电视、录像机,还是通信类产品如电话、 网络设备,这些产品的...
如何为SoC设计选择IP核
2. 接口检查器 SoC 团队必须设计逻辑,以便与不同信号和 IP 核协议进行接口。为了确定其设计是否正 确,IP 提供商能够提供接口检查器模块,以验证所有接口信号和...
SOC实验-cadence
SOC实验-cadence_电子/电路_工程科技_专业资料。这是...2、进行 NC 仿真 1)打开仿真软件 如图 1-1 所示...DRC 验证 20)LVS 验证 如图 4-19 所示 点击 ...
SoC技术及其发展
通常,SoC 设计包括系统级设计、电路级设计、 物理实现、 物理验证及最终验证SoC 设计中的关键环节是 IP Core 复用技术, 完成一个片上 系统设计必须要在很大...
更多相关标签: