自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IC验证——perl脚本ccode_standard——c代码寄存器配置标准化

主要用于IC验证中ST系统仿真时,需要通过c代码配置寄存器,修改.c中关于寄存器配置的hard code,加速st仿真。

2024-01-13 16:08:09 1074 2

原创 IC验证——perl脚本file_assistant——批量修改文件

具体解决方式为:将rfdig_m33_tc017目录下的.v代码中的iopad_p10/01/02==’d1修改为BUCK_BACKUP==‘d10/1/2,将该目录下的.c代码中的IOMUX_REGS[gpio_ret_pd_aon_p10/01/02_config]修改为PMU_REGS[ana_buck_act_cfg1] = (10/1/2 & ana_buck_act_cfg1_buck_backup_mask) << ana_buck_act_cfg1_buck_backup_shift;

2024-01-13 15:33:13 1042

原创 【IC验证】perl脚本——分析前/后仿用例回归情况

perl脚本——分析前/后仿用例回归情况

2023-12-09 18:00:23 460

原创 shell脚本(一)—— 批量修改文件中的内容

简单的shell脚本,用于批量修改当前文件夹下被匹配的子文件夹中所有文件的内容:

2023-12-03 14:21:28 564

原创 Cadence Vmanager (一)—— Regression操作指南

Cadence的Vmanager工具采用vsif类型的文件作为regression的输入文件,采用vplanx/csv类型的文件作为vplan的输入文件,vplanx、vsif文件采用标准的嵌套文本格式(NTF),NTF是一种元格式,类似于XML,本文有关于Vmanager采用的NTF格式的介绍

2023-11-26 18:49:26 1038

原创 matlab 一些画图法总结(持续更新)

记录一些开发中常用的matlab画图指令,持续更新

2023-11-21 15:40:56 481

原创 UVM项目笔记——通过寄存器模型实现AHB接口的寄存器读写(内含源码)

本文从UVM的源码do_bus_read/do_bus_write出发,采用adapter.provides_responses()功能,结合rm.default_map.set_auto_predict(1)方法,通过reg_model->adapter->sequencer->driver这样的通路,实现了通过寄存器模型读写,产生AHB时序的pin级接口时序的寄存器操作接口方法。(含代码)

2023-11-20 19:22:28 625

原创 Cadence Xrun Coverage file

使用cadence xrun收集覆盖率,有关覆盖率文件ccf的相关选项

2023-11-15 18:27:52 569

原创 Cadence Xrun UVM Makefile

Cadence工具Xrun,基于UVM平台的makefile

2023-11-04 11:50:48 570 1

原创 VCS与XRUN对语法支持的不同点(持续更新...)

但XRUN只支持如下写法,需要用。(带extern关键字)

2023-11-01 18:37:32 495

原创 XRUN Cadence 常用命令(持续更新)

Cadence仿真工具xrun指令

2023-11-01 18:28:49 2579

原创 UVM:多级流水driver的实现方法——队列错位法

UVM:采用并发线程实现AHB二级流水driver,含代码

2023-01-12 20:04:42 916 1

原创 UVM自学笔记:项目之五——完善agent(driver、monitor、sequencr)

1.我们将driver的所有信号都完善,并且在reset_phase执行reset_do()命令,对所有信号进行上电复位的初始化。完善好的driver代码如下:2.monitor代码编写:在编写monitor的时候,采用了和编写driver不同的方式,这种方式实现起来相对简单一些,具体思路就是控制好每个时钟上升沿是否检测地址、控制信号以及数据信号,如果检测到了,就将数据打包入m_trans内,然后打印到控制台上。由于比较简单,就不多赘述了。直接上代码.

2021-09-14 11:46:00 4889 22

原创 UVM自学笔记:项目之四(重难点)——具有AHB二级流水特性的高适用性driver的编写(考虑到hready为低情况)

1. driver写功能编写,为了验证driver的功能我们同时需要完善sequence、sequence_item、env、testcase以及模拟DUT行为的Slave_module1.1 interface的编写:interface如下,在driver,monitor和slave_module的clocking_block中声明好各自信号的方向。1.2 driver写功能编写:1.2.1 初始main_phase代码:Driver 通过79行代码get到seq传来的r...

2021-09-09 12:16:16 5662 10

原创 UVM自学笔记3——项目之三——从零开始搭建ahb_sramc验证平台

创建如下所示的目录结构:2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和39行将接口以virtual interface的形式配置给ahb_agent和sramc_agent下

2021-09-04 14:43:09 8152 15

原创 UVM项目之二:验证计划的编写

AHB_SRAMC验证计划1.文档信息1.1版本 版本 日期 描述 作者 V1.0 2021/8/14 从sramc_top层直接验证 Zhangshuhuai V2.0 2021/8/24 内部模块ahb_slave_if的验证 Zhangshuhuai

2021-08-25 20:31:12 8767

原创 UVM项目自学笔记之一:阅读design specification

目录一、IC验证流程二、design specification一、IC验证流程在此次UVM项目中,笔者将使用UVM的平台架构和编码风格实现AHB—SRAMC的验证工作。将IC验证的整个流程划分为如下阶段,并按照流程完成整个项目:1.阅读design specification,目的:(1)学习设计的架构:包括整个soc架构,待验的IP架构(2)掌握设计功能:对功能的理解和把握至关重要,这影响了我们整个验证的正确性(3)数据流向:掌握接口的数据流向,了解该使用什么...

2021-08-25 20:04:57 3625 2

原创 SV项目笔记之一——重难点:验证平台的搭建的底层逻辑和核心思想(来啃一啃这块硬骨头——如何理清AHB的复杂时序关系)

作为一个验证工程师,掌握随机化的验证手段是十分必要的,相比于只通过定向测试的方法,随机化的验证手段可以提高验证的效率,也可以发现定向测试意想不到的bug,但采用随机化的验证手段的一个重要的前提就是验证平台的搭建,在项目的前期,搭建验证平台的工作往往是最耗时的,但带来的收益却是显著的。一个完整的验证平台是层次鲜明的,关于验证平台的结构和层次,详见我的另一篇博客:这一部分是重点也是难点,初学项目时,笔者试着自己写这一部分的代码,但总是遇到各种各样的错误,源于对AMBA—AHB总线协议的模糊以及slave

2021-07-02 19:43:46 2410 3

原创 从SOC架构到SRAMC架构——如何读懂design specification(System Verilog自学笔记之一——项目的初始:阅读design specification)

作为一个新手,刚开始接触项目时,需要掌握如下的目标:AHB-SOC芯片架构,熟悉数据流向 掌握片上内存控制器AHB-SRAMC的主要作用 熟悉AHB-SRAMC的设计架构 熟悉AHB-slave接口的基本功能 熟悉SRAM-memory的接口时序 SRAMC的设计需求 AMBA总线的AHB总线协议相关1.AHB-SOC芯片架构图:其中Bootloader初始化程序负责系统上电复位后的程序初始化。System controller通过使用中断程序协调各个模块的工作。AMB

2021-06-29 20:17:34 2654 3

原创 (基于matlab的)应变传感器数据处理方法(电阻-应变)

该方法适用于将应变传感器置于电阻检测和应变检测同时进行时,两者数据长度不相等的数据自动处理化方法。并提供了两种方式,请读者根据需要自行选择,运行前先将数据置于excel表格中,起名规范化,处理后的数据需要读者自行拷贝到origin等作图软件中作图处理。代码如下:使用方法如下:首先,将所有excel文件放入一个文件夹内,确定好文件地址,以及在excel中要处理数据位于哪列。图中所示地址为C:\Users\12099\Desktop\baobei xiangguan\数据处理\,文件名则根据拉.

2021-06-26 17:33:18 2328 1

原创 带七段式数码显示管的自动售卖机设计(verilog自学笔记之有限状态机的设计)

采用三段式的方法写一个自动售卖机,功能如下:共有三种纸币入口,分别支持10元,20元,50元。货物售价80元。需要支持找钱功能(注意,找钱有两种情况,90元和100元;110元和120元的情况不符合实际应用场景,所以不存在找钱的情况。)带有用七段式数码显示管显示当前总金额的功能。七段数码管原理图如下:七段数码显示管代码:简单模块通过case实现,无需多言。FSM状态转换关系如下:摩尔型状态机设计思想:采用三段式,第一段同步时序逻辑,描述状态转换关系。第二段采用

2021-06-24 18:29:49 580

原创 AHB-SRAM项目之2.5代码改造优化补充(sv自学笔记2.5)

在优化OOP的代码过程中,要紧紧结合OOP的三大特点:封装、继承和多态。采用local定义局部变量。将只有driver中才能用到的中间变量封装在class内。可以在ahb_trans中新定义各种变量,非常容易维护。使用time类型定义时间类型的变量:start_time end_time在ahb_trans里面定义一个function—print,调用时可以将所有信息打印出来。将function放在class外面的方法:在class内部声明一个function,此时不要定义;再在cl

2021-06-21 18:20:40 636 1

原创 AHB—SRAM项目之5 reference_model与scoreboard(SV自学笔记)

这一部分的内容是重难点所在。开始该部分之前应该至少掌握sram的基本架构和reference model与scoreboard的数据流向。Reference model用于模拟DUT的功能,对DUT的行为做一个预测,来看看DUT的行为是否正确,并且把结果送入scoreboard与DUT的结果进行一个比较。首先因为要将driver和sb连起来,所以mailbox用于通信,在两者中均声明一个mailbox传递相同类型的参数,并起同样的名字。在本例中,在两者之外实例化mailbox,即在env中实例化

2021-06-21 14:43:21 3136

原创 AHB-SRAM项目之并发进程与进程通信(SystemVerilog笔记之4)

在开始该模块之前,应该了解的内容如下:Fork_join三兄弟,automatic的task和function和静态的有何区别?开始:首先将program改成automatic类型,这样在program里写task和function时,就会让task和function编程automatic类型的。之后用fork join实现generator和driver的启动。虽然用fork_join将其包起来了,但目前仍旧存在一定的问题,比如:但现在代码看起来不够简洁,比如u_ahb_mas

2021-06-21 12:50:32 621

原创 AHB-sram关于受约束的随机化(sv项目笔记之3)

在这一部分中,了解随机化验证策略的重要性,为什么要使用随机化的验证策略?基于对象的随机包括哪三个步骤?定义随机变量rand、randc。 指定约束条件constraint range{[][]} 调用randomize()方法若没有定义rand,编译不会报错,但仿真会报错。这一部分由于只是在generator中做出修改,所以我们需要针对generator进行修改,新定义一个产生随机变量的方法。在env_top中进行调用时调用随机化的方法即可:在trans中还要指..

2021-06-21 11:40:41 541

原创 ahb_sramc代码的OOP改造(sv项目自学笔记2)

目前所有功能都揉在ahb_tb中,因此可以将其拆开来分成ahb_tb,interface,env_top和sramc_top几个部分。ahb_tb将会实现:将外部时钟信号、复位信号传递进来。 实例化一个interface,实例化一个env_top,实例化一个sramc_top,并且将env_top与sramc_top通过interface连接起来。env_top的program块包含:激励信号的产生通过组件类:class generator的方法gen_one_sim实现,方法的返回值..

2021-06-21 11:19:52 1291 1

空空如也

空空如也

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

TA关注的人

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