自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 VCS + DVE +VERDI

dump -add ./* (发现其实不需要)

2024-04-25 00:15:22 365

原创 [TCL]1.Tcl基础(1)

解释执行的理解成”逐行执行“;有效命令行:cmd+string。格式化的数据格式类似于Questa的UCDB文件。(1)Tcl是解释执行,而非帮助编译的语言。3.置换(substitution)(6)break与continue。0.覆盖率驱动验证(CRV)简述。(5)双引号和话括号。(2)while命令。

2024-02-26 01:28:03 111

原创 termp

import reimport csvimport os'''classdocs''''''''''''classdocs'''''''''"""= ''):\n')\n')\n')\n')\n\\n\\n\\n\end\n\\n')\n\\n\\n\

2023-11-21 00:25:09 76

原创 [makefile]6_make install的实现

tail 命令用于显示文件的末尾内容,默认显示文件的最后 10 行。通常情况下,tail 命令用于实时查看日志文件。echo中>表示写入文件,并将文件内所有文字替换,也就是说会先清除文件内容再写入。chmod a+x a.txt 等价于 chmod +x a.txt。给所有用户给予a.txt文件可执行权限。而>>则是在末行追加一行新的到文件中。

2023-11-14 00:01:53 208

原创 [makefile]5_条件判断_循环_自定义函数

A:=123B:=$(A)#自己的函数名echo $(0)#传参echo func1endefA:=456all:echo $(A)A:=7893.示例打印A的是最终值。

2023-11-13 00:56:26 280

原创 [makefile]4_通用部分做公共头文件_shell命令

(1)"="对变量进行赋值时,解析该变量的时候,该变量的值等于最后一次赋值时的值,而不是当前位置时该变量的值。所以你看变量引用的值时不能只往前面看,还要往后面看。用":=“来赋值的,则是就地直接解析,只用往前看即可,和我们在C语言里的”="逻辑上是一样的。即只受当前行及之前的代码影响,而不会受后面的赋值影响。(1)之前的include方式也算是一种嵌套,嵌套就是一个makefile中调用别的makefile。

2023-11-13 00:52:12 47

原创 [makefile]3_运行流程_动/静链接库

与动态库相比,静态库可以不用部署(己经被加载到程序里面了),而且运行时速度更快(因为不用去加载)。(5)产生库文件需要用到 -fPIC -shared :g++-shared-fPIC SoTest.cpp -o libSoTest.so。打个比方,你要出去玩,在路上要走三天三夜,动态库就是,你背着一袋粮食上路,饿了就吃一口静态库就是,你吃饱了出发,不用带粮食。(2)好处是程序可以和库文件分离,可以分别发版,然后库文件可以被多出共享。(7)编译和运行都得指定库文件(.so)(3)包含库文件进行编译和运行。

2023-11-13 00:46:56 160

原创 [makefile]2_make变量_伪目标_模式匹配

make变量_伪目标_模式匹配

2023-11-13 00:37:47 35

原创 [makefile]1_make格式_编译流程

make默认在当前目录中寻找GUNmakefile、makefile、Makefile 的文件作为make的输入文件。依赖:指执行当前目标所要依赖的先项,包括其他目标,某个具体文件或库等,一个目标可以有多个依赖。命令:该目标下要执行的具体命令,可以没有,也可以有多条,多条时每条命令一行。-s 只执行命令,但不显示具体命令,此处可在命令中用@符抑制命令输出。没有指定目标时,默认使用第一个目标,如果指定,则执行对应的命令。-n 只输出命令,但并不执行,一般用来测试。目标:一般是指要编译的目标,也可以是个动作。

2023-11-13 00:29:44 46

原创 [systemverilog]10_类型转换_虚方法_对象拷贝_回调

子类的句柄可以赋给父类,但是通过句柄索引的对象变量仍是父类的。类的多态和虚方法、动态绑定。当父类句柄指向子类对象时,调用的方法是父类的,如若想调用子类的方法就涉及到虚方法。c错在成员变量。

2023-08-18 00:22:16 98

原创 [systemverilog]9_覆盖组_Covergroup_Coverpoint_bin

例化除了例子中的“CovPort = new()”,也可以用多次例化定义例化名,“CovPort cg1 = new();如果有多个coverpoint,则可添加名称,cross kind,port前也可以添加名字,值得注意的是可以不指定bin,下例中就是突突的coverpoint。一个coverpoint自定义了多个bin,用bins定义一个仓,bins hi []代表仓数组。d:可能没有关心或省去了一些值(bin),就不能简单地乘积。(1)概述(covergroup、coverpoint)

2023-07-17 23:47:58 701

原创 [systemverilog]8_代码覆盖率_行/路径/翻转/状态机覆盖率_功能覆盖率

断言覆盖率需要自己定义,只有代码覆盖率软件会自动收集的。断言覆盖率使用assert,断言覆盖率可用来检测互斥。d两种可能一个是设计代码,一个是验证环境,可能是设计没有实现某功能,也可能是环境没把设计定位到感兴趣的状态上。路径覆盖率路径指的是branch,if语句或case语句。覆盖率不仅在仿真可以收集,形式仿真、硬件加速也可以收集。代码覆盖率关注点在于设计代码,而非验证环境的代码。收集什么时候,收集哪些数据,可以降低开销。(1)收集信息而非数据。(2)只测量需要的内容。(2)覆盖率反馈回路。

2023-07-17 23:13:55 118

原创 test_plan

2023-07-03 00:48:09 53

原创 dll_dll

/应该与上述代码等价,但该版本在模拟时p1_out等于r0_out。

2023-04-20 00:38:53 73

原创 1.Sequence_操作符号

a ##1 b:仅表示时序,由于不含蕴含操作符,所有没有如果的含义(如果a=1下一拍b拉高)。(1)assertion和property。(2)property和sequence。(3)基于断言的验证方法学(ABV)(4)implication操作符。(4)intersect操作符号。(1)什么是assertion。(3)sequences概念。(3)and操作符号_特殊点。(2)and操作符号_示例。(4)并行断言的执行阶段。(6)or操作符号_示例。(7)and/or应用。(5)断言语言的发展。

2023-04-17 00:44:11 60

原创 tb mcdf

clk <= 0;#5 clk <=!clk;endendrstn <= 1;endmodule tb;mcdf dut(

2023-04-02 00:50:15 93

原创 reg_pkg

bit rsp;endclasselseforkjoinendtaskendendtaskendendtaskendendendendcaseendtaskendtaskendclass。

2023-04-02 00:49:13 89

原创 mcdf_rgm_pkg

endgroupendendendclassendgroupendendendclass。

2023-04-02 00:46:06 128

原创 mcdf_pkg

bit en;forkdo_reset();joinendtaskendendendendtaskot = new();endendendtaskcase(f)endcaseendendendtask。

2023-04-02 00:45:53 183

原创 mcdf_pkg_ref

bit en;forkdo_reset();joinendtaskendendendendtaskot = new();endendendtaskcase(f)endcaseendendendtask。

2023-04-02 00:45:28 79

原创 【无标题】chnl_pkg

bit rsp;elseforkjoinendtaskendendtaskendendtaskendendtaskendtask。

2023-04-02 00:39:00 59

原创 [SVA]2_Sequence_操作符号

a ##1 b:仅表示时序,由于不含蕴含操作符,所有没有如果的含义(如果a=1下一拍b拉高)。6.first_match操作符号。4.sequence基本操作符号。(4)intersect操作符号。7.throughout操作符号。(3)and操作符号_特殊点。(2)and操作符号_示例。(6)or操作符号_示例。(7)and/or应用。(1)and操作符号。

2023-02-21 00:46:59 120

原创 [SVA]1_Assertion_implication符号

每一拍都会看前一个sequence满不满足。(1)assertion和property。(2)property和sequence。(3)基于断言的验证方法学(ABV)(4)implication操作符。(1)什么是assertion。(3)sequences概念。1.Assertion概述。2.assertion类型。(4)并行断言的执行阶段。(5)断言语言的发展。(6)非交叠交错符号。

2023-02-21 00:43:57 100

原创 [systemverilog]7_线程通信_event_mailbox_samephone

event事件(1)Verilog中,一个线程总是要等待一个带@操作符的事件。这个操作符是边沿敏感的,所以它总是阻塞着、等待事件的变化。资源共享的需求(semaphore) 对于线程间共享资源的使用方式,应该遵循互压访问(mutexaccess)原则。

2022-12-15 23:13:23 377

原创 [systemverilog]6_线程及控制_fork并行线程语句块

模块(线程)在仿真一开始便并行执行,除了每个线程会依照自身内部产生的事件来触发过程语句块之外,也同时依靠相邻模块间的信号变化来完成模块之间的线程同步。(1)module (模块)作为SV从Verilog继承过来的概念,自然地保持了它的特点,除了作为RTL模型的外壳包装和实现硬件行为,在更高层的集成层面,模块之间也需要通信和同步。最短的子线程结束就执行fork-join_any外的语句,但是fork里的其他线程仍可能会执行,主要看fork外的语句。

2022-12-15 23:03:47 369

原创 [systemverilog]5_随机化

SV允许使用randomize() with来增加额外的约束,这和在类里增加约束是等效的,但同时要注意类内部约束和外部约束之间应该是协调的,如果出现互相违背的情况,那么随机数值求解会失败。如果随机化该对象时,不禁止其中的任何一个约束块,那么调用随机函数randomize()后,下列哪一个数值可能是p.length的值?(1)inside是常见的约束运算符,表示变量应该属于某一个值的集合,除非还存在其他约束,否则随机变量在集合里取值的概率是相等的。由于有了soft,另外约束一个报错,整体就是报错的。

2022-11-20 22:46:07 596

原创 [systemverilog]4_class/module_类的继承_成员覆盖_packet

本节将继续讲解class类的继承和覆盖、句柄的传递,以及packet包的使用,与module的区别

2022-11-20 22:41:47 461

原创 [systemverilog]3_类_对象_句柄_静态变量和方法

(1)类是将相同的个体抽象出来的描述方式,对象是实体。具有相同属性和功能的对象属于同一类,而不同的类之间肯有继承关系或没有联系。(2)Verilog的module+method的方式与SV的class定义有本质上的差别,class是面向对象编程,即面向对象编程的三要素:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism) 。(3)类的定义核心即是属性声明(property declaration)和方法定义(method definition)

2022-11-20 22:35:51 649

原创 [systemverilog]2_interface_clocking

在interface的端口列表中只需要定义时钟、复位等公用信号,或者不定义任何端口信号,转而在变量列表中定义各个需要跟DUT和TB连接的logic变量,为了简单,推荐使用logic来定义变量。第五行的addr,也采用了自身定义的采样事件,即clock1上升沿前的1step.文里的1step会使得采样发生在clock1上升沿的上一个时间片采样区域,即可以保证采样到的毅据是上一个时钟周期的数据。在仿真行为中,为尽量避免时序电路中时钟和驱动信号的时序竞争问题,需要给出尽量明确的驱动时序和采样时序。

2022-10-30 23:42:09 890

原创 [systemverilog]1_数据结构

sformat ( output_var , format_string [ , list_of_arguments ] ):$sformat()比$sformatf()多了第一个参数,第一个参数就是放整理好的字符串的容器。根据数组是否为组合型而占用存储空间不同,以32bit为一个存储空间的话,组合型的(pack)存储是连续的,而非组合的数组中的每个组员占用一个存储空间。因为logic是四值逻辑,需要两bit的存储,所以对于pack而言,24*2=48,而24bit为一个单元,故需要两个单元;

2022-10-23 22:35:53 328

原创 1_vim/gvim操作

IC前端必须掌握的gvim/vim工具

2022-10-12 23:38:42 79

原创 IC设计_怎么保证网表的正确性

形式验证+静态时序分析

2019-06-14 14:23:54 1044

原创 基于NB-IoT的百叶窗气象站设计代码

#include &lt;ArduinoJson.h&gt;#include &lt;NB73demo.h&gt;#define DEBUG#ifdef DEBUG#define DBG(message) Serial.print("&gt;LOG: ");Serial.println(message);#else#define DBG(message)#endif#defi...

2018-12-24 10:38:45 565

原创 nbiot

最近调试nbiot

2018-05-10 20:02:42 1469

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除