首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的硬盘
我的搜索
我的记录
我的文件
我的图书
我的笔记
我的书签
我的微博
Search
1
在IC617中进行xa+vcs数模混仿
81 阅读
2
科普:Memory Compiler生成的Register file和SRAM有何区别?
73 阅读
3
virtuoso和empyrean alps模拟仿真和混仿教程
73 阅读
4
后仿中$setup,$hold与$setuphold
44 阅读
5
文档内容搜索哪家强? 15款文件搜索软件横向评测
35 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
python
Docker
vscode
linux
systemverilog
vcs
STM32
PyQT
EDA
FPGA
gvim
cadence
Alist
xilinx
UVM
uos
macos
package
MCU
risc-v
bennyhe
累计撰写
378
篇文章
累计收到
31
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的硬盘
我的搜索
我的记录
我的文件
我的图书
我的笔记
我的书签
我的微博
搜索到
378
篇与
的结果
2025-06-06
Python中 if __name__==详细解析
引言学过Java、C、C++的程序员应该都知道,每次开启一个程序,都必须写一个主函数作为程序的入口,也就是我们常说的main函数。如下所示, main()就是Java中的一个main函数。public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } }与Java、C、C++等几种语言不同的是,Python是一种解释型脚本语言,在执行之前不同要将所有代码先编译成中间代码,Python程序运行时是从模块顶行开始,逐行进行翻译执行,所以,最顶层(没有被缩进)的代码都会被执行,所以Python中并不需要一个统一的main()作为程序的入口。在某种意义上讲,“if __name__==’__main__:”也像是一个标志,象征着Java等语言中的程序主入口,告诉其他程序员,代码入口在此——这是“if __name__==’__main__:”这条代码的意义之一。__name__的理解1.1 为什么使用__name__属性?Python解释器在导入模块时,会将模块中没有缩进的代码全部执行一遍(模块就是一个独立的Python文件)。开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利用__name__属性。1.2 __name__属性。__name__属性是Python的一个内置属性,记录了一个字符串。若是在当前文件,__name__ 是__main__。在hello文件中打印本文件的__name__属性值,显示的是__main__若是导入的文件,__name__是模块名。test文件导入hello模块,在test文件中打印出hello模块的__name__属性值,显示的是hello模块的模块名。因此__name__ == '__main__' 就表示在当前文件中,可以在if name == '__main__':条件下写入测试代码,如此可以避免测试代码在模块被导入后执行。模块导入我们知道,当我们把模块A中的代码在模块B中进行import A时,只要B模块代码运行到该import语句,模块A的代码会被执行。模块A:# 模块A a = 100 print('你好,我是模块A……') print(a) 模块B: # 模块B from package01 import A b = 200 print('你好,我是模块B……') print(b)运行模块B时,输出结果如下:你好,我是模块A……100你好,我是模块B……200如果在模块A中,我们有部分的代码不想在被导入到B时直接被运行,但在直接运行A时可直接运行,那该怎么做呢?那就可以用到“if __name__==’__main__:”这行代码了,我们队上面用到的A模块代码进行修改:A模块代码修改为:# 模块A a = 100 print('你好,我是模块A……') if __name__=='__main__': print(a)B模块不做修改,直接执行B模块,输出结果如下:你好,我是模块A……你好,我是模块B……200看到了吗,A模块中的a的值就没有再被输出了。所以,当你要导入某个模块,但又不想改模块的部分代码被直接执行,那就可以这一部分代码放在“if __name__=='__main__':”内部。3. “__name__”与“__main__”看到现在也许心中还是疑惑,那么现在我们来说一说“if__name__=='__main__':”的原理。“__name__”是Python的内置变量,用于指代当前模块。我们修改上面用到的A模块和B模块,在模块中分别输出模块的名称:模块A:# 模块A print('你好,我是模块A……') print('模块A中__name__的值:{}'.format(__name__)) print('-------------------------') 模块B: # 模块B from package01 import A print('你好,我是模块B……') print('模块B中__name__的值:{}'.format(__name__))执行A模块时,输出结果:你好,我是模块A……模块A中__name__的值:__main__-------------------------执行B模块时,输出结果:你好,我是模块A……模块A中__name__的值:package01.A-------------------------你好,我是模块B……模块B中__name__的值:__main__发现神奇之处了吗?当哪个模块被直接执行时,该模块“__name__”的值就是“__main__”,当被导入另一模块时,“__name__”的值就是模块的真实名称。用一个类比来解释一下:记得小时候要轮流打算教室,轮到自己的时候(模块被直接执行的时候),我们会说今天是“我”(__main__)值日,称呼其他人时,我们就会直接喊他们的名字。所以,“__main__”就相当于当事人,或者说第一人称的“我”。所以,当运行“if __name__=='__main__':”语句时,如果当前模块时被直接执行,__name__的值就是__main__,条件判断的结果为True,“if __name__=='__main__':”下面的代码块就会被执行。1参考.^Python中“if __name__=='__main__':”理解与总结 https://www.cnblogs.com/chenhuabin/p/10118199.html.^if name == '__main__': https://www.cnblogs.com/wanao/p/13098783.html
2025年06月06日
0 阅读
0 评论
0 点赞
2025-06-06
VSCode搭建Python开发环境
文章所需的部署环境为Windows10 64位.这篇文章将演示如何搭建一个VSCode编写Python代码的环境。第一步. 安装Python环境(如果已经安装过的可以略过)下载地址:https://www.python.org/downloads/www.python.org/downloads/目前Python最新版本是3.8.5, 但是该版本还处于BUGFIX阶段,所以我们使用稳定的最新版本3.7.8。python2.7 已经在2020-01-01停止维护,如果还在使用Python2的要及时更新哦点击Download后,我们在新页面选择64位安装程序如果下载速度慢的话可以使用代理下载下来打开后,根据图示安装下一步.Documentation:python文档,建议勾上.pip: python安装其他库的工具,必勾.tcl/tk and IDLE: 安装tkinter库和IDLE开发环境, IDLE就是个编辑器,tkinter以后也可以装,这里不推荐勾选.Python test suite:Python标准库测试测试套装,不是必须下一步安装路径自行调整,其余按图示即可。安装成功测试是否有效,win+r 输入cmd 打开控制台,输入python -V,输出了安装的python版本即成功!如果没有输出或者出错,可能是安装时没有勾选添加python安装路径到环境变量,百度一下如何添加即可。VSCode配置Python开发环境接下来就是配置VSCode了,首先打开VSCode, 搜索插件Python并安装。或者直接打开某个.py文件,VSCode右下角将会自动提示你安装。安装完毕后,VSCode应该会出现这个提示需要你选择一个Python的解析器,点击Select Python Interpreter不出意外的话,你已经将Python路径添加到环境变量,于是VSCode可以自动识别到,图中即是你安装的Python解析器的位置了,选择即可。如果VSCode没有提示你选择,那你可以使用ctrl+shift+p, 输入Python Select Python Interpreter 即可。这一步做完后,VSCode可能还会出现这个提示这是VSCode需要你选择一个代码检查插件,你可以直接点击Install来安装pylint,也可以点击Select Linter选择其他的代码检查插件。这里我选择点击Select Linter。或者直接在setting 中输入interpret, 填写pythona安装后的路径VSCode的Python插件默认是使用pylint作为代码检查插件,我更习惯使用pycodestyle。选择后VSCode应该会提示你该插件未安装,点击Install安装即可。python会调用pip去安装,如下图所示即是安装成功了。黄字WARNING是提示pip版本可更新,无大碍。到这里,你已经可以使用VSCode编写python代码了,来试试看!右键可以点击出许多Python插件提供的功能,试试运行该python文件于终端。或者在终端输入 python hello.py 来运行hello.py文件。或者在python文件点击右键,选择“Run Python File in Terminal”成功输出( ̄︶ ̄*))。可以看到Python插件还提供了很多的功能, 比如选中函数后跳转到其实现。
2025年06月06日
1 阅读
0 评论
0 点赞
2025-06-05
文档内容搜索哪家强? 15款文件搜索软件横向评测
随着数字化时代的到来,我们计算机上的文档不断增多。有时我们想找某个文档,只模糊记得一些片段,却怎么都找不到它。多亏了有Everything等软件帮我们高效地定位文件名,但很多时候我们需要搜索文件里面的内容,这就要借助专业的文件内容搜索软件。网上这类软件多如牛毛,每家都说它最强,可实际效果到底怎样,还是通过测试让数据说话吧。我们找到了互联网上15款最新的文件内容搜索软件(其中7款收费、8款免费),这些软件均采用先索引后检索的设计来提高搜索速度。为保证测试环境的纯净,我们在虚拟机Vmware下新安装了Windows 10进行了测试,主要测试各软件对中文搜索的支持情况。我们还对用户关心的索引时间、搜索时间、搜索准确度等指标进行了全面对比。 软件版本情况如下:我们从互联网上搜罗了2000个文档文件作为测试数据,覆盖了常见的各类文档,具体类型分布如下:经过简单的测试,我们发现其中9款软件对中文的支持很糟糕,这些软件后续就不再做进一步测试。以下是这些软件搜“技术”一词的结果(基准数为1206个):除去上述中文支持不好的9款软件,我们对剩下的6款软件进行了详细测试,分别测了索引时间、搜索时间、搜索准确度三个维度。其中,搜索时间和搜索准确度来自十个测试词的数值取平均值,测试词分别是“技术、保密、目的、会同、化工、五年、工程师、最大化、身份证、总经理”;对于搜索准确度,我们以各软件成功匹配结果的合集(剔除重复和误匹配)作为基准分母,以正确匹配数减去误匹配数作为分子,计算准确率;部分软件采用的是全盘索引,为了对比,我们采用纯净操作系统作为测试环境,因为系统文件中的文档很少可以忽略不计。最终比对结果如下:我们对测试结果进行了总结,分别给予了星级评价:1、Google Desktop Search ★★★Google公司作为搜索引擎一哥,2003年就推出Google桌面软件,市场反映很好。但是,Google于2011年关闭了Google桌面项目,因此它对停更后的Win10支持很差,默认情况连搜索结果的详细页面都无法打开。本次测试中,其索引速度最慢,但搜索速度和准确度的表现还中规中距。如果您的系统为Win XP或Win7,可以试试这款软件。2、TextSeek(文本搜) ★★★★★TextSeek(文本搜)是支持Windows、Mac和统信系统的国产桌面搜索软件,本次测试因为需要对比索引,采用的是区域模式。这款软件表现最为优秀,索引时间最少,搜索准确率大幅超出其他软件。其主要缺点是搜索时间耗时最多,这可能是其实现高准确度的代价。实测我们发现,文档数在10万以下的,搜索时间还在可承受范围。如果不在乎搜索时间或搜索范围较小的话,TextSeek还支持无索引搜索的简易模式。3、AnyTXT Searcher ★★★AnyTXT Searcher是基于全盘索引设计的国产搜索工具,搜索速度秒开。不支持指定搜索文件夹,因此首次索引耗时很久。索引速度、结果准确度和软件界面还有待提高。软件免费,据称使用若干次后需分享软件到3个微信群,否则文档预览功能会受到限制。支持Windows、Mac和Linux系统.4、Archivarius3000 ★★★★Archivarius3000是来自塞浦路斯的多语言文档搜索软件,支持多种语言的语法和分词,界面简洁、清晰,索引速度和搜索准确度仅次于TextSeek,搜索速度极快。缺点是中文搜索有时会出状况,比如某些搜索词会出现大量的误匹配,究其原因,是将搜索词错误分词为单字进行匹配,或者出现跨行、跨标点符号匹配。5、Recoll ★★★★Recoll是一款开源的桌面搜索软件,支持Windows、Mac和Linux系统,最新的Windows版本需要捐款给作者才允许下载。本次测试中,Recoll的搜索准确度和Archivarius3000不相伯仲,搜索速度也挺快。缺点是索引时间较长,生成的索引文件较大,还有中文界面实在不敢恭维,可能软件作者中没有中国人的缘故。6、DocFetcher ★★★DocFetcher是另一款开源的桌面搜索软件,支持Windows、Mac和Linux系统。开源免费版于2018年停止更新,作者20年底开始开发收费版本DocFetcher Pro。本次测试中用的是免费版,其搜索速度快,索引速度快。缺点是搜索准确度较差,中文结果会出现遗漏或误报的情况,特别是3字以上搜索词的错误率明显上升。https://zhuanlan.zhihu.com/p/371466155ipcps:最推荐支持AnyTXT Searcher,跨平台,可以免费用,中文支持也好。
2025年06月05日
35 阅读
2 评论
0 点赞
2025-06-04
CP\FT\WAT\SLT
CP是对wafer进行测试,检查fab厂制造的工艺水平,CP测试的项目较多,较全。FT是对package进行测试,检查封装厂制造的工艺水平,FT测的项目较少,但都是关键项目,条件严格。对于测试项来说,有些测试项在CP时会进行测试,在FT时就不用再次进行测试了,节省了FT测试时间,但也有很多公司只做FT不做CP(如果FT和封装yield高的话,CP就失去意义了)。但是有些测试项必须在FT时才进行测试(不同的设计公司会有不同的要求)。在测试方面,CP比较难的是探针卡的制作,并行测试的干扰问题。FT相对来说简单一点。还有一点,memory测试的CP会更难,因为要做redundancy analysis,写程序很麻烦。CP在整个制程中算是半成品测试,目的有2个,{dotted startColor="#ff6c6c" endColor="#1989fa"/}•1是监控前道工艺良率,•2是降低后道成本(避免封装过多的坏芯片),其能够测试的项比FT要少些。最简单的一个例子,碰到大电流测试项CP肯定是不测的(探针容许的电流有限),这项只能在封装后的FT测。{dotted startColor="#ff6c6c" endColor="#1989fa"/}不过许多项CP测试后,FT就可以免掉不测了(可以提高效率),所以有时会觉得FT的测试项比CP少很多。CP不是制造(FAB)测的!而CP的项目是从属于FT的(也就是说CP测的只会比FT少),项目完全一样的;不同的是卡SPEC而已;因为封装都会导致参数漂移,所以CP测试SPEC收的要比FT更紧以确保最终成品FT良率。还有相当多的DH把wafer做成几个系列通用的die,在CP是通过trimming来定向确定做成其系列中的某一款,这是解决相似电路节省光刻版的最佳方案;所以除非你公司的wafer封装成device是唯一的,且WAT良率在99%左右,才会盲封的。CP是把坏的Die挑出来,可以减少封装和测试的成本。可以更直接的知道Wafer 的良率。FT是把坏的chip挑出来;检验封装的良率。现在对于一般的wafer工艺,很多公司都把CP给省了,减少成本。CP对整片Wafer的每个Die来测试,而FT则对封装好的Chip来测试。CP Pass 才会去封装。然后FT,确保封装后也Pass。WAT是Wafer Acceptance Test,对专门的测试图形(test key)的测试,通过电参数来监控各步工艺是否正常和稳定;CP是wafer level的chip probing,是整个wafer工艺,包括backgrinding和backmetal(if need),对一些基本器件参数的测试,如vt(阈值电压),Rdson(导通电阻),BVdss(源漏击穿电压),Igss(栅源漏电流),Idss(漏源漏电流)等,一般测试机台的电压和功率不会很高;FT是packaged chip level的Final Test,主要是对于这个(CP passed)IC或Device芯片应用方面的测试,有些甚至是待机测试;Pass FP还不够,还需要做process qual 和product qual CP 测试对Memory来说还有一个非常重要的作用,那就是通过MRA计算出chip level 的Repair address,通过Laser Repair将CP测试中的Repairable die 修补回来,这样保证了yield和reliability两方面的提升。Pass FP:这里的"Pass FP"可能指的是通过Failure Analysis(故障分析)的过程。在这个过程中,对可能存在的故障或问题进行检测和识别,并对其进行修复和改进。process qual:过程质量保证(process qual)是指通过严格控制生产或服务过程的质量标准,以确保产品或服务的质量达到预期水平。product qual:产品品质保证(product qual)是一种质量控制方法,以确保产品或服务的质量符合客户的需求和期望。CP 测试:这里的"CP"可能指的是Copy Protection(复制保护)。这是一种保护数字内容免遭未经授权的复制、分发或展示的技术。这种测试的目的是为了确保复制保护机制的有效性和安全性。MRA:MRA可能指的是Memory Read Access(内存读取访问)。这通常涉及到在计算机内存中读取数据的过程。chip level:在电子工程中,"chip level"通常指的是在芯片级别进行操作或分析。这可能涉及到对集成电路(Integrated Circuit)或其他微型电子设备进行测试、修复或改进。Rerepair address:这可能指的是在内存中用于修复或替换数据的地址。这通常涉及到数据存储和访问的过程。Laser Repair:激光修复是一种用于修复或替换半导体芯片中损坏部分的工艺。这种技术使用激光束来消除损坏的电路元件,并替换为新的、健康的元件。yield:这里指的是生产率或产量。这是衡量生产效率或生产出的产品数量的指标。reliability:可靠性是指产品或服务在特定条件下、在一定时间内完成特定功能的能力。这里的"reliability"指的是产品或服务的可靠性水平。这里的“DH”指的是“Design House”,即设计公司。这些公司通常为电子设备制造商提供芯片设计和芯片组解决方案。它们可能会将wafer(晶圆)做成几个系列通用的die(芯片),以提供给不同的客户使用。“WAT”可能是指“Wafer Acceptance Test”,即晶圆接受测试。这是在半导体制造过程中进行的一种测试,用于确保晶圆的质量和可靠性。“device”在这里指的是通过WAT测试后的芯片设备,即将wafer封装成一个个独立的芯片。“盲封”在这里可能指的是在不知道芯片具体功能或规格的情况下进行封装。通常情况下,为了确保封装的质量和可靠性,需要进行严格的测试和验证。如果公司的晶圆封装成芯片的过程是唯一的,且WAT良率在99%左右,那么就可以进行盲封,即在不了解芯片具体功能或规格的情况下进行封装。null据我所知盲封的DH很少很少,风险实在太大,不容易受控。•WAT:wafer level 的管芯或结构测试•CP:wafer level 的电路测试含功能•FT:device level 的电路测试含功能 CP=chip probing FT=Final TestCP 一般是在测试晶圆,封装之前看,封装后都要FT的。不过bump wafer是在装上锡球,probing后就没有FTFT是在封装之后,也叫“终测”。意思是说测试完这道就直接卖去做application。CP用prober,probe card。FT是handler,socket CP比较常见的是room temperature=25度,FT可能一般就是75或90度 CP没有QA buy-off(质量认证、验收)CP两方面监控工艺,所以呢,觉得probe实际属于FAB范畴控制成本。Financial fate。我们知道FT封装和测试成本是芯片成本中比较大的一部分,所以把次品在probe中reject掉或者修复,最有利于控制成本FT: 终测通常是测试项最多的测试了,有些客户还要求3温测试,成本也最大。至于测试项呢,如果测试时间很长,CP和FT又都可以测,像trim项,加在probe能显著降低时间成本,当然也要看客户要求。关于大电流测试呢,FT多些,但是我在probe也测过十几安培的功率mosfet,一个PAD上十多个needle。有些PAD会封装到device内部,在FT是看不到的,所以有些测试项只能在CP直接测,像功率管的GATE端漏电流测试Igss CP测试主要是挑坏die,修补die,然后保证die在基本的spec内,function well。FT测试主要是package完成后,保证die在严格的spec内能够function。关于3温测试:这是一种特殊的测试方法,它要求在三个不同的温度下对产品进行测试,通常是常温(25℃左右)、高温(如60℃或70℃)和低温(如-20℃或-40℃)。这种测试的目的是为了检查产品在不同温度下的性能和可靠性,以确保产品能在不同环境下正常工作。关于Trim项:Trim在这里可能指的是微调或者校准的意思。在电子产品测试中,Trim测试通常指的是对一些可以调整的参数进行微调或校准,以确保产品的性能达到最佳。例如,在测试一个频率调整的振荡器时,Trim测试可能包括在不同的频率设置下测试振荡器的性能,以找到最佳的工作频率。关于加在probe能显著降低时间成本:这可能指的是在测试过程中使用一些特定的测试工具或设备(probe),这些工具或设备可以更快地完成某些测试,从而显著降低测试所需的时间和成本。例如,使用自动化测试设备进行功能测试,可以比手动测试更快、更准确地完成测试,从而降低测试时间和成本。关于客户要求:客户要求通常是指在产品设计和生产过程中,客户对产品的性能、功能、质量、可靠性等方面的要求。这些要求可能会影响测试的策略和方法,例如客户可能要求进行更严格的测试以保证产品的质量和可靠性。•CP的难点在于,如何在最短的时间内挑出坏die,修补die。•FT的难点在于,如何在最短的时间内,保证出厂的Unit能够完成全部的Function。小结半导体生产流程由•晶圆制造,•晶圆测试,•芯片封装•封装后测试组成,而测试环节主要集中在•WAT,•CP•FT三个环节。图1 集成电路设计、制造、封装流程示意图WATWAT(Wafer Acceptance Test)测试,也叫PCM(Process Control Monitoring),对Wafer 划片槽(Scribe Line)测试键(Test Key)的测试,通过电性参数来监控各步工艺是否正常和稳定.例如CMOS的电容,电阻, Contact,Metal Line 等,一般在wafer完成制程前,是Wafer从Fab厂出货到封测厂的依据,测试方法是用Probe Card扎在Test Key的Metal Pad上,Probe Card另一端接在WAT测试机台上,由WAT Recipe自动控制测试位置和内容,测完某条Test Key后,Probe Card会自动移到下一条Test Key,直到整片Wafer测试完成。WAT测试有问题,超过SPEC,一般对应Fab各个Module制程工艺或者机台Shift,例如Litho OVL异常,ETCH CD 偏小,PVD TK偏大等等。WAT有严重问题的Wafer会直接报废。WAT测试:这是对半导体晶圆(Wafer)的接受测试,用于监控各步工艺是否正常和稳定。它也被称为PCM(Process Control Monitoring),是一种通过电性参数来检验半导体制造过程中工艺控制的方法。划片槽(Scribe Line)和测试键(Test Key):这是在半导体制造过程中用于WAT测试的两个关键元素。划片槽是沿着晶圆边缘的窄条,用于后续的切割(dicing)过程。测试键则是设在划片槽内或者边缘的特定区域,用于WAT测试。电性参数:这些参数包括电容、电阻、接触以及金属线路等,这些都是在制造过程中需要监控的重要指标。它们反映了半导体器件的电气特性,如电流传导能力、电压承受能力等。Probe Card:这是一种测试工具,用于连接WAT测试机台和测试键。它的一端与测试键的金属pad接触,另一端连接到WAT测试机台。WAT Recipe:这应该是某种自动控制测试位置和内容的软件或者程序,它可以根据预先设定的参数来指导Probe Card进行准确的测试。SPEC:这应该是特定于WAT测试的规格或者标准,超出这个规格或者标准可能意味着半导体制造过程中的某些工艺或者机台存在问题。Module制程工艺或者机台Shift:这是指在半导体制造过程中,如光刻(Litho)、蚀刻(Etch)、薄膜沉积(PVD)等工艺模块出现问题,或者是机台的运行状态发生变化。Litho OVL异常、ETCH CD 偏小、PVD TK偏大:这些都是对半导体制造过程中可能出现的问题的描述。其中Litho OVL异常可能指的是光刻过程中的光学临近效应(Optical Proximity Effect)异常;ETCH CD 偏小可能指的是蚀刻后线条宽度小于预期;PVD TK偏大可能指的是薄膜沉积过程中的厚度偏差。报废:如果WAT测试出现严重问题,比如大量电性参数超出规格,或者连续出现工艺问题,那么整片半导体晶圆会被判定为不合格,进行报废处理。IC测试键(Test Key)是指用于测试半导体芯片上电路性能和可靠性的特定键。这些键通常在芯片制造过程中设置,用于在生产线上进行自动化测试。测试键的设计和位置取决于芯片的类型和功能。通过使用测试键,可以测试芯片的电性能、功能和可靠性。测试键通常会连接到芯片上的电路,以便在测试期间测量电流、电压和其他电气参数。此外,测试键还可以用于验证芯片的功能,例如通过施加特定的输入信号并检查输出信号来测试芯片的逻辑功能。测试键对于确保芯片的质量和可靠性非常重要。通过使用测试键,可以检测到制造过程中的缺陷和问题,并及时采取措施进行修复和改进。因此,测试键是确保半导体芯片质量和性能的重要工具之一。 CPCP(Circuit Probing)也叫“Wafer Probe”或者“Die Sort”,是对整片Wafer的每个Die的基本器件参数进行测试,例如Vt(阈值电压),Rdson(导通电阻),BVdss(源漏击穿电压),Igss(栅源漏电流),Idss(漏源漏电流)等,把坏的Die挑出来,会用墨点(Ink)标记,可以减少封装和测试的成本,CP pass才会封装,一般测试机台的电压和功率不高,CP是对Wafer的Die进行测试,检查Fab厂制造的工艺水平。CP测试程序和测试方法优化是Test Engineer努力的方向,下面介绍几种降低CP测试成本的方法。•1.同一个Probe Card可以同时测多个Die,如何排列可以减少测试时间?假设Probe Card可以同时测6个Die,那么是2×3排列还是3×2,或者1×6,都会对扎针次数产生影响,不同的走针方向,也会产生Test时间问题。•2.随着晶圆尺寸越来越大,晶圆上的Die越来越多,很多公司CP Test会采用抽样检查(Sampling Test)的方式来减少测试时间,至于如何抽样,涉及不同的Test Recipe,一些大数据实时监控软件可以在测试的同时按照一定算法控制走针方向,例如抽测到一个Die失效后,Probe Card会自动围绕这个Die周围一圈测试,直到测试没有问题,再进行下一个Die的抽测,这种方法可以明显缩短测试时间。 FTFT(final test)是对封装好的Chip进行Device应用方面的测试,把坏的chip挑出来,FT pass后还会进行process qual和product qual,FT是对package进行测试,检查封装造厂的工艺水平。FT的良率一般都不错,但由于FT测试比CP包含更多的项目,也会遇到Low Yield问题,而且这种情况比较复杂,一般很难找到root cause。广义上的FT也称为ATE(Automatic Test Equipment),一般情况下,ATE通过后可以出货给客户,但对于要求比较高的公司或产品,FT测试通过之后,还有SLT(System Level Test)测试,也称为Bench Test。 SLTSLT测试比ATE测试更严格,一般是功能测试,测试具体模块的功能是否正常。成都中冷低温的ThermoStream TS-780高低温冲击气流仪以速度、精度和可靠性作为基本设计标准,提供了非常先进的温度测试能力。温度转换从-55℃到+125℃之间转换约10秒,并有更广泛的温度范围-80℃到+225℃; 经长期的多工况验证,满足更多生产环境和工程环境的要求。TS-780应用于提供老化测试、特性分析、高低温温变测试、温度冲击测试、失效分析等可靠性试验,用于芯片、微电子器件、集成电路 (SOC、FPGA、PLD、MCU、ADC/DAC、DSP 等) 、闪存 Flash、UFS、eMMC 、PCBs、MCMs、MEMS、IGBT、传感器、小型模块组件等电子元器件/模块冷热测试。•WAT是在晶圆制造过程中进行的测试,通过对Die与Die之间Scribe Line Test Key电学性能的测试,来监控Fab制程的稳定性;•CP测试是制造完成后,封测之前进行的电学测试,把坏的Die标记出来,减少封装的成本;•FT是Die切割,打磨,封装后进行器件功能性的测试,可以评价封测厂的封装水平,只有所有的测试都通过后,才可以应用到产品上。https://www.eet-china.com/mp/a262869.html
2025年06月04日
7 阅读
0 评论
0 点赞
2025-06-04
AMD/XILINX vivado 问题汇总
问题 一:1.WARNING: [Xicom 50-38] xicom: No CseXsdb register file specified for CseXsdb slave type: 0, cse driver version: 0. Slave initialization skipped.2.INFO: [Labtools 27-1434] Device xc7k410t (JTAG device index = 0) is programmed with a design that has no supported debug core(s) in it.3.WARNING: [Labtools 27-3123] The debug hub core was not detected at User Scan Chain 1 or 3. You must manually launch hw_server4.with -e "set xsdb-user-bscan <C_USER_SCAN_CHAIN scan_chain_number>" to detect the debug hub at User Scan Chain of 2 or 4.5.To determine the user scan chain setting, open the implemented design and use: get_property C_USER_SCAN_CHAIN [get_debug_cores dbg_hub].6.WARNING: [Labtools 27-1974] Mismatch between the design programmed into the device xc7k410t_0 and the probes file D:/Vivado/xc7k410t-2ffg900/ddr_slave_410t_20150527_1/ddr_slave_410t_20150527_1.runs/impl_1/debug_nets.ltx.7.The device design has 0 ILA core(s) and 0 VIO core(s). The probes file has 1 ILA core(s) and 0 VIO core(s).8.Resolution:9.1. Reprogram device with the correct programming file and associated probes file OR10.2. Goto device properties and associate the correct probes file with the programming file already programmed in the device.复制代码大概是说设计里没有ILA core,但是debug文件里有ILA core,而且debug probes窗口下什么也没有。但是,我综合后明明插入了debug core呀,而且在约束文件里也自动生成了相关信息,查看schematic,也添加了debug相关的两个元件,为毛program时就是看不到呢?不知道有没有人遇到过类似的情况,求指点,万分感谢!解决:1: VIO 和 ILA 的CLK 有问题。2: 我查的Xilinx的论坛,貌似也这么说,说是要用free running clock,但我也没弄明白什么样的叫free running clock。我用的就是那些寄存器本来的时钟,如果换个时钟的话,怎么能保证采样不会出问题呢?还是不太明白,能否详细指教?谢谢啦! 所谓的free running clock就是上电就跑的时钟,而不是依赖某些条件才有的。补充一点,FREE CLOCK的确是要求上电无条件运行的时钟。有一次我碰到一种情况。用MMCM或者PLL输出的时钟作为采样时钟,但是如果MMCM或者PLL这个输入并不是上电就来的话,而是等FPGA程序运行了之后时钟输入才来,那么下载程序之后还是在ILA调试界面看不到任何信号。把MMCM或者PLL的输入时钟改为晶振的时钟,那么就可以正常使用ILA了。这是我的个人感觉,没有经过大量验证,所以希望大家多多指教。补充一点,FREE CLOCK的确是要求上电无条件运行的时钟。 其实不用FREE CLOCK也没问题。比方用ZYNQ PS产生的CLK也可以。上电后做PS初始化,再把需要的寄存器设定一下,然后更新一下DEVICE,就可以找到ILA了。3 : 这个问题我遇到过,其实第一种情况是你的时钟信号可能没加入成功(比如外部输出时钟信号没进来或者幅度太小,内部时钟可能没有lock);第二种情况是,你输入到ila核的时钟频率不合适。其实,ila就是个采样你需要的查看的信号的始终,因此最好是直接用外部始终的mmcm生成大于你需要采集信号的最高频率来采样(具体多大频率,看你采样点数的需求和你信号的频率了)。4: 这个问题是时钟引起的。当bit file program完成之后,fpga/vivado会自动检测ila的clock是否存在,如果不存在(在本例中是pll/mmcm没有lock),它就会report 这个warning。这个时候我们只要让时钟工作起来,refresh一下device,ila就会启动--ila的窗口就会出来了。5 : 你试试直接用外部输入的时钟(可经过时钟buf)作为ila的clk,不要用其它模块产生的时钟。问题 二:我在vivado下进行调试,调用了ILA IP Core。如果ila采用晶振输入作为clk时(也即全局时钟),在顶层RTL级,可以看到ila的数据和时钟都连上了。Debug时也能在Hardware下看到XADC和ILA。但如果ila的clk,采用逻辑计数办法分频后的时钟信号、或者采用clock wizard倍频后的时钟信号。在顶层RTL下看ILA的clk并没有和上述时钟源连接上。此时将bit流下载后Debug,也只能看到XADC而看不到ILA核。 想知道使用ILA时,ila的clk的输入源是不是有什么特殊限制?解决:1 : 难道是:(Xilinx PG172)The clk input port is the clock used by the ILA core to register the probe values. For best results, it should be the same clock signal that is synchronous to the design logic that is attached to the probe ports of the ILA core. 2 : 首先确保你的分频结果是有效的。然后,如果你非要用分频结果的话,过一个bufg试试。// BUFG: 全局时钟缓存(Global Clock Buffer),只能以内部信号驱动 // Xilinx HDL库向导版本,ISE 9.1 BUFG BUFG_inst ( .O(O), //时钟缓存输出信号 .I(I) // /时钟缓存输入信号 ); // 结束BUFG_ins模块的例化过程
2025年06月04日
1 阅读
0 评论
0 点赞
1
...
69
70
71
...
76