7. 测试向量的仿真
时间:2024-07-14 22:24来源:功烨 芯爵ChipLord 作者:ictest8_edit 点击:
次
在电子设计自动化(EDA)领域中,仿真是验证电路设计的重要步骤之一。而测试向量的仿真更是确保电路在实际应用中表现良好的关键环节。本篇文章将详细介绍测试向量的仿真过程,并重点讨论如何生成和应用这些向量,以提升设计验证的效率和准确性。
仿真的基础知识
仿真环境
仿真是指在计算机上模拟电路的工作情况,主要包括以下几个部分:
· TestBench:这是仿真环境的核心部分,用于产生测试激励并将其施加在待测逻辑上。
· 待测逻辑:即设计需要验证的部分,通过仿真环境对其进行功能和性能的测试。
· 在仿真过程中,TestBench会产生一系列测试激励,这些激励会施加到待测逻辑上,然后分析其输出结果,以验证设计的正确性。
仿真的算法
仿真算法主要分为以下几种:
1. 基于时间的仿真:处理连续的时间,通常效率较低。
2. 基于事件的仿真:只在电路状态发生变化时进行处理。
3. 基于周期的仿真:主要处理时钟的边沿变化,适用于同步电路。
仿真工具
常用的仿真工具包括:
· Synopsys VCS
· Mentor ModelSim/Questa
· Cadence Incisive/Xcelium
这些工具各有特点,可以根据具体需求选择合适的工具进行仿真。
仿真的网表
仿真网表主要包括基于RTL的功能仿真和基于门级网表的仿真。后者通常会带有SDF(标准延迟格式)文件,以反映实际电路中的延迟情况,从而提高仿真结果的准确性。
VCS的两步仿真方法
1. 编译(Compilation):读入网表和标准单元模型,生成可执行文件simv。
2. 仿真(Simulation):执行simv文件,进行仿真。
编译选项示例如下:
· 不对specify模块进行时序检查和路径延迟的计算
·预编译TestBench里的宏定义
· 指定寄存器在初始化时的值
· 打开调试功能等
/tools/synopsys/vcs-2016/bin/vcs \ -top test_patterns_serial_v_ctl \ -f ./file.f \ +nospecify \ +notimingcheck \ +define+debussy \ +vcs+initreg+random \ +delay_mode_zero \ +tetramax \ +libext+.v+.vg \ -sverilog +v2k \ -full64 \ -o simv \ -l test.log \ -timescale=1ns/1ps \ +debug_all \ -P /tools/synopsys/verdi-2016/share/PLI/VCS/linux64/verdi.tab \ /tools/synopsys/verdi-2016/share/PLI/VCS/linux64/pli.a
Tessent仿真向量的生成
Tessent工具生成仿真向量的流程如下:
1. 产生测试向量(create_patterns)
2. 写出测试向量(write_patterns):支持多种格式,如Verilog、STIL、WGL等。
Memory BIST和Boundary Scan
对于Memory BIST和Boundary Scan,仿真向量的生成过程包括:
1. create_pattern_specification
2. process_pattern_specification
3. run_testbench_simulations
这些步骤确保了测试向量的准确性和有效性。
串行和并行仿真向量
串行测试向量模拟ATE实际测试的情况,仿真时间较长。而并行测试向量则将向量直接赋值到寄存器扫描端,仿真时间较短。
仿真向量的内容
以DC parallel pattern为例,其内容包括:
· patterns.v:TestBench文件
· patterns.v.0.vec:向量文件
· patterns.v.cfg:配置文件
· patterns.v.chain.name:扫描单元的名字
· patterns.v.po.name:主要输出IO·
VCS的三步仿真方法
相比于两步仿真方法,三步仿真方法增加了分析(Analysis)和建模(Elaborate)两个步骤。这种方法更适合复杂设计,尤其是在涉及多语言混合设计时。
总结
仿真是电子设计验证过程中不可或缺的一环。通过合理选择仿真工具和方法,生成准确的测试向量,能够大大提升设计的可靠性和性能。Tessent工具在生成和管理测试向量方面提供了强大的功能,值得在实际应用中深入研究和应用。
希望这篇文章能帮助您更好地理解测试向量的仿真过程,提升您的设计验证效率。如果您有更多问题或需要进一步交流,欢迎在评论区留言。
|
------分隔线----------------------------