- 博客(43)
- 问答 (2)
- 收藏
- 关注
原创 Shell与Bash介绍
Linux图形化桌面算不上精美。幸好,Linux提供了更好的与树莓派互动的方式:Shell。1、Shell和Bash:hell是运行在终端中的文本互动程序;bash(GNU Bourne-Again Shell)是最常用的一种shell,是当前大多数Linux发行版的默认Shell。即:shell是总称,bash是shell的一个版本。2、原理:Shell相当于是一个翻译,把我们在计算机上的操作或我们的命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执
2022-04-30 10:24:07 3162
原创 046-验证的收敛、047-问题追踪、048-团队建设、049-验证的专业化
1、回归效率的提升:将一个长的测试tc切分为多个相对短的测试tc,这么做的好处是避免过于冗长复杂的测试,划分为多个tc可以实现并行提交测试,用计算机资源来节省时间;对于一些较难切分测试向量的场景(芯片及仿真中经常会遇到),我们可以考虑快速跳转到特定状态来实现缩短测试时间的要求(意思就是如果仿真刚开始三分之一时间做相同事情,那我们可以提前将前三分之一的结果保存下来,下次直接访问这个结果然后从三分之一之后的地方开始执行,这样回节省三分之一的事件,好像vcs是支持这种使用方式的);对于第二点,三分之一
2022-04-26 21:14:40 219
原创 44-验证的周期、45-验证管理的三要素
1、时间管理之早行动:早开始,提前计划,尽早开展项目的开始;2、时间管理之少依赖:所有的工作需要并行化,例:不能因为dsp模块(dsp之类的处理器一般比较难)没有开发好或者集成好,而阻塞别的模块,所以这时候需要搞一个dsp模块的bb模块(一般使用sv、uvm),这样就不会阻塞别的模块进度;3、时间管理之大局观:每个验证人员不仅要关注自己负责模块验证进度,同时还要清楚共同的关键节点,以及各个模块之间的依赖性;意思就是不仅要关注自己的节点,同时也要关注项目总体的节点;4、人力资源安排之团队建设:比如
2022-04-25 21:07:25 375
原创 40-包的使用
1、包:package,常规模式下我们将不同模块的“类定义”归整到不同的package中;但是package中不能定义硬件相关的模块;package就是一个大盒子,不用进行实例化,直接使用即可;如下,我们将定义的各个组件分别封装在不同的package中:2、`include:纯文本的替换,就是将include的文件平铺到当前文件;import:表示将package中定义的类导入到其他的class或者模块中,如下如果regs_mon不在当前域中定义,会搜寻regs_pkg中定义的类,...
2022-04-16 10:42:50 153
原创 38-类的继承、39-句柄的使用
1、类的继承:包括了继承父类的成员变量和成员方法;2、如果没有使用spure.new():只是说明了没调用父类new函数中初始化的内容,但是父类中的成员变量、方法的空间都是已经开辟好的;或者父类的new函数没有参数.....(如下截图)3、初始化顺序如下,3th中说的剩余的初始化代码见下图2中def的初始化4、子类中出现和父类中相同的成员变量:如下图,其实在t=wr之后,t是父类和子类所有空间的一个句柄,但是它只能访问父类中的def;wr.super.def=10...
2022-04-16 10:38:35 269
原创 37-类的成员
1、class的单一职责原则:即一个class应该尽可能简单,不应当承当过多的职责,更不应该承担不符合它的职责;2、class的开放封闭原则:protected、local3、如果class没有指明访问类型,那么sv中默认类中成员类型是公共的,子类和外部均可以访问成员;local:只有该类可以访问成员,子类和外部均无法访问;protected:该类或者子类可以访问成员,而外部无法访问;4、class与struct异同:二者本身都可以定义数据成员; class变量在声明之后,需要ne
2022-04-16 10:14:26 116
原创 35-类和对象的概念1、36-类和对象的概念2
1、类是将相同的个体抽象出来的描述方式;对象是类的实例。2、类:成员变量和成员方法的集合。3、类的三要素:封装、继承、多态。4、验证为什么需要opp:验证环境的不同组件其功能和所需要处理的数据内容是不相同的;不同环境的同一类型的组件其所具备的功能和数据内容是相似的;基于上两点,验证的各个组件角色明确、功能分立,使用opp合乎情理。5、class、module区别:........6、handle句柄:本质是用来指向对象的指针,sv中索引对象或对象内的成员变量和方法时,需要通过句柄方式来索
2022-04-16 10:01:41 103
原创 Verilog中常见文件操作($readmemb,$fopen,$fwrite,$fclose)
$readmemb和$readmemh用来从文件中读取数据到存储器中。其中readmemb要求每个数字是二进制数,readmemh要求每个数字必须是十六进制数字。数字中不定值x或X,高阻值z或Z,和下划线(_)的使用方法和代表意义与一般Verilog HDL程序中的用法一致。在Verilog语法中,一共有以下六种用法:(1)$readmemb("<数据文件名>",<存储器名>); (2)$readmemb("<数据文件名>",<存储器名>,&
2022-02-07 16:45:24 3182
原创 I2C协议
I2C协议讲解视频:【韦东山】嵌入式Linux教程_韦东山手把手教你嵌入式Linux快速入门到精通_哔哩哔哩_bilibili1、只有两根线,跟别为:SDA、SCL;2、方向:0表示写、1表示读;3、...
2022-02-07 15:11:09 641
原创 同步复位、异步复位、同步释放
同步复位、异步复位:同步复位与异步复位的区别 - 格桑花FPGA - 博客园一般来说,同步系统,都使用异步复位。这是因为同步复位的电路实现,比异步复位的电路实现,要浪费更多电路资源。同步释放:异步复位时的rst和clk是异步的,同步释放意思是rst的释放是和clk同步的,在clk的上升沿进行释放。这样可以避免电路亚稳态的输出。异步复位同步释放---关于复位的问题 - 齐威王 - 博客园...
2022-01-26 10:44:56 358
原创 Interface、Clocking Block、BA、NBA
systemverilog::Interface、Clocking Block、BA、NBA
2021-12-20 14:39:26 764
原创 电平、脉冲
电平即数字电路的输入输出端某一时刻电压的高低,高低电平是相对的,人为的,例如可以规定低电平为0V,相应用逻辑"0"表示,高电平为5V,相应用逻辑"1"表示。正脉冲期间为高电平,负脉冲期间为低电平。而脉冲是指电压升高(或降低)后又降低(又升高)这一周期过程,相应称为正脉冲或负脉冲,周期可以无限短(当然受电路的限制,现在也就nS级),也可无限长(几天,几年...),这一周期过程就叫一个脉冲...
2021-12-15 15:02:29 5240
原创 SV中关键字的释义
1、函数的形参中加入const关键字:Fun(constType& type);在引用传递的时候,在函数内部改变参数,会改变参数实际值。加上了const就不能被修改。
2021-11-19 09:47:17 1201
原创 仿真的时间单位
1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(纳秒)=10^12ps(皮秒)=10^15fs(飞秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒)
2021-10-29 16:31:42 613
原创 Axi:名词解释、乱序、间插、卷绕、窄带访问、非对齐访问、OST
卷绕模式为burst=2的情况,包括awburst、arburst,每次进行猝发激励时会计算一个上边界地址和下边界地址(根据start_addr、number_byte、burst_len),每次猝发看地址在[下边界地址,上边界地址)之间,如果猝发地址等于上边界地址则会卷绕会下边界地址,以此类推,上下边界地址计算公式如下:下边界地址:wrapaddr=(int(addr/(number_byte*burst_len))) *(number_byte*burst_len)上边界地址:wrapaddr+(
2021-10-18 15:44:51 8663 7
原创 【3】寄存器模型高级用法
1、预测功能(predict) 的实现有两种方式: 实现方式1,使用平台中的driver实现,打开方式是set_auto_predice(1); 实现方式2,使用uvm组件predictor来实现,需要实例化predictor组件,然后例化并连接到平台中,实现predict功能; 备注:预测功能主要是为了更新寄存器模型中的镜像值和期望值,详细解释见白皮书P251...
2021-10-13 16:47:44 265
原创 uvm寄存器模型高级用法笔记
1、预测功能(predict) 的实现有两种方式: 实现方式1,使用平台中的driver实现,打开方式是set_auto_predice(1); 实现方式2,使用uvm组件predictor来实现,需要实例化predictor组件,然后例化并连接到平台中,实现predict功能; 备注:预测功能主要是为了更新寄存器模型中的镜像值和期望值,详细解释见白皮书P251...
2021-09-16 09:41:10 366
原创 uvm中的覆盖率分析笔记
1、收集覆盖率可以使用vcs、ius两种工具,vcs对应的覆盖率分析工具是dve,ius对应的覆盖率分析工具是imc;dve的打开方式是;dve -full64 ./simv.vdb/ &其中vdb文件是跑出来的覆盖率收集结果文件
2021-08-26 10:12:44 2346
原创 sv中case语句多个条件执行一个语句
case(A) 0:begin ....... end 1: 2: 3:begin ....... end 4:begin ....... endendcase 如上,条件0、4执行对应的程序内容,条件1、2、3执行相同的程序内容。...
2021-08-11 10:04:39 5347
原创 sv中的随机化
assert (std::randomize(read_tr_max_num) with {read_tr_max_num inside {[1:sequental_tr_max_num]};} );这句的意思是read_tr_max_num的取址范围是 [1:sequental_tr_max_num];std::这个是个类库引用,randomize是它提供的一个function
2021-08-06 09:12:17 1335
原创 for循环的退出、while中的continue和break
退出本次循环,但还要开始下次for循环用 continue;彻底退出for循环用 break;
2021-07-30 10:51:17 3149
原创 【6】class的简单梳理
1、结构体和类的关系(简单说明):结构体:简单地将不同类型的几个数据放在一起,使得它们的集合体具有某种特定的意思(只包含结构体变量);与结构体相对应的是一些函数操作。对于这些函数,如果没有这些定义的结构体变量,它们就无法使用;对于结构体变量来说,如果没有这些函数,那么结构体也没有任何意义。class:由于结构体和函数的关系如此紧密,所以面向对象的开创者们开创了class的概念;class将结构体和它相应的函数集合在一起,成为一种新的数据组织性质。2、类的三大特征:封装、集成、多态。封装:自.
2021-07-11 20:42:34 541
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人