- 博客(52)
- 收藏
- 关注
原创 linux tar gzip bzip2 zip xz
在 Linux 中,压缩和解压缩文件/文件夹是常见操作,常用的工具包括。本身是归档工具,但可结合压缩算法(如。格式(高压缩率,速度较慢)。压缩格式(压缩率更高)。
2025-03-31 11:05:13
449
原创 tcl package
是一种模块化管理工具,用于组织和复用代码。通过将相关功能封装为独立的包,可以实现代码的动态加载、版本控制和依赖管理。掌握 Tcl Package 机制,能够显著提升代码的可维护性和可扩展性,适用于大型项目开发和第三方库分发。通过 Tcl Package 机制,开发者可以高效地实现代码模块化和复用。在加载包之前,需确保 Tcl 能找到包目录。将包目录复制到 Tcl 的默认包搜索路径(如。
2025-03-29 11:47:32
803
原创 uvm高级分层特性
UVM 的分层特性是其验证环境灵活性和可扩展性的核心,通过层次化设计可实现组件的模块化复用、动态配置及跨层次协作。通过灵活组合上述特性,可构建适应复杂场景的模块化验证平台,显著提升代码复用率与验证效率。
2025-03-29 11:01:57
527
原创 UVM核心类库
UVM(Universal Verification Methodology)的核心类库提供了一套标准化的验证组件和机制,是构建高效、可重用验证环境的基础。UVM核心类库通过清晰的继承关系和职责划分,为验证工程师提供了标准化、模块化的开发框架。通过灵活组合这些类与机制,可高效构建适应复杂场景的验证平台,显著提升验证效率与代码复用性。UVM 类库的基类分为 uvm_object。和 uvm_component。
2025-03-28 23:00:03
718
原创 uvm TLM
的核心机制,它通过抽象的事务传输(而非信号级交互)提升验证平台的可重用性和仿真效率。UVM TLM 定义了多种端口类型,支持不同通信模式(阻塞、非阻塞、广播等)。掌握TLM机制,能够显著提升验证平台的设计质量与维护效率,是构建复杂UVM验证环境的核心技能。UVM TLM通过标准化的事务通信接口,实现了验证组件的解耦与高效协作。UVM TLM(事务级建模)是验证环境中组件间。:通过实现接口方法(如。
2025-03-28 22:52:32
726
原创 uvm configuration
类实现跨组件的数据共享和灵活配置。通过合理使用配置机制,可显著提升验证平台的灵活性和可维护性,支持复杂场景的动态适配。是验证环境中实现参数传递和动态配置的核心方法,通过。UVM 的配置机制通过。
2025-03-28 22:45:39
529
原创 uvm phase
UVM Phase通过分阶段的执行流程和Objection机制,确保了验证环境的可靠初始化、同步运行和有序退出。合理使用Phase机制可以显著提升验证平台的可维护性和调试效率。是验证环境初始化和执行流程的核心控制框架。它通过预定义的阶段(Phase)管理组件的创建、连接、运行和清理,确保验证平台的有序执行。通过理解并正确应用Phase机制,验证工程师可以构建高效、稳定的UVM验证环境。UVM允许用户添加自定义Phase,但需谨慎使用。UVM Phase分为。,执行顺序严格固定。:控制仿真何时结束。
2025-03-28 22:43:15
952
原创 uvm factory
UVM Factory 是验证环境中实现动态对象和组件创建的核心机制,它通过类型注册和覆盖(Override)机制,允许在不修改原有代码的情况下替换组件或事务类型,从而提升验证环境的灵活性和可重用性。UVM Factory 是验证环境灵活性的核心机制,通过类型注册和覆盖,实现了“代码无需修改,行为动态可配”的目标。合理使用Factory机制,能够显著提升验证代码的可维护性和场景覆盖率,是现代芯片验证方法学中不可或缺的一部分。仅替换特定路径下的父类实例(例如只替换某个Agent中的Driver)。
2025-03-28 22:36:30
406
原创 uvm sequence
UVM Sequence 是验证环境中动态生成和控制事务流的核心组件,通过灵活的随机化、层次化设计和同步机制,能够高效构建复杂测试场景。合理使用虚拟Sequence、Factory重载和调试工具,可显著提升验证效率和场景覆盖率。UVM Sequence 是验证环境中生成和控制事务(Transaction)流的核心机制,它通过动态生成、随机化和调度事务,实现灵活多样的测试场景。:结合功能覆盖率分析,优化Sequence的约束。:简化事务创建、随机化和发送流程。实现跨Sequence同步。控制字段的随机概率。
2025-03-28 22:33:55
401
原创 uvm transaction
UVM Transaction 是验证环境中数据传输的核心单元,用于封装与DUT(Design Under Test)交互的数据和协议信息。它是验证组件(如Driver、Monitor、Scoreboard)之间通信的基础。UVM Transaction 是验证环境的数据核心,通过封装、随机化和通信机制,实现了高效的测试场景生成和协议验证。合理设计Transaction的结构和约束,能够显著提升验证的灵活性和覆盖率。Transaction通常继承自。
2025-03-28 22:29:28
933
原创 uvm testbench
UVM(Universal Verification Methodology)的测试平台(Testbench)是一个高度结构化的验证环境,用于验证数字设计(DUT,Design Under Test)的功能正确性。UVM Testbench通过标准化架构和灵活的配置机制,显著提升了验证效率和可维护性,是复杂芯片验证的核心方法学。作用:集成所有验证组件(Agent、Scoreboard等),作为Testbench的核心容器。作用:管理DUT接口相关的组件(Driver、Monitor、Sequencer)。
2025-03-28 22:25:33
823
原创 uvm基本知识
UVM(Universal Verification Methodology)是一种基于SystemVerilog的验证方法学,主要用于集成电路(IC)和系统级芯片(SoC)的功能验证。基于事务的通信接口(如uvm_tlm_analysis_port),用于组件间高效数据传输(如Monitor到Scoreboard)。封装数据包(如寄存器读写、总线传输),通过uvm_sequence_item定义,作为验证环境中的数据单元。调试支持:内置消息报告系统(uvm_info/uvm_error)和覆盖率收集。
2025-03-28 22:15:03
336
原创 tcl list
list 创建一个列表(自动处理空格和特殊字符) list a b {c d} “e f” a b {c d} {e f}(生成包含4个元素的列表)concat 合并多个列表(扁平化) concat {a b} {c {d e}} a b c d e(子列表 {d e} 被展开)join 将列表元素连接为字符串(可指定分隔符) join {a b {c d}} “:” a🅱️{c d}(默认分隔符为空格)lsearch 搜索列表中匹配条件的元素 lsearch {a b c b} “b”
2025-03-27 12:01:24
243
原创 tcl string
string compare 字典序比较字符串(区分大小写) string compare “apple” “Banana” 1(“apple” > “Banana”,字典序中大写字母优先级低于小写)string trim 删除字符串首尾的指定字符(默认删除空格) string trim “##text##” “#” “text”(仅删除首尾的 #)string index 获取指定索引位置的字符(索引从0开始) string index “abc” 1 “b”(索引超出范围时返回空字符串)
2025-03-27 11:14:07
907
原创 tcl info
命名空间:使用 info procs 或 info commands 时注意命名空间前缀(如 ::myns::proc)。作用域:info vars 默认返回当前作用域的变量,全局变量需通过 info globals 或 :: 访问。性能影响:info exists 和 info vars 在循环中频繁调用时需谨慎,可能影响效率。# 返回 {a b}
2025-03-26 16:42:13
851
原创 tcl file
返回 “dir1/dir2/file.txt”(Unix)或 “dir1\dir2\file.txt”(Windows)file link -symbolic “symlink.txt” “target.txt”;
2025-03-26 16:17:35
548
原创 tcl trace add execution
在 Tcl 中,trace add execution source enter _source_enter_proc 用于为 source 命令的 执行阶段 添加跟踪机制。避免递归调用:若在 _source_enter_proc 中再次调用 source,需防止无限循环。_source_enter_proc:自定义的回调过程(函数),用于处理跟踪事件。source:被跟踪的命令名称(此处为 source 命令)。enter:跟踪阶段,表示在命令 开始执行时 触发回调。
2025-03-26 15:08:52
434
原创 tcl语法 ::env
在 Tcl 中,set target_name $::env(TARGET_NAME) 的作用是 将系统环境变量 TARGET_NAME 的值赋给 Tcl 变量 target_name。puts “错误:未定义环境变量 TARGET_NAME”功能:Tcl 的 set 命令用于创建或修改变量。$env(PATH) 表示系统的 PATH 环境变量。(2) 依赖环境变量的逻辑。(1) 环境变量存在性检查。(1) set 命令。(1) 读取环境变量。(2) 作用域问题。
2025-03-25 11:31:56
573
原创 tcsh的变量扩展
t 提取路径的末尾文件名(类似 basename) set path = “/home/user/file.txt”错误处理:未定义的变量在严格模式下可能导致错误,建议使用 ${var:-default} 提供默认值。${var:=default} 如果 var 未定义或为空,将其赋值为 default,并返回 $var。${var:-default} 如果 var 未定义或为空,返回 default,否则返回 $var。echo ${var} # 输出 hello(推荐使用花括号,避免歧义)
2025-03-24 17:51:02
673
原创 python保留字符
if/elif/else:定义条件分支,elif 是 else if 的缩写。pass:空操作占位符,用于语法完整性(如未实现的代码块)。continue:跳过当前循环的剩余代码,进入下一次迭代。finally:无论是否发生异常,最终执行的代码块。nonlocal:声明嵌套作用域中的非局部变量。for:迭代序列(如列表、元组)中的元素。while:根据条件重复执行代码块。return:从函数中返回值并退出。try:包裹可能引发异常的代码块。
2025-03-20 19:18:53
282
原创 linux sed命令
对于每个输入行,在运行脚本之后,sed通常输出模式空间(由脚本修改的行),然后从下一行再次开始循环。因此,sed脚本对应于循环体,循环体遍历流的行,其中循环本身和循环变量(当前行号)是隐式的并由sed维护。sed脚本的每一行都是模式-动作对,指示着要匹配的模式和要执行的操作,可以将其重新组合为条件语句。如果我们想查看文件的内容,可以使用cat命令,如果想查看文件的底部和顶部内容,可以使用head和tail工具。如果您只想打印被替换的行,请使用“-n”选项与“/p”打印标志一起使用,以仅显示被替换的行——
2025-03-16 00:24:37
802
原创 python pandas入门指南
终于也到介绍pandas的时候了,python中用于处理data的一个lib从wiki中找到的关于pandas的介绍,如下,;Repository可以看的出来,pandas的诞生的很晚,而且时使用python/Cython/C开发的,自然就成了python中处理data的lib。
2025-03-12 16:14:58
616
原创 perl、python、tcl语法中读写Excel的模块
pandas:通过 read_excel() 方法支持 .xls 和 .xlsx 格式。Spreadsheet::WriteExcel(旧版):生成 .xls 文件。Spreadsheet::ParseExcel:解析 .xls 文件。Spreadsheet::ParseXLSX:支持 .xlsx 格式。Excel::Writer::XLSX:生成 .xlsx 文件。xlrd:支持传统 .xls 格式的读取。xlwt:生成 .xls 格式文件。读写 Excel。
2025-03-11 11:56:25
289
原创 python re正则表达式
reg exp在linux中和三剑客sed、grep、awk在一起使用的最多,在perl存在grep命令、tcl中有regexp和regsub,但是python中把reg exp写成一个库和函数也是给足了对它的重视。
2025-03-08 20:11:24
493
原创 python文件I/O和文件方法
如果该文件已存在,文件指针将会放在文件的结尾。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。
2025-03-08 00:48:39
942
原创 linux awk命令和awk语言
Awk 是一个工具,使程序员能够编写小巧但有效的程序,这些程序以定义要在文档的每一行中搜索的文本模式的形式出现,并定义当在某一行中找到匹配项时应采取的操作。Awk 的内置变量包括字段变量—$1、$2、$3 等($0 是整个行)—这些变量将一行文本分解为单独的单词或称为字段的片段。由于默认情况下,输入行是输入记录,因此默认的记录分隔符字符是换行符。通常大家说的awk几乎都是在linux/unix中使用的awk命令,见下,在上面的例子中,awk 命令打印出所有匹配 ‘manager’ 的行。
2025-03-07 23:23:40
663
原创 python JSON模块
JSON模块是python的库,用来import JSON来解析JSON格式的文件中的数据用于python语言分析,即Parse JSON - Convert from JSON to python。也可以将python中的数据用JSON格式导出来。python JSON模块。
2025-03-07 16:24:28
218
原创 tck/tk可视化窗口
上为初始化窗口,当添加必要的参数后,可以得到下窗口。第二部分,一个脚本,用于实现工作可视化。如有疑问,请留言,看见会给出回复。下为tcl/tk脚本。
2025-03-04 00:16:09
366
原创 grep -m
解释:-m是grep命令的一个选项,用于设置grep命令匹配行数的最大值。当使用-m选项时,grep命令会在匹配到指定行数的行后停止搜索。在file.v中grep pattern,出现第一个pattern的行后就停止。
2024-12-27 17:21:54
120
原创 Linux 使用find命令将查到的文件复制到指定的目录中
指定路径 – /proj/sbio_alishan_dfx1/to_SOC/RBM/路径 – usb[a401]文件类型 – 普通文件。名称 – *.rbm。执行 – -exec。命令 – cp {}命令结束标识 –;
2024-12-24 12:11:03
229
tcsh语法总结word
2024-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人