- 博客(29)
- 资源 (4)
- 收藏
- 关注
原创 VCS后仿调试记录(Post-PR with SDF)
前一篇文章记录了一些在做Pre-PR网表仿真阶段遇到的一些问题和解决思路,这篇把坑填一下,总结下使用VCS工具做Post-PR网表仿真和带SDF(Standard Delay Format)反标仿真的一些问题记录。
2025-03-25 17:30:50
975
原创 怎么用VIM查看UVM源码
利用ctags工具可以建立源码的索引表,在使用VIM或其他文本编辑器时,就可以跳转查看所调用的UVM或VIP的funtcion/task/class等源码了。
2024-11-15 17:14:18
519
原创 PCIe学习笔记(2)错误处理和AER/DPC功能
处理器上错误通常可分为detected和undetected error。Undetected errors可能变得良性(benign),也可能导致系统故障如silent data corruptions (SDC)。Detected errors则又可分为correctable errors (CE) 和uncorrectable errors (UCE)。PCIe定义了两种错误报告范式:基线功能和高级错误报告功能(AER)。本文介绍PCIe错误定义及AER/DPC功能。
2024-02-19 14:10:49
4931
原创 PCIe学习笔记(1)Hot-Plug机制
PCIe hot-plug是一种支持在不关机情况下从支持的插槽添加或删除设备的功能,PCIe架构定义了一些寄存器以支持原生热插拔。
2024-02-07 16:00:49
3467
原创 VCS后仿调试记录(Pre-PR)
在项目搭建和调试后仿环境时做了很多工作,因此希望总结一下使用VCS做芯片后仿的步骤和遇到的一些主要问题。芯片后仿真又可分为PR前仿真(综合后)和PR后仿真(布局布线后),本文记录Pre-PR仿真的部分。
2022-05-02 23:02:11
10488
3
原创 CPU仿真环境中的printf实现
在包含CPU的仿真环境中,如果要在C程序测试中通过打印做一些调试,通常需要重新实现printf函数。本文介绍了在Linux系统、嵌入式系统及在CPU仿真环境中的printf实现。
2022-04-18 18:07:06
2955
1
原创 使用VCS和Verdi的UPF低功耗仿真流程
目前的SOC芯片很多都做了低功耗设计,现有降低功耗的技术方法有很多,为验证越来越复杂的功率体系结构、多电压域等设计,通常需要使用带UPF的低功耗仿真(Power-Aware Simulation)。
2022-02-24 14:36:06
11961
3
原创 Synopsys验证VIP学习笔记(6)检查和打印信息控制
在使用VIP时,出于对仿真性能和环境效率的考虑,可以关闭VIP中的一些检查和打印信息。当然,屏蔽的前提是确认过这些检查或打印信息是不被需要的或已实现的。
2021-12-06 12:48:16
7516
13
原创 Synopsys验证VIP学习笔记(5)重写VIP中的系统常数
VIP通过include文件来定义一些系统约束,可以通过覆盖这些常量来改写一些系统参数,例如,可以增加VIP限制的一些最大延迟值,或调整最大地址宽度、ID宽度等。VIP中的系统常量在 $DESIGNWARE_HOME/vip/svt/amba_svt/latest/sverilog/include 目录下的以下文件中定义:svt_axi_defines.svi顶层include文件,它包含了common_define.svi和port_define.svi文件。此外,在定义了 `SVT_AXI_I
2021-11-15 11:22:05
6824
5
原创 Synopsys验证VIP学习笔记(4)检查AXI的outstanding数
在使用AXI-VIP验证时,需要检查AXI的outstanding数,由于VIP的monitor port本身仅监测单笔burst,而outstanding涉及多笔burst,可以采用回调机制实现:从 svt_axi_port_monitor_callback 类扩展用户自定义回调类 cust_svt_axi_monitor_callback。class cust_svt_axi_monitor_callback extends svt_axi_port_monitor_callback ;
2021-11-04 11:31:31
7920
9
原创 Synopsys验证VIP学习笔记(3)总线事务的配置和约束
在使用Synopsys AXI VIP时,需要配置一些信号的属性或定义一些信号的delay,通常可以直接在svt_axi_transaction类中控制。AXI VIP中描述从事务数据的类是svt_axi_slave_transaction,从事务类提供了配置信号数据(如rresp[], bresp, data[])和延迟(如bvalid_delay, addr_ready_delay)的一些属性,大多数属性为public且可随机化,并且仅在配置vip slave agent为active模式时才生效。
2021-09-28 16:13:42
9735
12
原创 Synopsys验证VIP学习笔记(2)Port Monitor用法
Synopsys AXI VIP为master和slave agent中的monitor提供了名为item_started_port和item_observed_port的analysis port,前者仅在总线事务传输开始时发送,后者则在总线事务传输完成后发送完整svt_axi_master_transaction和svt_axi_slave_transaction对象到item_observed_port端口,并且在vip agent为passive和active模式下都有效。
2021-09-26 10:53:25
7678
3
原创 Synopsys验证VIP学习笔记(1)Memory模型用法
Synopsys的VIP(本文以AXI slave为例)提供了由svt_mem类表示的momory模型,在passive模式下其观测值与寄存器模型类似,会基于总线更新,在active模式下则由slave sequence更新。
2021-09-09 19:10:50
14931
12
原创 Linux定时执行脚本用法
验证可能需要定期跑一些回归脚本,Linux其实自带crontab命令用于配置计划任务,以下命令可用于确认和开启该服务。service crond status 查看定时任务服务状态 service crond start 开启服务 service crond stop 关闭服务 service crond restart 重启服务 service crond reload 重新载入配置 crontab命令的基本参数如下:-e 编辑该用户的cron
2021-08-24 17:41:43
1002
原创 I2C验证的时序特性问题
I2C通常支持三种速率模式:标准(100kb/s)/快速(400kb/s)/高速模式(3.4Mb/s)。CCI(Camera Control Interface)是为I2C的子集,仅支持标准和快速两种模式,相对速率较低。因此在采用CCI接口时,应考虑I2C的建立保持时间问题。
2021-08-13 18:21:34
7462
7
原创 I2C验证的上拉电路逻辑问题
最近在做I2C的验证,在模拟上拉电阻逻辑时遇到了一些问题,记录本文希望做一个经验总结。 I2C是一种双向二线同步串行总线,拥有一条串行数据线(SDA)和串行时钟线(SCL),支持多主多从,包含冲突检测和仲裁功能,连接到I2C总线上的每个设备都有一个唯一的地址。I2C支持多主多从的能力源于上拉和线与逻辑。
2021-08-10 11:15:07
5349
原创 SV实验3 子系统验证和测试点划分
MCDF子系统相比MCDT添加了数据整形、寄存器控制和状态显示功能。整个验证环境各组件之间相互独立,依靠event和mailbox同步和通信。
2021-02-28 20:39:47
1518
1
原创 SV实验2 随机约束、测试控制和环境构建
SV实验3的学习记录,MCDT部分的Testbench已逐渐完整,包含initiator、generator、agent、monitor、checker和test等组件。
2021-02-27 10:16:47
1053
原创 SV实验0 DUT设计描述
MCDF(多通道数据整形器,Multi-Channel Data Formatter)将上行(uplink)多个通道数据经过内部FIFO,并以数据包(data packet)的形式送出。上行和下行数据的接口协议不同;MCDF有寄存器读写接口,可以支持更多控制功能。
2021-02-25 22:40:25
2447
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人