自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 芯片验证三言两语——subip 2

编写验证报告里面包含模块成熟度分析,feature的覆盖反标,覆盖率报告,提交的QC清单关闭情况,QC发现和清除的曲线,FPGA发现的问题是否需要回溯增加相应的验证case,需要soc和子系统覆盖的点,上一个项目遗留的bug是否已经clear等等。复位中我们区分每个复位作用的区域。例如软复位作用于数据配置部分一般是解析apb/ahb配置信息相关逻辑且有shadow机制,数据复位作用于数据计算逻辑相关部分。确保每个覆盖率点都是合理的,对于不合理的bin可在功能覆盖率的时候增加illega_bins。

2024-06-25 12:54:02 279 1

原创 芯片验证随想三言两语—— subip

对于模块本身除了控制寄存器组合功能验证,需要覆盖到边界的情况。对于边界的覆盖除了本身配置信息min/max覆盖,还有rtl内部逻辑计算需要到达的边界特别是存在clip的情况,有些clip需要多种组合才能触发,你随机的相关组合未必能覆盖,有可能会遗漏计算溢出的bug。当前模块接口时许出现异常情况或者配置异常情况下,看数据能否在下笔操作下恢复正常数据对比真确,下一笔操作是否能clear前一笔fifo残留数据以及恢复机制处理是否正确,状态机是否存在卡死现象,是否有异常中断上报并有清除中断机制。

2024-06-25 00:10:28 307

原创 自动生成work sequence flow

在class中 field_name的value命名规则是reg_name + filed_name的方式,目的是为了防止同一组的寄存器集合中出现寄存器field名字存在相同的情况,在顶层的virtual_seuqnce中可以进行调用和赋值。在mm_base sequence中通过uvm_reg_block获取uvm_reg和uvm_filed的相关信息并封装在数组中。通过上述的flow流程我们可以实现自动化生成配置信息的sequence,简单高效的可以完成配置信息的sequence的编写。

2024-06-18 22:41:06 786 3

原创 auto gen reg cfg flow

通过 ip_address.json的instance信息中reg_A.json文件被instance了两次,所以我们可以通过extend的python script脚本生成reg_A0.json,reg_A1.json文件。mismatch_reg_cfg.ttx是记录那些寄存器的field和alg_cfg.txt\hd_cfg.txt都没有匹配,那一般这种可能存在算法的变量没有寄存器匹配,需要owner自己去查询一下原因。alg_cfg.txt是算法使用的配置文件里面是具体的C参数。

2024-06-04 21:14:14 934 2

原创 如何让ALG、FPGA、EMU、SOC、SubIp实现驱动复用

由于各个team都是相互独立的,很多flow都是独立开发出来,对于交互的文件也是五花八门,这些文件各team协助起来很不方便,如何打通各个team之间的快速协助以及保证各team提供的文件彼此能快速复用起来成为了一个需要解决的问题。算法team是一般是独立的部门,往往在芯片前端是走在最前面的,所以相关的flow也是自己独立的,一般算法的flow都是提供一个算法执行的alg_cfg文件(里面包含各个算法模块C参数配置)、图像源和算法的可执行文件(xxx.exe)就可以吐出RefCmodule的输出文件。

2024-05-21 19:50:38 2681 1

原创 “旧时王谢堂前燕,飞入寻常百姓家“--> cocotb example case 优化版本

在agent中包了drv、monitor、sqr,uvc_cfg从上层env config下来,在cfg中instance了bfm的句柄在agent中分别给drv和mon赋bfm的句柄。在uvm中virtual sequncer作为中心路由器,里面是instance各个uvc的seqr,这边我们是在build_phase中进行了赋值None。pyuvm的架构和uvm的架构相差不大且对uvm组件进行简化,但入门需要对uvm有一定的知识背景,目前支持的VIP UVC相对较少还是需要进一步推广。

2024-05-15 11:53:52 709 1

原创 “旧时王谢堂前燕,飞入寻常百姓家“-->cocotb run

MODULE这个是指的HVL TOP name, TOPLEVEL是指的HDL TOP name, SIM_ARGS是指的在仿真中增加cmd, COMPILE_ARGS是指的编译中增加cmd。在cocotb的Makefile.vcs中我们可以看到仿真放在sim_bild目录中,load vip的os文件/usr/local/lib/python3.9/site-packages/cocotb/libs/libcocotbvpi_vcs.so。2.makefile 变量。

2024-05-14 21:27:29 384 3

原创 “旧时王谢堂前燕,飞入寻常百姓家“--> Cocotb

在build_phase中instance了env,在end_of_elaboration_phase中create了TestAllSeq,并在run_phase中进行了start()。在sequence中我们获得sequncer的句柄是使用config get的方式,这个和uvm中是用p_sequencer用法还是有区别的。设计重用和随机化测试:Cocotb鼓励设计重用和随机化测试的哲学。通过编写可重用的测试代码和使用随机化测试技术,工程师可以更高效地发现设计中的问题,并提高测试的覆盖率和可靠性。

2024-05-14 21:24:30 1469 5

基于UVM的中断处理UVC

用于处理中断信息,作为uvc可以在env中进行instance。操作简单,使用灵活

2024-06-18

简单的makefile文件编写

用于学习makefile编写支持vcs

2024-06-18

空空如也

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

TA关注的人

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