- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 perl语言入门(1)标量数据
这是perl语言入门的第一部分,相当于是小骆驼这本书的一个读书笔记。数字perl内部的数字都是按照双精度浮点数来保存数字的,也就是说perl内部不存在整数值。perl允许使用十进制以外的其他进制来表示数字,八进制以o开头,十六进制以ox开头,二进制以ob开头。当字符国产时,perl允许你在这个字符中使用下划线。单引号字符串直接量指由一对’圈引的一串字符。'并不能算作一个字符。例如’fred’表示的是四个字符。可以加\表示转义字符串可以用.操作符连接起来。x代表字符串重复操作符。我们可以使用use
2021-04-09 11:00:56
157
原创 秋招笔试之如何计算有符号位?
什么是有符号位?计算机中的数据类型分为俩种,一种是有符号类型,另一种是无符号类型。我们如何用二进制来表示?在有符号类型中,我们一般用补码来表示负数的值。二进制的最高位代表正负,正数为0,负数为1。例如:1:0001-1:1111那么为什么-1是这样来表示呢?那就涉及到另一个知识,反码和补码。正数的反码与原码相同。负数的反码是除了符号位外,其余位取反。正数的补码也与反码相同,负数的补码是在反码的基础上+1也就是说正数的反码和补码都是他本身...
2020-08-01 10:03:25
310
原创 perl脚本之正则表达式(2)
进行大小写无关的匹配/i可以是你进行模式匹配时不区分大小写。例:if {/yes/i} #大小写无关的匹配/S来匹配任何字符.无法匹配换行符,如果希望.可以匹配到换行符,则需要加/s修饰符,用/x加入空白,可以使它更容易阅读和理解。也可以将上述操作符连在一起使用,例:if{/barney.*fred/is}锚位^用来表示字符串的开头,用来表示字符串的结尾。/fred/只会匹配字符串最前端的fred,/rock用来表示字符串的结尾。/^fred/只会匹配字符串最前端的fred,/rock用来表示
2020-06-16 19:44:14
842
原创 perl脚本之正则表达式(1)
什么是正则表达式?正则表达式是匹配某字符串的模板。简易模式如果匹配$的内容,只用将模式写在/中即可,例:$ = “yssddd”;if (/sd/){print “it matched”;}匹配多个内容:(.)是任何单字符的通配符,如果使他失去元字符的意义则使用.使他失去特殊作用。用来匹配前面的内容零次或者多次。例如:/fredbadd/能够匹配fred和badd之间有任意数目d的串。.*用来匹配任意字符无限多次,+会匹配前一个条目一次以上,通俗的说就是:算上刚才所说的,再加上任意次重
2020-06-16 16:29:00
347
原创 uvm基础(3)phase机制-深入分析phase机制的原因
引入phase机制的原因我们虽然可以通过new函数来实现对象例化,但是new函数无法保证验证环境在实现层次化时保证例化的先后关系,以及各个组件例化后的连接。因此uvm引入了phase机制。phase执行机制phase按是否消耗仿真时间,分为俩大类,一类是function phase,如build_phase,connect_phase这些不消耗时间在零时刻就可以完成。另一类是task phase,如run_phase。这类是消耗仿真时间的。phase的执行顺序build_phase是自上而下执行的
2020-06-10 10:50:08
2185
原创 uvm基础(3)config机制-重点
virtual interface的传递主要注意一下几点:1.接口传递应该放在run_ test之前。保证在build_phase之前,vif已经传到了uvm_config_tb中。2.用户应该把virtual interface 与interface区分开。传递的类型应该vif。例如:在顶层set:uvm_config_tb #(virtual intf)::set(uvm_root::get(),“uvm_test_top.c1‘’,“vif”,intf);在C1中get:uvm_config
2020-06-08 22:16:41
658
原创 uvm基础(2)TLM通信,看这一篇就够了
tlm通信概述tlm通信的步骤:1.分辨出initiator和target,producer和consumer。2.在target中实现tlm通信方法。3.在俩个对象中创建tlm端口。4.在更高层次中将俩个对象进行连接。-端口类型有三种:1.port,一般是initiator的发起端。2.export,作为initiator和target的中间端口。3.imp,只能作为target接受request的末端。4.多个port可以连接同一个export或imp,但是单个port或export
2020-06-07 18:33:04
4851
1
原创 uvm基础(1)factory机制
工厂的意义uvm工厂的存在是为了更方便地替换验证环境中的实例或已注册的类型。用来替换的对象或类型应该满足注册和多态的要求。工厂提供的便利factory的步骤:1.将类注册到工厂。通过uvm_component_utils,uvm_object_utils。2.例化前设置覆盖对象和类型。3.对象创建。工厂创建为什么要将uvm_component和uvm_object区分开呢?因为uvm_component创建出来的组件最终会表示在uvm层次中,而uvm_object不会。这也可以从
2020-06-06 22:17:19
655
原创 SV核心知识(3)
interface clocking作用:用来进行事件的同步,输入的采样,输出的驱动。组件的通信1.event ,单一的通知功能,用来做事件的触发。semaphore,共享资源的安全卫士。mailbox,精小的SV原生fifo。
2020-05-21 21:15:33
1065
原创 SV核心知识(2)
1.任务和函数task和function的参数列表的类型有四种:input,output,inout,ref。其中,ref类似于软件的指针,调用时不会复制,而是直接引用或修改外部传入的数据对象。inout和ref的区别是:inout只有当方法结束之后才可以传递到外部,而ref可以在方法执行过程中就修改数据对象,无须等到方法结束。如果保护数据对象只被读取不被写入,则通过const的方法来限定ref声明的参数。function和task的区别:1.task不能通过return返回结果。2.task可以内
2020-05-21 15:20:26
3087
原创 SV核心知识(1)
1.sv的数据类型sv与Verilog最大的区别就是引入了logic这个数据类型。主要区别在于:logic可以使验证人员不用考虑变量会被综合为线网还是寄存器。logic属于四值逻辑,bit属于二值逻辑。他们的区别主要在于sv期望将软件和硬件的世界区分开。四值逻辑属于硬件的世界,二值逻辑属于软件的世界即验证的世界。2.接口的作用对各个模块做清晰有序的连接,同时将DUT和testch隔离开来,提高环境的复用性。需要注意的是:接口中的信号应该定义为四值逻辑,这样是为了防止接口与DUT相连时,X与Z的信
2020-05-21 12:19:52
3707
原创 TCL使用
tcl常用的语法1.## tcl脚本命令tcl有效的命令是以命令+字符串的形式。例如 set a 4;2。置换命令tcl中,有三种置换:变量置换,命令置换和反斜杠置换。##2.1变量置换以$为标记,例如%set $x+y;就是讲x的值与y相加。##2.2命令置换以【】为标记,例:%set [expr KaTeX parse error: Expected 'EOF', got '#' at position 7: x+y];#̲#2.3反斜杠置换\主要是为…,等特殊符号。##2.4.
2020-05-18 18:06:41
863
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人