小姜的ATPG学习笔记_TetraMax

软件:Synopsys Tetramax

关于使用的参考资料:

  1. Tips For TetraMax
  2. link 使用中需注意2010后的版本生成测试激励不支持生成verilog版本
  3. 2006版本培训教程
  4. 知乎上的屁屁踢解读

软件探索:

  1. 打开图形界面的位置:tx/amd64/syn/bin/tmaxgui
    在这里插入图片描述
  2. 命令手册:tmax_qr.pdf
    在这里插入图片描述
  3. 图形界面使用好像有问题,先用命令行
    在这里插入图片描述
    需要在snps的环境下打开软件
    在这里插入图片描述

Flow:

在这里插入图片描述
脚本实例: link
在这里插入图片描述

在这里插入图片描述

1. read lib modules

在这里插入图片描述
在这里插入图片描述

根据示例,这里应该是读取一个工艺库文件
opencores的工艺库路径:
在这里插入图片描述
在这里插入图片描述


2. read netlist

读取设计的文件,根据ppt所述应该是门级网表,不确定rtl级是否可以

read_netlist /home/student00/student001/Functional_Safety/opencores/netlist/ac97_ctrl.v

3. build ATPG model

在这里插入图片描述

3.1 set build

在这里插入图片描述

设计中可能存在不希望执行ATPG的模块,如锁相环模块、模拟模块、测试期间被旁路的模块或单独测试的模块,如RAM模块。

一些ATPG工具要求您构建一个黑盒模型来表示设计中的这种功能。但是,通过使用以下命令之一,可以将设计中的任何块声明为黑盒或空盒黑盒输出为X,空盒输出为Z

set_build -black_box module_name
set_build -empty_box module_name

3.2 run build model

在这里插入图片描述
在这里插入图片描述
该命令从已读入TetraMAX的设计模块中构建内存仿真模型。若要控制构建过程,请使用set build命令。构建过程完成后,TetraMAX会执行一个学习过程,您可以使用set learning命令来控制该过程

示例:
在这里插入图片描述


4. Perform DRC

4.1 准备

4.1.1 相关理论

在这里插入图片描述
该软件的DRC可通过撰写STIL Protocol File或者用STIL快捷命令来实现
其中,STIL conmmand包括以下基础命令等等:

在这里插入图片描述
在这里插入图片描述

  1. add_pi_constraints
    在这里插入图片描述
  2. set_DRC
    在这里插入图片描述
4.1.2 SPF文件相关工作

上图的关键是要有一个SPF文件,该文件可以由DC自动生成,也可以用命令行手写。

在这里插入图片描述
上图所示为测试自动化生成方法,首先读入RTL代码进行综合,在综合的过程中利用DFT Compiler进行扫描单元替换,然后完成一步到位的综合,包括设计规则检查,测试综合验证,内核测试包装。综合完毕后得到插入DFT电路的设计、STIL格式的程序文件、测试模型。同时由PT(Prime Time)工具分析电路给出关键路径。TetraMAX的ATPG工具会吃进这四个文件并生成对应的测试向量。
来源
脚本示例 :来源于PDF(百度文库),已存
在这里插入图片描述

参考脚本2(主要参考了这个)

在这里插入图片描述

我的工作:

  • design_vision 启动图形界面
  • setup 设置配置文件,包括源代码文件路径、工艺库文件路径等
    在这里插入图片描述
  • 读取设计(这里需要改用analyze+elaborate来读取)
    在这里插入图片描述
    在这里插入图片描述
    此时显示的设计会是按顺序读入的最后一个文件,需要修改顶层设计为当前设计:
    在这里插入图片描述
    上面的好像不行,没有反应,直接用命令输入修改
set current_design wb_dma_top
  • link源代码和工艺库(如果是analyze的方式则不需要link这一步)
    在这里插入图片描述
    这里出现了link失败的问题,不会报error,只是warning
    在这里插入图片描述
    感觉是setup的环节中出现了问题,还是得自己写一个setup才行
    在这里插入图片描述
    这里的当前目录指的是?
    使用report命令查看当前的design和lib
    在这里插入图片描述
    WORK对应之前warning中出现的WORK
    网上查的同样的问题的解决办法
    在这里插入图片描述
    按照上述方法进行尝试后,warning不再是WORK相关,变成了新的,之前没有报过这个warning
    在这里插入图片描述
    在这里插入图片描述
    去掉link操作后再次尝试
    PRE-DFT中出现的违例为D2/D3
    在这里插入图片描述
    执行完所有脚本后,仍存在违例TEST-120/TEST-224
    在这里插入图片描述
    TEST-120:no scan
    在这里插入图片描述
    TEST-224:Target library for design contains no scan-cell models
    在这里插入图片描述
    D8:clk_i ( Warning: Clock clk_i cannot capture data with other clocks off. (D8-1) )
    在这里插入图片描述
    –>DRC修复解决办法:
    (1)D2、D3:之前没有加入时钟信号的create以及复位信号rst的设置
    在这里插入图片描述

(2)TEST-120:scan model主要是来源于工艺库的问题,换一个工艺库就好了
在这里插入图片描述

  • *检查设计
    在这里插入图片描述
  • *时钟设置,先打开schematic然后点击clk的端口进行设置
    在这里插入图片描述

保存生成的文件,包括网表文件、spf文件等

write_test_protocol -output /home/student00/student001/Functional_Safety/work_for_DMA_DC/DMA.spf

write -hierarchy -format ddc -output /home/student00/student001/Functional_Safety/work_for_DMA_DC/DC_result_wb_dma.ddc
write -hierarchy -format verilog -output /home/student00/student001/Functional_Safety/work_for_DMA_DC/DC_result_wb_dma.v

完整DC脚本

gui_start

analyze -library WORK -format verilog {/home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_wb_slv.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_wb_mast.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_wb_if.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_top.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_rf.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_pri_enc_sub.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_inc30r.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_defines.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_de.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_ch_sel.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_ch_rf.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_ch_pri_enc.v /home/student00/student001/Functional_Safety/DC_works/DMA/wb_dma_ch_arb.v}
elaborate wb_dma_top -architecture verilog -library DEFAULT

set_scan_configuration -style multiplexed_flip_flop
set_dft_signal -view existing_dft -type ScanClock -port clk_i -timing [list 45 55]#时钟默认10%的占空比(在45%时上升沿,在55%时下降沿)
create_clock -name CLK -period 100 -waveform [list 0 50] [get_ports clk_i]
set_dft_signal -view existing_dft -port rst_i -type Reset -active_state 1

create_test_protocol
dft_drc
compile -scan

preview_dft -show all
create_test_protocol
dft_drc
insert_dft
check_design

write_test_protocol -output /home/student00/student001/Functional_Safety/DC_works/DMA/DMA.spf
write -hierarchy -format ddc -output /home/student00/student001/Functional_Safety/DC_works/DMA/DC_result_wb_dma.ddc
write -hierarchy -format verilog -output /home/student00/student001/Functional_Safety/DC_works/DMA/DC_result_wb_dma.v

4.2 run DRC

运行DRC,有两种方式

run_DRC xxx.spf
或者
set_DRC xxx.spf
run_DRC

运行后出现违例
在这里插入图片描述
report DRC结果

report_rules -fail

在这里插入图片描述


5 加入故障并运行ATPG

在这里插入图片描述

add_faults -all
run_atpg -auto

在添加了故障后且run atpg之前,可用以下代码获得详细的fault report内容

set faults -summary verbose 
report_summaries

在这里插入图片描述
在这里插入图片描述
run atpg后,上述的故障数量会发生改变
在这里插入图片描述
在这里插入图片描述


6 保存测试激励

write_patterns /home/student00/student001/Functional_Safety/ATPG_works/TEST.v -format verilog_single_file -serial -replace

在这里插入图片描述

完整tetramax脚本

  1. setup文件
#setup environment

set search_path /home/student00/student001/Functional_Safety/library
set link_library {* scc018ug_hd_rvt_tt_v1p8_25c_basic.db}
set target_library {scc018ug_hd_rvt_tt_v1p8_25c_basic.db}
  1. tcl文件
#source ~/Functional_Safety/ATPG_works/DMA/Tmax_DMA.tcl

# 打开Tetramax
#./tx/amd64/syn/bin/tmax64

# 读取工艺库文件
read_netlist /home/student00/student001/Functional_Safety/library/scc018ug_hd_rvt_neg_pg.v
read_netlist /home/student00/student001/Functional_Safety/library/scc018ug_hd_rvt_neg.v
read_netlist /home/student00/student001/Functional_Safety/library/scc018ug_hd_rvt_pg.v
read_netlist /home/student00/student001/Functional_Safety/library/scc018ug_hd_rvt.v

# 读取设计门级网表
read_netlist /home/student00/student001/Functional_Safety/DC_works/DMA/DC_result_wb_dma.v

#Build the ATPG model
run_build_model wb_dma_top

#建立并运行DRC
set_drc /home/student00/student001/Functional_Safety/DC_works/DMA/DMA.spf
run_drc

#加入故障并运行ATPG
add_faults -all
run_atpg -auto

#保存测试激励
write_patterns /home/student00/student001/Functional_Safety/ATPG_works/DMA/tb_DMA.v -format verilog_single_file -serial -replace

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
synopsys软件简介《一》 2007-08-09 一 Astro  Astro是Synopsys为超深亚微米IC设计进行设计优化、布局、布线的设计环境。Astro可以满足5千万门、时钟频率GHz、在0.10及以下工艺线生产的SoC设计的工程和技术需求。Astro高性能的优化和布局布线能力主要归功于Synopsys在其中集成的两项最新技术:PhySiSys和Milkyway DUO结构。 二 DFT DFT Compiler提供独创的“一遍测试综合”技术和方案。它和Design Compiler 、Physical Compiler系列产品集成在一起的,包含功能强大的扫描式可测性设计分析、综合和验证技术。DFT Compiler可以使设计者在设计流程的前期,很快而且方便的实现高质量的测试分析,确保时序要求和测试覆盖率要求同时得到满足。DFT Compiler同时支持RTL级、门级的扫描测试设计规则的检查,以及给予约束的扫描链插入和优化,同时进行失效覆盖的分析。 三 TetraMAX TetraMAX ATPG是业界功能最强、最易于使用的自动测试向量生成工具。针对不同的设计,TetraMAX可以在最短的时间内,生成具有具有最高故障覆盖率的最小的测试向量集。TetraMAX支持全扫描、或不完全扫描设计,同时提供故障仿真和分析能力。 四 Vera Vera验证系统满足了验证的需要,允许高效、智能、高层次的功能验证。Vera验证系统已被Sun、NEC、Cisco等公司广泛使用以验证其实际的产品,从单片ASIC到多片ASIC组成的计算机和网络系统,从定制、半定制电路到高复杂度的微处理器。Vera验证系统的基本思想是产生灵活的并能自我检查的测试向量,然后将其结合到test-bench中以尽可能充分测试所设计的电路。Vera验证系统适用于功能验证的各个层次,它具有以下特点:与设计环境的紧密集成、启发式及全随机测试、数据及协议建模、功能代码覆盖率分析。 五 VCS VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。 VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将CoverMeter中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。VCS和Scirocco也支持混合语言仿真。VCS和Scirocco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。 六 Power Compiler Power Compiler?提供简便的功耗优化能力,能够自动将设计的功耗最小化,提供综合前的功耗预估能力,让设计者可以更好的规划功耗分布,在短时间内完成低功耗设计。Power Compiler嵌入Design Compiler/Physical Compiler之上,是业界唯一的可以同时优化时序、功耗和面积的综合工具。
这个错误是由于缺少Tesseract OCR引擎的语言数据文件致的。根据错误信息,缺少的语言数据文件是`chi_sim.traineddata`。 为了解决这个问题,您需要确保已经正确安装Tesseract OCR引擎,并且已经下载了中文简体语言数据文件。您可以按照以下步骤进行操作: 1. 确保已经正确安装了Tesseract OCR引擎。您可以从Tesseract OCR的官方网站(https://github.com/tesseract-ocr/tesseract)下载适用于您的操作系统的安装程序,并按照安装指南进行安装。 2. 下载中文简体语言数据文件`chi_sim.traineddata`。您可以从Tesseract OCR的官方网站(https://github.com/tesseract-ocr/tessdata)下载该文件。将它保存到Tesseract OCR引擎的`tessdata`目录下。 3. 设置TESSDATA_PREFIX环境变量。在PyCharm中,您可以在运行配置中添加一个环境变量。在PyCharm的菜单栏中选择"Run" -> "Edit Configurations",然后在配置窗口中找到您的项目配置。在"Environment variables"部分添加一个新的环境变量,名称为"TESSDATA_PREFIX",值为Tesseract OCR引擎的`tessdata`目录路径。 完成上述步骤后,再次运行您的代码,应该就能够正常进行文字识别了。 请注意,根据您的系统和Tesseract OCR引擎的安装位置,可能需要相应地调整路径和环境变量的设置。如果仍然遇到问题,请尝试搜索和参考Tesseract OCR的文档和支持资源,以获取更详细的指南和解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值