- 博客(57)
- 资源 (16)
- 收藏
- 关注
原创 UVM启动shell脚本:example
文件内容如下:if [-z "需要检测的环境变量"]; then echo "U need to set ..." exit 1else set -x export PROJECT_HOME =“工程目录” rm -rf "每次启动仿真生成的一些临时文件" gcc -m64 -fPIC -shared -Bsymbolic -o C_dpi.s...
2019-03-01 16:06:08 1480
转载 systemverilog $cast
转载自:https://www.verificationguide.com/p/systemverilog-casting.html SystemVerilog Casting casting Dynamic casts can be used to safely cast a super-class pointer (or reference) into a pointer (or...
2019-02-18 17:33:56 2034
原创 gvim 环境设置
配置文件:.gvimrc内容如下:#start----------------------------------------------------------------------------------------------------------source ~/perl_format.rcsource ~/sv_format.rcset title“open mouse”...
2019-01-10 15:45:14 692
转载 C/C++之回调函数
本文转自:http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html#undefined是我所看到的讲C++ callback函数最浅显易懂的,一做记录,也做好文章要分享。今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。
2018-01-10 11:33:18 394
原创 高级验证方法学()-Mentor-笔记
1、事物级组件间一般用fifo作为通信通道2、sv中,参数或局部参数优先于宏,这样可以减少编译的次数3、验证方案从设计规范来,验证方案有一个问题清单,列举所有验证过程需要回答的问题,和说明如何被回答的机制的描述。此外还有一个checklist,列举所有需要回答的问题,它也是测试平台的功能规范4、systemC不适合构建低层次验证平台5、激励生成方式:随机、定向、定向
2017-12-13 10:28:59 1336
原创 systemverilog的数据隐藏特性
分为以下几种,涉及关键字分别为:local,protected,constlocal:只允许类本身访问;protected:允许类本身和它的扩展类访问;const:分为两种:全局性、instance性的其中,全局性const:在声明时即赋值,之后不可修改;instace性const:只使用const进行声明,赋值发生在new()中下面举例介绍下几种情况:class
2017-11-22 15:09:49 1884
原创 systemverilog 参数化类及与静态的关系
以两个例子说明参数化的类及声明静态变量时的情况:eg:program param_stack;class stack #(type T = int); int m_cnt; static int counter = 2; function new; m_cnt = counter++; endfunction: new endclass
2017-11-22 10:22:22 4252
原创 “make: `run' is up to date”原因及解决办法
makefile时,目录中存在和target名称相同的同名文件时的报错信息和解决办法
2017-08-17 15:46:12 15515
转载 SystemVerilog Coding Guidelines: Package import versus `include
systemverilog中package和`include的区别
2017-08-02 10:56:46 1982
原创 ASIC仿真验证随笔
一、基础知识1、复位信号和clk信号的搭配:以一个简单同步低有效复位D触发器为例,intial beginclk = 0;rst = 0;#5 rst = 1;enalways #1 clk = ~clk;以上述初始化方式来看,在开始阶段,clk为低,没有上升沿跳变,rst为低有效,所有此时,对D触发器的输出Q端报出不定态问题。改进方法:intial
2017-07-05 11:14:40 649
原创 Formality Error/Debug
1、Formality在match过程中报time limit一下内容均为运行match命令后打印的log:“Reference design is r:/WORK/kanas_top_v2Implementation design isr:/WORK/kanas_top_v2status: Checking designs...
2017-05-25 10:49:30 3321
原创 Formality形式化验证脚本范本
1、验证带DFT网表:首先要disable scan logic和Bist功能2、可以将所有的代码、网表,包括所有的子模块、顶层的全部读入,在read过程中针对top使用set_top,有关环境设置不急于读入,完成后,可以保存该阶段性为*.fss格式文件(下次restore_session该文件即可,库、网表、设计不需要重复读入)。脚本主要过程如下:source ./variable.
2017-05-19 16:59:12 10555
原创 lib2db的方法与问题
1、直接启动dc_shell或dc_shell-t或dc_shell -gui,首先,运行命令:read_lib “lib文件”,若提示“write_lib in dc_shell is not enable,please start new session and do enable_write_db_mode to enable it”,可以退出dc_shell,采用启动lc_shell,重新
2017-05-18 11:11:53 5736
原创 design compiler——DC
Library1、technology lib由代工厂提供,不同代工厂、不同工艺制程而不同,涵盖设计规则约束、运行环境设置、线载模型等等。需要以*.db的格式读入dc。(但有时提供的事源代码形式的,可以使用dc将骑转化为db格式)2、target lib:*.dbdc优化过程中,被映射到的tech lib称为target lib。即这部分包含内容是生成网表过程中用到的cel
2017-05-05 19:37:06 5370 2
原创 python学习记录
1、range和xrangeeg1:L = range(1,11)print L打印结果:[1,2,3,4,5,6,7,8.9.10]eg2:XL = xrange(1,11)print XL打印结果:xrange(1,11)说明:range(m,n)会生成一个list,而xrange(m,n)更像是一个变量赋值,不会被展开,但在使用上却跟list一
2017-04-25 15:41:31 338
原创 C++时间延时控制
1、延时#include #include using namespace std;/*普通计数的方式进行延时,采用的是系统时间,并不一定是以秒为单位,eg:long wait = 0;while(wait wait++;并不能确定具体延时多久。//------------------------------------------------------
2017-04-05 16:35:40 3515 1
原创 C++关于字符、字符串的总结
1、C++将C风格字符串视为地址。eg:char word[10];word = “Today”;word == “MATE”;解释:首先数组名代表的是数组的地址,其次,用引号扩起来的字符串常量表示的也是地址,所以,此次比较中,比较的是他们是否存储在相同的地址上,而不是两个字符串是否相同。应该使用C风格的字符串库中的比较函数strcmp()函数进行字符串的比较。2、关系运算
2017-04-05 16:33:28 452
原创 C++指针、数组、字符串数组、cout几者关系说明
以小程序进行说明这几者之间的关系:#include int main(){char ch_array[10] = “Today”;//最好在声明时即进行初始化int int_array[10] = {1,2,3,4,5,6};//最好在声明时即进行初始化 //int
2017-04-05 16:31:46 817
转载 转载:免费电子书
在StackOverflow上,有人要打算收集个免费电子书的列表,结果很快就有人分享了一个列表。很不错,我就转过来了。原帖的地址在http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books (注意:有些连接可能会被墙掉)List of Free Programming books
2017-01-16 10:44:34 585
转载 linux环境下的c++
就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样。Emacs, vi, eclipse, anjuta,kdevelop等层出不穷。Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户。例如,VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器
2017-01-06 17:17:15 523
原创 makefile调用、编译、执行过程(verilog&cpp)
1、理解makefile是如何工作见makfile中文手册 2.4节内容。2、首先编写各种需赋值的变量3、调用shell下命令方式:eg:UNAME = $(shelluname) echo$(UNAME)显示:Linux4、条件判断ifeq($(UNAME), Linux)… …endif5、三种赋值运算符:(1)”=”LHS =
2017-01-05 11:03:29 4257
原创 C++中浅拷贝、深拷贝、对象的复制、对象的赋值
一、概念字面理解1、浅拷贝:发生对象复制时,只是对对像张数据成员进行简单的赋值。涉及到动态分配问题,如果按浅拷贝进行复制,不做特殊处理,复制完成后,两个对象中涉及动态分配空间的变量,不管他们各自的空间,及空间中的内容都是完全一样的,当对这两个对象进行析构时,会发生同一片空间被释放两次,因而会出现错误。eg:class Rect { public: Rect
2016-08-03 11:30:52 5271
转载 消息队列(Message Queue)基本概念
转载:http://kb.cnblogs.com/page/537914/背景 之前做日志收集模块时,用到flume。另外也有的方案,集成kafaka来提升系统可扩展性,其中涉及到消息队列当时自己并不清楚为什么要使用消息队列。而在我自己提出的原始日志采集方案中不适用消息队列时,有几个基本问题:1. 日志文件上传过程,有个基本的生产者-消费者问题;2. 另外系统崩溃时,数据丢失
2016-02-17 15:04:58 2081
转载 集电极开路、漏极开路、上拉电阻、下拉电阻等接口相关基本概念
转载:http://www.cnblogs.com/emouse/1.1.1 接口相关电路及概念1. 集电极开路输出在电路中常会遇到漏极开路(Open Drain)和集电极开路(Open Collector)两种情形。漏极开路电路概念中提到的“漏”是指 MOSFET的漏极。同理,集电极开路电路中的“集”就是指三极管的集电极。在数字电路中,分别简称OD门和OC门。典型的集电极
2016-02-17 10:29:13 953
原创 SystemVerilog中有关class类的基础知识
1、class中的变量、宏定义等称为类的属性,函数和任务称为类的方法2、声明对象时可以指定input/output/inout/ref3、复制对象,复制的是句柄而不是对象的内容。类的每个对象,对于属性、方法等都有自己的副本4、class c;...endclassc c0; //“c0”就是对象c0的句柄,在此处仅相当于一个name,类似于仅是创建了一个c类型的变量c0
2015-09-16 17:16:29 21169 1
原创 vi/vim 注释字体颜色的设置
在vi中被注释掉的字体颜色默认为蓝色,无法看清,通过设置用户根目录下.vimrc文件,可以更改颜色的配置。通过hi命令来修改注释的颜色,使用方法:设置关键字为蓝色非粗体 :hi Identifier ctermfg =blue cterm=none (bold 就设置成粗体) 1、vi ~/.vimrc 加入如下内容:hi Comment ctermfg =blue
2015-08-28 13:53:14 11481
原创 systemverilog中阻塞和非阻塞事件以及同步
一、SV中非阻塞事件module test;event ev1, ev2;//belong to logic function partalways@(ev1) $display("ev1 triggered at %0ts", $time);initial wait(ev2.triggered)$display("ev2 triggered at %0ts
2015-08-14 10:07:19 3944
原创 systemverilog中$value$plusargs的用法
package pa;......endpackageprogram pr;import pa::*;......;initial begin......;void'($value$plusargs("s1 = %s", s));$display("s1 is %s=n", s);#1000;$exit();endendprogram
2015-08-14 09:46:23 5717
转载 Chapter 11 – Running the simulation
To run thesimulation, we simply execute the provided Makefile in the GitHub repository:$ make -f Makefile.vcsThe testbenchwill generate random inputs and then those inputs will be sent to the
2015-08-14 09:42:43 965
转载 Chapter 10 – Test
At last, we needto create one more block: the test. This block will derive from the uvm_test classand it will have two purposes:Create the env blockConnect the sequencer to the sequenceYou m
2015-08-14 09:40:54 507
转载 Chapter 8 – Scoreboard
The scoreboardis a crucial element in a self-checking environment, it verifies the properoperation of a design at a functional level. This component is the mostdifficult one to write, it varies from p
2015-08-14 09:37:09 788
转载 Chapter 7 – Agent
We have bothmonitors, the sequencer and the driver, so the next step is to connect them up.This is a job for the agent.An agent doesn’trequire a run phase, there is no simulation code to be executed
2015-08-14 09:22:27 650
转载 Chapter 6 – Monitor
The monitor is aself-contained model that observes the communication of the DUT with thetestbench. At most, it should observe the outputs of the design and, in case ofnot respecting the protocol’s rul
2015-08-04 16:22:15 816
原创 求解决!!!SystemVerilog在ModelSim中的编译与运行
是在学习SV过程中,运行书上的例子,碰到的问题。功能:函数返回数组。Code1:/*书上提供的例子,存在错误,不可运行function void init(ref int f[5], int start);//主要是函数定义时没有声明automatic属性foreach(f)f = i + start;endfunctioninitial begin
2015-06-12 10:45:28 5980 1
转载 Chapter 5 – Driver
The driver is a block whose role is tointeract with the DUT. The driver pulls transactions from the sequencer andsends them repetitively to the signal-levelinterface. This interaction will be observ
2015-05-15 10:39:01 680
转载 Chapter 4 – Sequences and sequencers
The first step in verifying a RTL design is defining what kind of data should be sent to the DUT. While the driver deals with signal activities at the bit level, it doesn’t make sense to keep this l
2015-05-15 10:26:48 680
转载 Chapter 3 – Top Block
In a normalproject, the development of the DUT is done separately from the development ofthe testbench, so there are two components that connects both of them:The top block of the testbenchA v
2015-04-13 11:01:00 954
转载 Chapter 2 – Defining the verification environment
Beforeunderstanding UVM, we need to understand verification.Right now, wehave a DUT and we will have to interact with it in order to test itsfunctionality, so we need to stimulate it. To achieve thi
2015-04-03 15:25:33 1126
2017年一建《水利水电工程管理与实务》教材电子版.pdf
2017-11-10
PCI_Express_Base_Specification_Revision_4.0
2017-11-10
UVM_1.1_Class_Reference_Final
2015-09-16
uvm-cookbook-sequences-guide-verification-academy
2015-09-16
coverage-cookbook-complete-verification-academy
2015-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人