
芯片前端脚本
文章平均质量分 58
应用于芯片前端领域的脚本开发和脚本语言学习
尼德兰的喵
这个作者很懒,什么都没留下…
展开
-
【芯片前端】auto_testbench的大版本升级——加入简单预期与自动比对
在上次完成自诩为“定向验证的巅峰之作”之后,我觉得这个工具应该是写到头了,不过最近的实践中我发现,对于auto_testbench的主要应用场景——CBB与UT的验证而言,如果能不依赖于方法学进行一些简单预期和比对,还是可以大幅收敛debug时间的。原创 2023-08-15 01:05:27 · 845 阅读 · 0 评论 -
excel中使地址按十六进制进行数值递增的函数
那这一看显然不是直接拖鼠标就能完成的了,所以我们需要借助一些exel的内置函数。所以之后做寄存器文档时候,只要是连续的地址空间把第一个地址写好,之后就用这个函数顺着往下一拽就可以了!这里是尼德兰的喵·芯片设计相关文章,欢迎您的访问!让我们一起为成为芯片前端全栈工程师而努力!原创 2023-08-01 16:56:01 · 2526 阅读 · 0 评论 -
【python脚本】通过内嵌脚本对RTL中循环语法进行展开
对RTL中的循环语法进行展开,实际上在中已经完成,这次是对auto_unfold.py的一次更新,需求主要来源是:因此我尝试升级了脚本。原创 2023-04-03 12:40:49 · 406 阅读 · 0 评论 -
芯片人的快乐——python+systemverilog用波形祝你新春快乐 |献上祝福语波形生成器|
使用方式资源路径:祝福语波形生成器下载解压于安装有vcs和verdi的linux虚拟机之中:在script目录下,打开 hanzi_trans.py,修改祝福语:好的,回到sim目录,键入make fun,等边编译仿真完成弹出verdi弹窗:双击左侧的u_in_if0,然后中键把gogogo拖到波形窗(为啥结构这么乱,因为是拿之前的工程改的~):然后双击gogogo,并把波形缩放到最小:换点其他的祝福语:可以说是过年过节走亲访友表个白唠个嗑啥...原创 2022-02-02 14:49:03 · 2129 阅读 · 3 评论 -
【python脚本】应用于git批量提交修改文件的一键式脚本
对于从svn转投git的我来说,每次的文件提交是我比较头疼和容易出错的地方。然后再正向的选择去添加哪些文件去提交。因此呢我觉得这个日常提交修改文件的过程可以形成一个简单的脚本用以节约时间。原创 2023-01-28 10:28:06 · 753 阅读 · 2 评论 -
【python脚本】ICer的脚本入门训练——find_key
【python脚本】ICer的脚本入门训练——svn_back_尼德兰的喵的博客-优快云博客_svn back文件【python脚本】ICer的脚本入门训练——gen_tc_尼德兰的喵的博客-优快云博客针对word.docx文档的关键词索引器_尼德兰的喵的博客-优快云博客_docx预览跳到指定关键词位置而这次作为脚本训练呢,是用来查找编译文件内的关键字(其实这个脚本我也写过几次,不过都在内网上(⊙﹏⊙))。原创 2022-12-10 22:46:35 · 902 阅读 · 0 评论 -
【python】bin/dec/hex/bnr以及浮点数进制转换器GUI
【python】bin/dec/hex/bnr进制转换函数及fp32转十六进制_尼德兰的喵的博客-优快云博客myscript_python: 一些小的python脚本。原创 2022-11-27 19:51:01 · 708 阅读 · 1 评论 -
【python】bin/dec/hex/bnr进制转换函数及fp32转十六进制
不知道为什么,给脚本专栏选的这个logo有种怪怪的感觉(⊙o⊙)…为方便后续一些脚本工作,将常用的进制转换函数汇总。所有函数均为字符串输入输出,且不加0x、0b等关键字,以便后续灵活调用。基于这些字符串输入输出的函数,可以非常灵活的根据需求拼接更加复杂的行为:TO->>>十进制二进制源码二进制补码十六进制十进制dec_to_bindec_to_bnrdec_to_hex二进制源码bin_to_decbin_to_bnrbin_to_hex二进制补码bnr_to_dec。原创 2022-11-25 20:59:13 · 1693 阅读 · 0 评论 -
【python】通过多线程解决tkinter gui中按键卡住的问题
前几天在C站上上看到了类似的博客,回想起了我之前解决这个问题的历程,作为一个自学者&外行,碰到这种问题其实还是挺头疼的。原创 2022-10-30 23:20:50 · 1562 阅读 · 0 评论 -
【芯片前端】可能是定向验证的巅峰之作——auto_testbench
在完成这一版后,在实战中我发现,每次生成之后我需要有大量的修改,于是深思熟虑之后做了一版大的修改,并且重命名为auto_testbench,毕竟这才符合定向testbench的定义。原创 2022-09-18 01:31:47 · 1895 阅读 · 10 评论 -
【python脚本】用于生成简单握手接口与自测环境的gen_uvm_agent脚本
由于后续的工作需要,大概率会进行一些验证的工作,因此我非常机智的先把gen_uvm_agent脚本写好。gen_uvm_agent只用来生成简单的握手型接口的全套代码,同时也会生成一个自测环境用于行为确认。......原创 2022-08-29 08:00:00 · 982 阅读 · 2 评论 -
【python脚本】ICer的脚本入门训练——gen_tc
gen_tc是一个芯片前端验证很常见的脚本,作用是:1.根据已有的tc生成新的tc文件;2.修改内部关键字;3.输出文件;原创 2022-08-07 15:36:08 · 1361 阅读 · 4 评论 -
【python脚本】ICer的脚本入门训练——svn_back
svn_back是我写的第一个脚本,没有任何前置条件(如果把跑用例的命令行拼成一起改成可执行文件也算的话,那这就是第二个脚本),它的作用就是把指定的文件或者目录回退到上一个svn版本。老实说这个脚本没有任何的难度和技巧,全是感情。第一次真正让我感受到了脚本的魅力取代重复和固定工作以提升效率。为什么这么长时间才重写了第一个脚本呢?因为知道上周四我才在自己的电脑上能够使用svn工具,同时有在线的svn代码库可以用来搞事情了。......原创 2022-07-24 01:47:11 · 612 阅读 · 0 评论 -
【perl】老司机的再一次翻车:没有想到加了一句打印,会影响结果输出
前言自诩为多年perl海浮沉的老司机,竟然因为加了一句打印而翻车,这真是万万没有想到,记录一下引以为戒。事情的由来在脚本的读取文件里有很多字符串进行处理的时候,定位就会变得困难,比如说我只想打印A的沿路信息,但是直接加打印就会把ABCDE的一大堆信息全打印出来,筛选起来非常的难受。因此我想到了之前搭环境时候做的一个操作,做一个debug函数在数据流里筛选,符合我需求的(比如说带有ecc error的transaction)报文才会触发debug打印,这种操作在脚本里完全可以照搬一下嘛!额外感叹一下原创 2021-09-05 17:43:34 · 310 阅读 · 0 评论 -
【端午趣味征文】有vcs和python吗?来,我教你在波形里画个粽子!
有vcs和python吗?来,我教你在波形里画个粽子!原创 2022-06-03 23:54:38 · 704 阅读 · 5 评论 -
【python脚本】word批注批量提取器V2实用版
word批注批量提取器V2实用版原创 2022-06-03 00:25:28 · 1713 阅读 · 7 评论 -
【python脚本】word批注状态批量提取器V1版本
word批注状态批量提取器V1原创 2022-06-01 21:58:47 · 940 阅读 · 0 评论 -
【VBA脚本】提取word文档中所有批注的信息和待解决状态
VBA提取word批注信息原创 2022-06-01 16:38:14 · 2288 阅读 · 4 评论 -
【python脚本】时钟频率/周期计算小工具
前言作为从来都记不清频率、周期对应关系的人,我非常机智的懂得好脑子不如好工具的道理。所以在linux工作站里我一直借助脚本来看时钟周期:但是我发现这个脚本不太具备迁移性和可视性,所以最好是做一个EXE文件带着用比较好。效果最后做完的效果就是这样,能够接受诸如1.2G/2GHz/8ns/25u这样的输入:资源链接:链接:https://pan.baidu.com/s/1XHhK9wdsSSzb0seHJR9n0w提取码:uk4j代码和可执行文件路径:Ps.我觉得.原创 2022-05-21 00:39:18 · 719 阅读 · 0 评论 -
【python脚本】单行多次正则匹配
【perl脚本】单行循环正则匹配之前写了这篇博客之后,就一直有个问题,在python中如何在一行内循环进行匹配,最后我还是没有完全找到可以和perl中while($ ~= /xxx/g)想对应的语法,不过findall函数倒是可以勉强支撑这个需求:通过findall与for循环进行配合。...原创 2022-04-21 21:18:39 · 1282 阅读 · 0 评论 -
【python脚本】执行过程中触发若干次就停止执行脚本的方式
之前有很多次跑程序跑进了死循环,然后就希望有个类似sv里的error达到一定数量就停止仿真的功能,嵌入到循环里设置10000次循环时候结束程序,我就看看这第10000次循环程序到低在干嘛呢!所以我就准备解决这个事,自然而然的我就想到了多线程的方式于是我试了半天看了各种技术什么start()/join()什么含义,子线程父线程关系,os.exit()只能退出子线程啊,连守护线程setDaemon(True)都看明白咋用了。最后还真让我做了一个模板出来,但是吧,最后的最后我发现好像想的太多了,这事跟线程就没原创 2022-04-09 14:27:56 · 1794 阅读 · 0 评论 -
【芯片前端】一键生成简易版本定向RTL验证环境的脚本——auto_verification
资源路径链接:https://pan.baidu.com/s/1N61m5CMEoc8lRP4yn0ppMg提取码:41e7使用示例下载解压于安装有vcs的虚拟机中,如安装路径为:/home/xiaotu/my_work/auto_verification/则执行脚本:/home/xiaotu/my_work/auto_verification/auto_verification -t xxx -f ./xxx.v-t:顶层名称;-f:顶层文件,或包含顶层文件的文件..原创 2022-03-26 19:07:57 · 2946 阅读 · 0 评论 -
第四个excel VBA demo —— 在interface中一键添加一组AXI接口
前言第三个excel VBA demo —— 由interface文件生成top.v和dummy.vRTL与excel的结合操作还有很多可以探究的点,这次要做的是在interface文件中自动添加一组AXI接口;效果演示资源路径一键添加axi总线的xlsm文档源码总有人私信说我放的代码没注释,这次我真的努力写注释了!Dim axiMaster As StringDim axiSlave As StringDim axiReadWidth As StringDim原创 2022-03-09 01:15:44 · 536 阅读 · 0 评论 -
【perl】检查输入字符串中是否含有非英文字符与符号
在需要perl处理纯英文文本时,如果掺杂了中文字符和符号就会造成一些奇奇怪怪的问题,因此可以通过这样的代码来筛选下:#!/usr/bin/perl my $str = "hello,world";die "Chinese character" if $str =~ /[^[:ascii:]]/;当其中有中文符号时会报错:...原创 2021-11-24 22:45:46 · 839 阅读 · 0 评论 -
【perl脚本】单一文件中的相似内容批量处理
前言这个脚本的功能本身有些拗口:单一文件中的相似内容批量处理,其实就是我们有时需要对log中的大量相似内容做同样的操作,这个时候单纯用vim做的话其实挺难受的,因此我就做了这个脚本。其实这个脚本我做的有些年头了,只不过一直没有拿出来,一直作为不传之秘哈哈。话说回来,当年做完这个后我是真的第一次感觉到脚本对工作效率的提升是如此的明显,从此才开始走上不归路,所以今天我写的格外的细致,虽然脚本里还是没有注释吧~适用场景这个脚本的使用场景是很多的,举一个工作上的例子:比如说在项目初...原创 2021-10-22 00:02:17 · 558 阅读 · 0 评论 -
【杂七杂八】聊聊one line code一行式脚本的一些使用场景
前言one line code script的脚本组织形式实际上我自己使用的非常的少,更多情况下我宁愿通过快捷的gen_sh/gen_perl/gen_python快速生成一个脚本框架,然后补充几行代码来替代重复劳动。但是客观的讲,一行式脚本还是有一些了解的必要性,有时候确实能极大的提升效率。正题最开始接触的一行式其实就在makefile工具中:ifeq ($(seed), random) SEED := $(shell python -c "from random import ran原创 2021-10-17 02:13:35 · 679 阅读 · 0 评论 -
【python脚本】作为一个强迫症,是不能忍没有对齐的表格的
前言小朋宇,你有没有因为工具生成的log参差不齐而强迫症病发呢?不用担心,十一前我忍不了了之后呢,就决心把这个事情给他解决掉!效果首先是看下素材,原始文件是这样的,一个名为test的可怕文件:================================adddd | vvvvvvv | ddddddddssdsrsdfdslfkd99fi9 | 99oookmmmkjjj1111111111| 23222222222 | ddddddddddddd | sssssssssssss原创 2021-10-10 17:03:45 · 453 阅读 · 0 评论 -
【perl】翻车日常记录:使用exists窥视多维HASH时的坑
前言习惯了习惯了,不行就毁灭吧。事情的经过我自己是非常喜欢使用多维哈希结构的,因为不习惯在perl使用类(我一度不知道perl里能用类),因此多维哈希就作为最爱的替代品,我还专门总结了下基本的用法:【perl脚本】多维HASH的一些使用总结但是今天脚本里发生了非常奇葩的事情,让我意识到原来我理解的还是不够深,具体讲是这样的,先简单用一段代码表示:#!/usr/bin/perl print "Hello, World!\n";my %hash;$hash{test}{1原创 2021-09-10 02:40:26 · 501 阅读 · 0 评论 -
【perl】没有想到,有一天竟然在chomp上翻车了
你要是不用chomp来处理字符串后面的换行符,都不敢说会写perl,但是万没想到有一天竟然能翻车。事情的经过是这个样子的,我们经常要在生成的文件放一些文件头信息,比如作者时间啥的,这时比较简单的写法就是这样的:my $user = `whoami`;my $date = `date "+%Y-%m-%d %H:%M:%S"`;my $name = "python_script.py";my @line;$name = $ARGV[0] if $#ARGV >= 0;push(@原创 2021-08-17 23:34:36 · 405 阅读 · 0 评论 -
【python】python解析linux路径函数
前言还是linux下对路径进行处理的问题,因此我把处理归纳一下。对于路径,最棘手的其实无非是环境变量和各层相对路径,通过函数去除这些,最终处理为绝对路径。代码处理处理环境变量:def replace_env_var(path): def get_env(match): return os.getenv(match.group(1)) path = re.sub(r"\$(\w+)", get_env, path) return path处理.原创 2021-07-31 01:02:32 · 723 阅读 · 0 评论 -
【python脚本】致永远记不住时钟周期和频率关系也算不对的人
前言本人永远记不住时钟周期和频率的对应关系,比如说1.5GHz的时钟周期是多少呢,1/1.5之后我就总是拿不准后面的单位应该是啥,所以我硬着头皮记了几次ms-K/us-M/ns-G/ps-T的关系,最后放弃了。后来呢后来我就自己做了简单的辅助脚本,但是发现之前写错了,有些情况会算错,因此今晚重新写了一下,大概其就是这个效果吧:[xiaotu@xiaotu-eda ~/my_work/glb_env]$clk_dis -i 1.5G==========freq info==========原创 2021-07-28 00:39:28 · 453 阅读 · 0 评论 -
【python脚本】应用于verilog RTL的顶层模块互连集成工具
前言在我年轻的时候,在例化了几个近百行接口的module,声明了还几百行的接口和wire后,精神就已经恍惚了,一直恍惚到今天。于是后来我尝试了各种办法来简化这个过程,包括生成简单的例化代码,通过VBA做例化文件等等,但是使用无法解决还是需要手动修改和连线的问题。在见识了很多其他的连线工具后,这次我觉得可以彻底解决这个问题了。准备做好的脚本我放在了固定路径下,之后在vimrc中补充这句话:command! L :execute '%! /home/xiaotu/my_work/gen_lin原创 2021-07-16 01:19:35 · 3761 阅读 · 5 评论 -
【python】根据配置的正则模板,转换输入字符串
前言我之前做过一个perl脚本,是根据输入的正则配置,把要处理的字符进行正则转换,根据我现在的需求呢,我需要用python再做一个这样的函数,以备后用;示例配置好的正则匹配模板(来自配置文件),对于符合以下规则的字符串:org = "(pre|post)_a_b_if(.*)"转换为以下的形式:to = "mod1_mod2_if#2#_#1#"举个例子:"post_a_b_ifsize" -> "mod1_mod2_ifsize_post"用#1#.. #.原创 2021-07-10 23:20:10 · 521 阅读 · 0 评论 -
【python脚本】生成RTL dummy文件
前言模块接口确定后,定层互连或者环境集成,有时会需要提供dummy文件;效果[xiaotu@xiaotu-eda ~/my_work/gen_dummy]$gen_dummy -f flow_proc.v.//gen_dummy is working1.生成dummy文件2.生成dummy文件,输出信号tie0选择你要进行的操作:1生成的文件:[xiaotu@xiaotu-eda ~/my_work/gen_dummy]$gen_dummy -f flow_proc.原创 2021-07-08 23:25:44 · 1465 阅读 · 8 评论 -
【我叕有一个大胆的想法】这次是真的解决了忘记source指定bashrc的问题了
前言【我又有一个大胆的想法】是时候彻底解决 忘记source指定bashrc导致一系列后果 的严重问题之前这个博文里,daozu原创 2021-06-18 23:15:38 · 317 阅读 · 0 评论 -
针对word.docx文档的关键词索引器
打包python为exe原创 2021-06-14 12:30:25 · 939 阅读 · 0 评论 -
【快速断言体系】一步步搭建一个高效的快速断言体系 3
前言【快速断言体系】一步步搭建一个高效的快速断言体系 2原创 2021-06-10 22:24:39 · 425 阅读 · 0 评论 -
【快速断言体系】一步步搭建一个高效的快速断言体系 2
前言【快速断言体系】一步步搭建一个高效的快速断言体系 0原创 2021-06-10 00:27:41 · 335 阅读 · 0 评论 -
【日常总结】在看了那么老多工具log之后,我越发感受到awk的好
前言有一段时间我沉迷于各种一行式,大概就在写这两个东西的时间点:【perl脚本】perl one line的几个有趣实例1【perl脚本】perl one line的几个有趣实例2差不多就在这个前后,我知道linux下与grep和sed并列的第三个命令awk,但是说实话吧当时我并没有感受到他的巨大威力,我记得那时候可能就做类似这样的事情:svn st | grep M | awk '{print $2}' | xargs -I {} svn ci -m "" {}这句代码是把当前目原创 2021-05-27 22:27:57 · 234 阅读 · 0 评论 -
目录下飞速打开rtl list的快捷键
前言自从我知道直接敲verdi开RTL之后,我就经常敲这段命令:verdi -f xxxx_sim.lst - top xxxx -c &这段代码你看着没啥吧,但是当我一天敲了5 6遍之后还是不行了,哎呀都烦死了,就很难受所以我回到家我就开始琢磨啊,如果在一个rtl目录下,敲个vd系统就自行来查找目录下的xxx_sim.lst文件并且解析定层文件为xxxx,那不就稳了么!加上我又恢复了gen_python的环境,所以我决定还是搞一下再睡觉(我有一个大胆的想法】用perl搞个原创 2021-05-16 00:25:13 · 471 阅读 · 0 评论