自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 提升验证效率一些事项

验证平台如果移植到加速器上,部分代码在服务器上运行,部分在加速器上运行,两者之间的通信开销非常大,最终导致加速器起不到加速效果,因此在设计验证平台时尽量考虑到后续移植加速器的问题,减少服务器和加速器的通信开销(共享缓存的方式、全部可综合),从而达到加速的效果。如果没有这些编码指南,许多常见的错误通常会花费验证团队的不少时间,这有时会转化为压力。:环境是RTL和平台的组合,开发出的环境是为了验证RTL的,环境也是存在bug的,所以必须能够快速识别出在RTL或验证环境中存在的错误,平台必须考虑自身的诊断手段。

2023-11-28 15:56:01 973

原创 SVA创建小技巧

复位期间禁用断言,因此每个property都需要加上disable iff语句,增加编码的代码输出,可以使用always块加系统函数,来简化。3、断言放置在一个单独的module/interface中,然后把module实例化到RTL中。4、将断言放入单独的模块(单独的文件),并将模块bind到RTL模块的设计中。定义后,后续的property可以省略采用的信号的具体如下。2、断言放在单独的文件中,使用`include包含到RTL文件中。2、在复位期间禁用断言的always块。1、定义默认的时钟块。

2023-07-22 10:58:03 188

翻译 sv随机稳定性

在SystemVerilog中,随机稳定性可以定义为随机结果对代码更改的抵抗力。任何随机化的SystemVerilog代码在某种程度上可能随机稳定或不稳定的。以不影响随机结果的方式改变它总是有可能的(例如通过添加变量声明),或者以某种方式(例如通过在正确的位置添加额外的$urandom()或randomize())。“随机稳定验证平台”,影响随机结果的更改可以限制在有限区域,而“随机不稳定验证平台”,随机结果可能受所有任何地方代码修改的影响。

2023-05-04 14:35:45 414

原创 module/interface中的parameter override用法

3、可以通过vcs 命令行形式覆盖,使用-pvalue+hierarchical_path=value。4、可以通过配置文件使用instance 或cell 规则的方式。1、可以在module实例化时,使用#()进行参数覆盖。2、在实例化时使用defparam。注:-pvalue优先级最高。

2022-10-14 22:22:02 721

翻译 uvm_event的用法(DVCON论文学习)

在验证环境中,验证平台组件通常以同步的方式通信,以有效地实现时间精确检查,System Verilog event是专用的、广泛使用的数据类型,用于实现组件之间所需的同步通信。UVM有一个内置的专门的类围绕sv事件,这拓宽了基于事件通信的应用和使用,本文突出介绍uvm_event的使用和好处。

2022-10-07 08:55:06 2725 2

原创 sv常用的系统function/task(二)

q_exam--根据stat_code,返回对应的统计。$q_remove--从队列中删除一个entry。$q_initialize--创建一个信队列。产生运行太的致命错误和仿真结束,4、$q_full---检查队列是否满。三、队列管理随机分析task。

2022-10-04 10:21:43 2767

原创 sv常用的系统function/task(一)

0:直接结束仿真,不打印任何信息1:打印结束行号,以及结束时间2:打印结束行号,以及结束时间,以及仿真的内存消耗 以及cpu运行时间等信息(vcs仿真器1和2参数打印一样,vsim有区别)

2022-09-26 20:49:47 1325

原创 寄存器验证策略

以RW寄存器为例,对此类寄存器测试项如下,尽量考虑完备性。 读测试(默认值测试):读出的值应该为默认值,否则为默认值设置错误,默认值错误有时会引起一些莫名其妙的错误,所以千万不要忽视了这一点。 读写测试 1.随机值测试,随机一个寄存器值然后读出进行比对2.位粘连测试,采用00….001和11..110进行移位操作写入读出对比测试防止寄存器某些bit位粘连3.位翻转测试,写0x55..555、0xaa..aaa,读出比较4.位边界测试,写00…00,fff…ff...

2022-05-07 10:15:09 4247

原创 【vcs仿真回退特性用法】

一、编译仿真选项1、编译选项:-debug_access+reverse2、仿真选项:simv -ucli -ucli2Proc二、具体操作1、在ucli界面下输入:config reversedebug on开启reversedebug或者仿真ucli文件中(见具体下图示例)2、在仿真过程中通过ucli 执行任意回退操作。demo:test.svcfg.tcl编译命令行:仿真命令行:执行结果:三、revere支持...

2022-04-18 17:49:58 748

原创 【中断相关】

2022-03-22 22:22:14 102

原创 【IC验证】

2022-01-23 12:01:20 127

原创 vcs 如何 dump sva

问题:sva 如何dump到波形中?答案:使用系统函数$fsdbDumpSVA([level],[,scope|module] [,“file=”,“filename”]);e.g $fsdbDumpSVA(0,top)说明:如果需要使用该系统函数编译选项需要加-assert api -assert api_event...

2022-01-14 14:57:18 1101

原创 时序仿真波形看不到延时信息可能原因

时序仿真波形中看不到延时信息的原因或场景1、 sdf解析失败,报错,但simv文件正常创建了2、 sdf文件中的延时信息三组值不全,如(min::max)但仿真反标时选择了typical3、sdf包含了所有的延时信息,但由于仿真timescale的问题,被截取为0(module timescale 1ns/1n sdf的延时信息为0.148)4、编译选项中加了+nospecify选项...

2021-10-16 14:33:50 1142

原创 网表仿真常见问题及解决办法

1、网表顶层测试信号引起的问题 解决办法:可以通过规避手段,即屏蔽测试信号的有效性,对测试信号的初始化一个无效值,大多为0。2、寄存器初始值引起的不定态问题 解决办法: 一般情况下,不定态往往来自与没有初始化的寄存器或RAM,有些设计对这些初始化值为任何数都不影响使用时,但网表仿真会导致x传输,需要对无复位寄存器进行deposit初值3、RAM初始化问题如果RAM没有初始化或写操作,则RAM读数据是不定态。在RTL仿真时,不定态在逻辑上一般当作非0来处理,所以不会扩散。而在网表仿真

2021-08-15 22:07:39 3302

原创 VCS如何知道平台和仿真中做了哪些force操作

编译参数增加-force_list运行参数添加-force_list report.log仿真过程就会生成 report.log 记录仿真过程中的force操作

2021-08-14 22:39:31 1383

原创 vcs几个编译选项的含义

-diag timescale 诊断设计文件timescale的变化-design_stats 打印dut规模数据-reportstats 打印运行时间和内存消耗以及执行服务器信息

2021-08-07 23:13:43 833 2

原创 常用的linux命令

1、统计文件个数ls -l |grep “^-” |wc -l 统计当前文件夹下文件个数ls -l |grep “^d” |wc -l统计当前文件夹下目录个数ls -lR |grep “^-” |wc -l统计当前文件夹下文件个数,包括子文件夹2、sed命令使用修改指定的行:sed -i ‘10s/old/new/’ file提取文件中某些行:sed -n ‘m,np’ file3、 find命令的使用find ./ -name “zifu” 查找当前匹配的文件find ./ -na

2021-08-07 23:02:14 81

原创 vcs编译重复定义文件问题

一、问题描述:vcs编译重复定义文件可能出现下面的情况:1、编译报error [MPD]module previously declared2、编译报warning[OPD]override previous declaration二、原因:基于sv LRM 1800-2012, section 33.3.1.1多个相同名字的module被map在同一个lib中需要报告出来三、解决办法1、在允许覆盖的情况下,消除不报error,用-top指定顶层或加选项-error=noMPD2、需要消除

2021-08-03 12:00:45 10672

MODBUS (51实现) +proteus仿真+modbus调试工具

基于RS232物理接口的modbus协议的实现。目前提供三个功能码,并附有proteus仿真文件和整个keil工程文件。

2009-12-22

温度控制器程序(温度控制、ds18b20、光耦、交流控制)

加热控制模块。实现温度采集和温度控制。。。。。。。。。。。。

2009-12-15

空空如也

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

TA关注的人

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