首页
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
更多
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
Search
1
文档内容搜索哪家强? 15款文件搜索软件横向评测
13 阅读
2
常见系统部署(1)
11 阅读
3
makfile 知识汇总
10 阅读
4
Verilog-AMS Verilog-A介绍
7 阅读
5
欢迎使用 Typecho
5 阅读
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
登录
Search
标签搜索
python
PyQT
systemverilog
Alist
Docker
cadence
sv
webdav
vscode
cpp
upf
ESL
TLM
浏览器
virtuoso
tsmc8rf
TSMC
CXL
PCIE
Yosys
bennyhe
累计撰写
46
篇文章
累计收到
8
条评论
首页
栏目
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
页面
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
搜索到
46
篇与
的结果
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日
13 阅读
0 评论
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日
3 阅读
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日
2 阅读
0 评论
0 点赞
2025-06-04
vscode插件和设置
vscode 推荐插件语言支持: C/C++、python、verilog/systemverilog、scala、 ARM assembly、linkscript、tcl、工具类支持: code runner、compare folder、differ&&merger、 hex ascii coverter、hex editor、indent-Rainbow、 koroFileheader 、mutiple clipboards 、 svn, write Timestamp、Rainbow highlight文档预览和编辑支持: office viewer、open in vim、drawio、 vscode neovim、media player、 Markdown All in one/markdown pdf。AI 支持:Trace AI和第三方工具连接支持:qt configuration、qt tools、pyqt intergrated使用vscode 预览一些开发文档,主要是为沉浸式在vscode 编程,不希望在各个窗口中切来切去,不过对于一些文件如果vscode 无法打开,安装一个Open selected resource in default editor,调用系统默认的编辑器打开文档(可以定义一个快捷键)。安装插件截图vscode 性能优化设置(防止vscode 卡顿)0 将 Language 改为:English(US);1.修复vs code 造成 rg.exe内存占用过大的问题search.followSymlinks: false2.修复vs code 造成 git.exe内存占用过大的问题git.enabled: falsegit.autorefresh: false3.然后继续搜索exclude,在Files:exclude下面有一个添加模式,输入**/node_modules,设置忽略node_modules这个文件夹;4 关闭自动保存功能注意:这样设置后会导致一些插件工作有问题vscode+vim 设置安装neovim 插件,设置neovim路径不过在vscode 中neovim 主要是两点不方便,一个对于定义环境变量的文件路径gf 操作,另外一个是块粘贴,最好还安装一个open in vim 插件,设置在vscode 中terminal 中打开然后定义一个快捷方式:这样如果需要使用块粘贴或者需要gf 打开文件路径,就切换按快捷键进入自动进入terminal 的gvim 中操作。
2025年06月04日
4 阅读
0 评论
0 点赞
2025-06-03
sv中的功能覆盖率常用用法
下面是ieee文档自我提取的一些用法,这一篇的用法,更加全面:covergroup常用用法;covergroup cg_0; cp_name coverpoint signal_name{ bins bin_name0 = {[0:63],65};//两个bin, [0:63],65, 只要有里面的值收到了,就全覆盖 bins bin_name1[] = { [127:150],[148:191] }; // 65个bin,即[]中的每一个值都是一个bin; bins bin_name2 = { [1000:$] };//$表示结尾,即最大值; bins bin_name3[] = default;//其他的所有值,都划分到other, 也是要全部都收到; } endgroupbins with的用法; cp_name: coverpoint signal_name{ bins bin_name[] = {[0:255]} with (item % 3 == 0);//0-255中3的余数为0的部分,构成bin; } 也可以将with的内容封装成function; coverpoint b { bins func[] = b with (myfunc(item)); } wildcard; wildcard bins g12_15 = { 4'b11?? };//只要在1100~1111间的任何一个踩到了,就收到了; wildcard bins g12_15_array[] = { 4'b11?? };//加了[], 会给每一个符合条件的都产生一个bin ignore_bins; 当没有明确定义某一个coverpoint的bins时,EDA仿真工具会生成和收集所有可能的bins,当其中某些bins在RTL中永远都不可能覆盖到,可以使用ignore_bins进行忽略 covergroup cg23; coverpoint a { ignore_bins ignore_vals = {7,8};//不收集7,8; ignore_bins ignore_trans = (1=>3=>5);//不收集1,3,5这个序列; } endgroupillegal_bins; 某个值不可能收到,收到后报错;起到类似checker的作用; covergroup cg3; coverpoint b { illegal_bins bad_vals = {1,2,3}; illegal_bins bad_trans = (4=>5=>6); } endgroupcross;bit [31:0] a_var;bit [3:0] b_var;covergroup cov3 @(posedge clk); A: coverpoint a_var { bins yy[] = { [0:9] }; } CC: cross b_var, A;//两个coverpoint进行cross; endgroupcross中指定bins;int i,j;covergroup ct; coverpoint i { bins i[] = { [0:1] }; } coverpoint j { bins j[] = { [0:1] }; } x1: cross i,j; x2: cross i,j { ignore_bins i_zero = binsof(i) intersect { 0 };//i中不包含0; //binsof(x) intersect (y);//x的取值中,只收取为y的值; } endgroupbinsof 与 && / ||的组合;covergroup address_cov () @ (posedge ce); ADDRESS : coverpoint addr {bins addr0 = {0}; bins addr1 = {1};} CMD : coverpoint cmd {bins READ = {0}; bins WRITE = {1}; bins IDLE = {2};} CRS_USER_ADDR_CMD : cross ADDRESS, CMD {bins USER_ADDR0_READ = binsof(CMD) intersect {0};//默认的bins本来应该是2*3=6个,但是这里只定义了两个bins <addr0,READ> <addr1,READ> bins u2 = binsof(ADDRESS.addr0) || binsof(CMD.READ);// bins 数目为4,包括<addr0,READ>,<addr0,WRITE>,<addr0,IDLE>,<addr1,READ> bins u3 = binsof(ADDRESS.addr0) && binsof(CMD.READ);// bins 数目为1,包括<addr0,READ>} CRS_AUTO_ADDR_CMD : cross ADDRESS, CMD {ignore_bins AUTO_ADDR_READ = binsof(CMD) intersect {0}; ignore_bins AUTO_ADDR_WRITE = binsof(CMD) intersect {1} && binsof(ADDRESS) intersect{0};}(原文链接:https://blog.csdn.net/bleauchat/article/details/90445713)matches; 感觉上像是一个下线; bins apple = X with (a+b < 257) matches 127;// 127~257? 带参数的covergroup;module mod_m; logic [31:0] a, b; covergroup cg(int cg_lim); coverpoint a; coverpoint b; aXb : cross a, b { function CrossQueueType myFunc1(int f_lim); for (int i = 0; i < f_lim; ++i) myFunc1.push_back('{i,i}); endfunction bins one = myFunc1(cg_lim); bins two = myFunc2(cg_lim); function CrossQueueType myFunc2(logic [31:0] f_lim); for (logic [31:0] i = 0; i < f_lim; ++i) myFunc2.push_back('{2*i,2*i}); endfunction } endgroup cg cg_inst = new(3);//每一个例化的时候再指定参数; endmodule结果如下:cg_inst.aXb.one = <0.0> , <1.1>,<2.2>cg_inst.aXb.two = <0.0>,<2.2>,<4.4>,instance;每个覆盖率例化的时候,是所有的合在一起收集,还是每个例化的地方,单独收集对应的覆盖率; 每个覆盖率单独例化的时候,可以指定最终呈现的名字; covergroup g1 (int w, string instComment) @(posedge clk) ; // track coverage information for each instance of g1 in addition // to the cumulative coverage information for covergroup type g1 option.per_instance = 1; // comment for each instance of this covergroup option.comment = instComment; 一些基本的选项,通常不使用;//auto_bin_max, cross_auto_bin_max, goal, weight等等; //参考如下: (221条消息) [SV]SystemVerilog Coverage Options用法總結及案例_元直数字电路验证的博客-CSDN博客_coveragegroup option 也可以参考table 19-2; 设置采样时刻;一般来讲,是不指定采样时刻,然后再rm中比对通过后,手动sample, 可以保证采集数据的合理性和正确性; 也可以指定拍拍采集;covergroup g1 (int w, string instComment) @(posedge clk) ; 数据边界描述;[ $ : value ] => The set of values less than or equal to value[ value : $ ] => The set of values greater or equal to value————————————————版权声明:本文为CSDN博主「newyork major」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/zhangshangjie1/article/details/129121286
2025年06月03日
1 阅读
0 评论
0 点赞
1
...
3
4
5
...
10