自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

元直的博客

不積跬步,無以至千里;不積小流,無以成江海。

  • 博客(669)
  • 资源 (15)
  • 收藏
  • 关注

原创 TCSH入门教程 --- tcsh从入门到精通

TCSH Shell入门教程摘要 TCSH是一种编程风格更接近C语言的Unix shell,其控制结构和表达式语法与bash等shell有明显差异。本文介绍了TCSH的核心概念和常用功能: 变量与脚本 使用set、@、setenv定义变量 支持数值运算和数组操作 脚本需以"#"开头,通过$<读取输入 运算符 包含赋值(=,+=)、算术(+,-)、关系(>,==)等运算符 支持重定向(>,<)和管道(|) 控制结构 if/while使用(expression)测试条

2020-06-29 20:41:35 10059 3

转载 华为内部的关于IC验证的经验总结

本文总结了华为IC验证工程师的实战经验,提出验证的核心目标是发现所有Bug。强调验证人员需具备代码分析能力、系统思维和淘金式执着精神,反对过度依赖自动化工具。从验证视角、检视技巧、波形分析等维度,分享了如何通过代码检视、波形检查等方法高效定位问题。文章指出,验证的关键在于人:验证人员需与设计思维对抗,项目经理需关注人员搭配。最后强调"波形为王",提倡手工验证与自动化结合,在看似正常的波形中寻找隐藏问题。这些经验对提升验证效率和芯片质量具有重要指导意义。

2020-04-30 12:10:45 21180 7

原创 [Cshell]Cshell基本語法 --- 從入門到精通

本文介绍了CShell脚本编程的基础知识和实用技巧。主要内容包括:1)变量和数组的使用方法,包括局部变量、全局变量和数组操作;2)命令参数传递和命令行参数处理;3)文件操作和IO重定向;4)流程控制语句如if/else/while/foreach等;5)实用技巧如字符串处理、日期时间操作和环境变量设置;6)调试方法和错误处理机制。文章还提供了多个实际应用示例,如提取字符串中的数字、文件重定向等,帮助读者快速掌握CShell脚本编程的核心技能。

2019-03-09 11:21:25 35183 7

原创 [gvim].vimrc中的一些智能化设置

摘要:本文介绍如何通过.vimrc文件配置Vim/Gvim实现智能编程功能。主要内容包括:1)基础设置(语法高亮、行号显示等);2)智能缩进与空格管理(tabstop、expandtab等);3)自动补全配置(omnifunc、Tab映射);4)语言特定设置(Python/C++等);5)gvim界面优化(隐藏菜单栏)。文中提供了完整的.vimrc配置示例,并详细说明了vim-plug插件管理器的安装使用方法。这些设置可显著提升编码效率,支持语法高亮、智能缩进、自动补全等核心功能,同时保持配置轻量级且兼容大

2025-08-10 12:27:34 28

原创 [Cshell]alias定义中包含引号的处理方法,以及嵌套引号的区分

在csh/tcsh中处理alias中的引号需要特殊技巧:1) 使用不同类型的引号嵌套(如外部单引号内部双引号);2) 通过反斜杠转义内部引号;3) 注意参数传递使用!*等特殊变量。单引号保持字面值,双引号允许变量扩展,但历史替换(!)需要转义。复杂嵌套建议交替使用引号类型或层层转义,并注意csh/tcsh对单引号内变量扩展的限制。定义后需测试并持久化到~/.cshrc文件。

2025-08-10 11:48:26 412

原创 [IOMMU]基于 AMD IOMMU(AMD‑Vi/IOMMUv2)的系统化总结与落地方案

本文系统总结了基于AMD IOMMU(AMD-Vi/IOMMUv2)的验证方案,包含架构要点、SoC验证方法和可落地的参考模型实现。摘要主要内容: 核心功能:IOMMU提供设备DMA地址翻译(IOVA→PA)和访问控制(R/W/X权限),支持SVM共享虚拟地址、ATS缓存、中断重映射等进阶特性。 验证方法: 覆盖翻译正确性(4K/2M/1G页、权限组合) 异常路径(DTE无效、缺页、权限错误) 并发场景(多RID/PASID、TLBI与翻译交叉) 虚拟化/SVM验证(PASID绑定、设备缺页处理) 参考模型

2025-08-09 21:34:31 1098

原创 [IOMMU]面向芯片/SoC验证工程的IOMMU全景速览

摘要:本文系统阐述了IOMMU技术在芯片验证中的关键要点。首先解析了IOMMU的核心功能,包括地址转换、隔离保护、虚拟化支持和中断重映射。其次对比了ARM SMMU、Intel VT-d和RISC-V IOMMU三种主流架构特性。重点介绍了SoC验证方法学,涵盖功能用例设计、错误场景覆盖、性能评估指标和系统级验证流程,并提供了一个通用参考模型框架。该模型支持两阶段地址转换、多级页表和权限检查,可与UVM/系统仿真环境集成。文章还提供了Linux驱动调试技巧、常见问题定位方法,以及将参考模型适配具体架构的工程

2025-08-09 21:00:07 788

原创 [SC]SystemC 常见的编译/语法错误与解法(三)

SystemC建模在SoC验证中常见的编译/语法错误可分为三类:1.基础语法错误,如未包含头文件、命名空间缺失、SC_MODULE缺少分号等;2.进程注册错误,包括构造函数外使用SC_CTOR、进程回调签名不匹配、SC_METHOD误用wait()等;3.端口与信号错误,如类型不匹配、位宽不一致、sc_vector初始化不当等。解决方法包括:规范代码结构、统一类型策略、使用sc_vector管理端口数组、严格进程注册规范等。建议采用模块样板、静态分析工具和编译探针来预防问题,并遵循"从第一个错误开

2025-08-09 20:47:09 45

原创 [SC]高效地调试SystemC模型中的语法错误

本文介绍了高效调试SystemC模型的方法论,分为预防策略、调试工具和系统性方法三个层面。预防措施包括启用编译器警告、规范命名、模块化设计和使用断言。核心调试工具推荐波形图调试(GTKWave)、日志打印和GDB调试器,分别适用于时序问题、控制流跟踪和算法调试。系统性方法强调错误分类和"分而治之"的定位策略,针对不同类型错误提供对应的调试工具组合。通过这套方法,开发者可以建立完整的调试工作流,有效解决SystemC模型中的各类问题。

2025-08-09 20:00:26 49

原创 [SC]SystemC开发中常见的语法错误及解决方法(二)

《SystemC开发常见语法错误及解决方法(二)》摘要 本文总结了SoC验证中SystemC建模常见的50个语法和逻辑错误,分为七大类并提供解决方案。主要错误类型包括:基础语法与宏错误(如忘记包含头文件、命名空间问题);模块端口连接错误(端口未绑定、信号多驱动、数据类型不匹配);进程敏感列表错误(SC_METHOD中使用wait()、敏感列表语法错误);构造实例化错误(忘记SC_CTOR、子模块管理不当);仿真控制错误(未调用sc_start()、时间单位不一致);数据类型错误(sc_bv/sc_lv混淆、

2025-08-09 07:28:21 119

原创 [SC]SystemC开发中常见的语法错误及解决方法(一)

SystemC开发中常见的语法错误及解决方法 摘要:本文总结了SystemC硬件建模语言开发中常见的50种语法错误,主要涉及五大类问题:模块定义、信号与端口、时钟与进程、数据类型和仿真控制。文章详细列举了每类错误的典型表现、错误示例及解决方案,包括SC_MODULE定义不当、信号未初始化、端口绑定错误、进程注册不规范、数据类型不匹配等问题。针对每个错误都提供了修正后的正确代码示例。文章还给出了调试建议(如使用sc_report_handler)和预防措施(遵循编码规范、使用静态分析工具),帮助开发者快速定位

2025-08-09 07:02:27 323

原创 [PCIe6.0]SR-IOV 与 ATS Request 的关系

摘要:SR-IOV与ATS在PCIe虚拟化环境中协同工作,SR-IOV通过物理功能(PF)生成虚拟功能(VF)实现设备虚拟化,ATS通过地址转换服务优化VF的DMA性能。两者通过RequesterID(BDF)区分PF和VF的ATS请求,IOMMU根据ID进行地址转换和内存隔离。ATS包含Request(0x20)和Completion(0x21)两种消息格式,SR-IOV通过专用寄存器配置VF数量、偏移等参数。这种机制在保证安全性的同时显著提升了虚拟化I/O性能,适用于数据中心等高性能场景。

2025-08-01 11:14:55 949

原创 ATS Request中的PASID的作用是什么

摘要: PASID(进程地址空间标识符)是PCIe ATS(地址转换服务)中的关键组件,用于标识不同进程或虚拟机的地址空间。其主要作用包括:1)支持多进程共享设备时隔离地址空间;2)实现共享虚拟地址(SVA),允许用户态程序直接访问设备;3)提升虚拟化性能(如SIOV),通过PASID区分虚拟机请求;4)增强安全性,基于PASID限制设备内存访问权限。PASID通过20位标识符在TLP前缀中传递,与IOMMU协作完成地址转换与缓存,适用于高性能计算、AI及虚拟化场景,但依赖硬件支持和软件适配。

2025-08-01 09:28:41 627

原创 关于FLIT-based FEC在实际应用中的案例

摘要:FLIT-based FEC(基于FLIT的向前纠错)是PCIe 6.0的关键特性,通过将数据分割为固定大小的FLIT(如256字节)并嵌入纠错码(如Reed-Solomon),显著降低延迟(<10ns)和带宽开销(~2%),适用于高噪声环境(如PAM4编码)。实际案例包括: AI训练(NVIDIA H100):错误重传率从0.1%降至<0.01%,吞吐量提升20-30%。 HPC(AMD MI300):链路错误率降低50%,系统效率提升15%。 高速存储(三星SSD):IOPS提升25%

2025-07-30 21:32:45 1011

原创 [SKE]Python gmssl库的C绑定

摘要:本文介绍了将gmssl库(支持国密算法SM4等)通过C语言绑定集成到UVM验证环境中的方法。通过实现C语言的DPI接口函数,替代原有的Python脚本方案,可直接在SystemVerilog中调用加密算法。文章详细说明了对称加密(AES/SM4/DES/3DES)和RSA算法的C语言实现方案,包括密钥生成、加解密等功能,并提供了完整的代码示例。该方法避免了Python解释器的依赖,提高了性能,简化了UVM验证环境的集成流程。同时给出了编译方法和UVM集成示例,以及可视化流程图说明整个调用流程。

2025-07-30 20:44:31 112

原创 [SKE]使用gmssl库实现AES、SM4、DES、RSA、3DES_EDE和3DES_EEE算法的加密/解密参考模型

本文提出了一种基于Python的加密算法参考模型实现方案,支持AES、SM4、DES、RSA、3DES_EDE和3DES_EEE等多种算法。通过Python标准库cryptography实现核心加密功能,并设计C语言桥接层实现UVM(SystemVerilog)环境与Python脚本的交互。方案采用DPI-C技术调用C函数,C函数再通过Python C API执行Python脚本并返回结果。文章详细介绍了Python脚本实现、C桥接代码、SystemVerilog DPI接口声明以及UVM集成方法,提供了一

2025-07-30 20:39:16 276

原创 [SKE]UVM环境下OpenSSL加密算法参考模型设计

摘要:本文提出了一种基于OpenSSL的加密算法参考模型设计方法,用于UVM测试平台验证硬件加密模块。通过OpenSSL的EVP接口实现AES、SM4、DES/3DES等对称加密算法,以及RSA非对称加密算法,并利用DPI-C将C++函数导入SystemVerilog环境。文章详细展示了各算法的C++实现代码,包括加密上下文初始化(如EVP_EncryptInit_ex)、数据加解密处理(如EVP_EncryptUpdate/Final_ex)和资源释放等关键步骤。同时介绍了编译为共享库的方法及System

2025-07-30 20:23:14 608

原创 [SKE]使用OpenSSL库实现AES、SM4、DES、RSA、3DES_EDE和3DES_EEE算法的加解密验证

本文介绍了使用OpenSSL库实现多种加密算法的验证方案。通过OpenSSL提供的API,实现了AES-128-CBC、SM4-CBC、DES-CBC、RSA-2048、3DES_EDE和3DES_EEE算法的加密/解密功能,并将这些函数封装为C++动态库供UVM验证环境调用。方案采用DPI接口将加密函数集成到UVM测试平台中,作为参考模型验证硬件加密引擎的正确性。文中详细说明了各算法的实现要点、参数要求、编译方法及UVM集成步骤,并提供了完整的C++实现代码,包括对称加密的通用处理函数和RSA的非对称加密

2025-07-30 16:59:48 171

原创 [VMM]C代码示例:从VA到PA的页表转换

本文展示了一个C语言实现的x86-64四级页表转换示例,将虚拟地址转换为物理地址。代码演示了完整的页表遍历过程,包括从CR3寄存器获取PML4基址,逐级查找PDPT、PD和PT表项。重点处理了1GB和2MB大页的情况(通过PS位判断),并详细说明了页表项权限位的检查机制,包括RW(读写)、US(用户/内核)、NX(不可执行)等位的级联检查规则。文章还分析了PWT、PCD、PAT等控制字段的处理方法,强调权限检查需采用"最严格原则"。

2025-07-25 22:40:24 1011

原创 [MMU]四级页表查找(table walk)的流程

摘要:x86_64架构采用四级页表机制完成虚拟地址到物理地址的转换。查找流程从CR3寄存器获取PML4基址开始,依次通过PML4、PDPT、PD、PT四级表项(每级用9位地址索引),最终结合12位页内偏移得到物理地址。每个表项8字节,包含下一级表或页框的基址(高40位左移12位)。计算时需逐级索引定位表项,并检查Present位等权限字段。大页模式下某些层级可直接返回页框地址。整个过程涉及多次物理内存访问,形成完整的地址转换链路。

2025-07-25 22:27:40 967

原创 [MMU]TLB Miss 后的 Hardware Table Walk及优化

摘要 x86-64架构的4级页表转换流程详解:当TLB未命中时,CPU的MMU会通过硬件table walk机制自动遍历页表。该过程从CR3寄存器开始,依次访问PML4、PDP、PD和PT四级页表,每级通过虚拟地址的9位索引定位页表项,检查权限位并提取下一级基址。若遇到大页(2MB或1GB)可提前终止遍历。整个过程涉及4次内存访问,现代CPU通过Page Walk Cache优化性能。遍历成功后更新TLB,失败则触发页错误交由操作系统处理。大页机制能缩短遍历路径,提升TLB命中率,但对内存管理提出更高要求。

2025-07-25 22:22:58 1150

原创 [MMU] Table walk flow详解

本文详细解析了x86-64架构中4级页表的地址转换机制(tablewalk)。在4KB页模式下,虚拟地址通过CR3→PML4→PDP→PD→PT四级页表逐级索引转换:每级使用9位索引定位8字节表项,最终获取物理页基址。文章重点阐述了硬件自动执行的页表遍历流程,包括大页处理(2MB/1GB)、权限检查及异常处理机制,并提供了从PDE计算物理地址的具体方法与示例。该机制通过TLB缓存优化性能,是现代CPU内存管理的关键组成部分。

2025-07-25 22:11:38 580

原创 [UPF]大规模设计优化 -debug_access+all 带来的仿真性能问题

本文提供了双电源域设计的UPF文件示例,包含电源网络创建、电源域定义、电源开关、隔离单元和保持单元等配置。针对Verdi调试提出常见问题排查方法,包括信号匹配、UPF加载、波形dump等。针对大规模设计仿真性能问题,建议优化信号dump策略,如使用信号选择文件、分段dump、分块仿真等方法,在保证调试需求的同时减少资源消耗。通过合理配置UPF和仿真参数,可有效解决多电源域设计验证中的调试问题。

2025-07-25 21:32:44 1118

原创 [NLP]多电源域设计的仿真验证方法

本文介绍了多电源域设计的仿真验证方法。首先给出了包含两个电源域PD1和PD2的Testbench示例,包含5种典型低功耗场景:单域掉电/唤醒、全芯片掉电/恢复等。其次详细说明了在Verdi中正确显示电源域状态的操作步骤,包括加载UPF文件、使用PowerAware模式等。最后解释了VCS参数-debug_access+all的作用,该参数可确保生成包含所有低功耗相关调试信息的波形文件,是进行低功耗验证的必要条件。这些方法共同构成了完整的低功耗设计验证流程。

2025-07-25 21:28:38 599

原创 [NLP]UPF+RTL联合仿真的VCS命令及UPF-aware 波形工具的使用

摘要:本文介绍了UPF+RTL联合仿真的VCS命令实现方法及UPF-aware波形工具的使用技巧。重点包括:1) Testbench中低功耗控制信号(pwr_sw_ctrl/iso_ctrl/ret_ctrl)的驱动方法,模拟"上电-断电-唤醒"场景;2) UPF-aware波形工具(Verdi)的特殊功能:显示电源域状态、高亮隔离/保持行为、电源控制信号专用面板;3) 典型VCS仿真命令示例,包含UPF文件加载、波形生成等关键参数。通过联合仿真和波形分析,可直观验证芯片低功耗设计的正确

2025-07-25 21:24:12 461

原创 NLP验证自动化脚本优化

摘要:本文介绍了基于VCS的低功耗验证自动化脚本优化方法。重点解决了三个问题:1)通过环境变量动态选择UPF文件,实现灵活加载控制;2)处理UPF文件间依赖关系,提出自动排序方案确保正确加载顺序;3)提供TCL脚本动态加载实现方案。文中给出了bash和TCL脚本示例,包括依赖检查、错误处理和默认值设置等优化点,适用于不同测试场景需求。这些方法显著提升了验证脚本的灵活性和可靠性,特别适用于需要多种UPF组合的复杂低功耗设计验证。

2025-07-25 21:07:35 938

原创 [NLP]如何在 Synopsys VCS 仿真脚本中处理多个 UPF 文件的加载

摘要:本文详细介绍了在Synopsys VCS仿真脚本中处理多个UPF文件的方法。VCS支持通过-upf选项顺序加载多个UPF文件,后加载文件可覆盖或扩展前文件定义。文中提供了两种实现方式:静态加载(硬编码多个-upf)和动态加载(使用数组循环),并给出了示例脚本。同时介绍了分层加载方式(通过主UPF文件加载子文件)和关键注意事项,包括加载顺序、冲突解决、性能优化等。该方法支持模块化UPF设计,便于团队协作和复用,适用于大多数VCS版本的低功耗验证场景。

2025-07-25 20:55:48 736

原创 [NLP]一个完整的 UPF 文件示例

本文提供了UPF(统一电源格式)的完整应用指南,包含三个关键部分:1)一个整合了50个语法示例的完整UPF文件,展示了电源域创建、供电网络配置、电源状态表定义、隔离策略等典型命令;2)详细说明如何将UPF文件集成到VCS模拟流程中,包括文件准备、编译选项和示例脚本;3)一个交互式HTML语法树图表,直观呈现UPF命令的层次结构,支持节点展开/折叠功能。这些资源为低功耗设计验证提供了从基础语法到工程实践的全面参考,特别适合需要在VCS环境中实现电源感知验证的工程师。

2025-07-25 20:50:20 799

原创 [NLP]UPF基本语法及其在 native low power verification中的典型流程

UPF(Unified Power Format)是IEEE标准,用于描述芯片设计中的低功耗结构,如电源域、供电网络、隔离单元等。本文介绍了其在原生低功耗验证中的典型流程,包括设计准备、UPF加载、模拟设置和验证等步骤,并提供了50个UPF关键语法示例,涵盖电源域创建、供电网络、电源状态表、隔离策略等核心功能。这些例子基于IEEE 1801标准,展示了UPF在低功耗设计验证中的应用场景。

2025-07-25 20:46:44 757

原创 [SV]在 Verilog 中,对某个信号施加一个弱下拉,但又不能影响后续的正常驱动

摘要:Verilog中实现弱下拉(weak pull-down)而不影响后续强驱动的方法主要有两种。推荐使用pulldown门级原语,它会在无强驱动时自动将信号拉低,当有assign等强驱动时会自动被覆盖。SystemVerilog还支持通过带强度的assign语句实现。关键是不能使用普通assign(会永久拉低),而应使用pulldown原语或带weak0强度的驱动。这种方法适用于总线、复用信号等需要默认状态的场景。

2025-07-25 17:42:51 41

原创 [SV]SystemVerilog随机数发生器

摘要:SystemVerilog提供多种随机数生成方法,包括$random()、$urandom()、randomize()等,具有随机稳定性特性。随机稳定性表现为对象/线程间的随机序列相互独立,但同一线程内不同随机方法会相互影响。影响因素包括种子变化、调用顺序改变及随机条目调整等。建议谨慎使用$random(),注意线程内随机方法的相互干扰,并在测试程序中合理控制随机操作的位置以避免意外影响随机结果。

2025-07-20 21:30:39 160

原创 [DPI-C]SystemVerilog 和 C/C++ 之间的桥梁 DPI

摘要:SystemVerilog的DPI(Direct Programming Interface)提供了与C/C++等语言的高效交互接口,相比传统PLI方式更简洁。DPI支持数据类型转换(包括四值逻辑变量通过aval/bval表示)、参数方向控制(input/output/inout)和三种导入模式(pure/context/generic)。通过svdpi.h头文件实现数据类型映射,支持定宽数组和动态数组(openarray)传递,其中openarray需使用svGetArrayPtr获取指针。

2025-07-10 11:13:35 962

原创 Python gmssl.SM2签名与验证的SystemVerilog集成示例

本文提出了一种SM2数字签名与验证的SystemVerilog集成方案,采用UVM-DPI-Python三层架构实现完整的加密验证流程。该方案通过Python调用gmssl库生成SM2密钥对,对随机消息进行签名和验证,并处理复杂数据结构在语言间的转换。系统包含密钥生成、数据签名、签名验证三个核心功能模块,支持正反例测试验证。实验结果表明,该方案能正确完成SM2签名验证全流程,并有效检测错误数据。该实现为构建安全验证环境提供了可靠的技术基础,展示了异构系统集成处理非对称加密的可行性。

2025-07-06 10:09:39 444

原创 Python gmssl.SM4使用案例

摘要:本文介绍了在UVM验证环境中使用Python的gmssl库实现SM4加密验证方案的方法。gmssl是一个纯Python实现的国密算法库,支持SM2/SM3/SM4/ZUC等算法,具有易安装、可读性强、便于集成等特点。文章详细展示了SM4-CBC模式加解密的Python实现示例,并提供了完整的SystemVerilog集成方案,包括DPI-C接口设计、UVM参考模型实现和测试用例编写。通过三层架构(UVM<->C<->Python)实现了验证环境与Python脚本的高效交互,为国密算法IP验证提供了可靠

2025-07-05 11:30:58 467

原创 在SoC数据加解密验证中使用 Python 的 gmssl 库

本文介绍了在SoC验证中使用Python的gmssl库实现SM4加解密的方法。通过模块化设计,将加解密功能封装为Python脚本(sm4_crypto.py),该脚本通过标准输入/输出以JSON格式与UVM环境交互。UVM侧通过DPI-C接口调用Python脚本,保持原有接口不变即可实现功能替换。示例包含完整的代码实现,包括gmssl的SM4加密/解密操作、CBC模式处理、PKCS#7填充等核心功能,并通过测试用例验证了加密-解密流程的正确性。这种方案展示了良好的可维护性,底层算法变更时无需修改上层验证环境

2025-07-05 11:24:05 405

原创 [SM4]UVM验证环境中集成Python脚本和OpenSSL SM4加密算法的完整示例

摘要:本文介绍了一个在UVM验证环境中集成Python脚本和OpenSSL SM4加密算法的完整方案。通过创建Python加密模块、DPIC接口和UVM验证组件,实现了对datapath加解密功能的验证。系统采用模块化设计,包含Python加密脚本(sm4_crypto.py)、DPIC封装层(dpi_wrapper.c)和UVM验证环境(sm4_pkg.sv等)。Python脚本基于OpenSSL实现SM4-CBC模式的加解密,通过DPIC接口与SystemVerilog交互,UVM验证环境则负责生成测试

2025-07-05 11:02:55 256

原创 [SM4]UVM环境中调用gmssl库验证数据通路加解密的实现方法

摘要:本文介绍在UVM验证环境中集成Python的gmssl库实现SM4加解密验证的方法。通过文件I/O交互,UVM生成128位明文和初始化向量(IV),调用Python脚本执行SM4加解密,并验证结果正确性。系统包含完整UVM环境架构(事务类、驱动、记分板等)和Python脚本实现,支持加密/解密双向验证流程。该方法采用文件传递数据,确保128位数据完整性,并在记分板中验证解密结果与原始明文的一致性。文中详细说明了数据交互过程、错误处理机制及验证注意事项,为芯片验证中密码算法功能验证提供了可行方案。

2025-07-05 10:54:22 993

原创 [FPGA]嵌入式系统FPGA设计资源

https://www.embedded.com/category/technical-article - 嵌入式论文。- 用于 FPGA 设计的 Synposis 工具 (Synplicity)- 用于 FPGA 设计的 MATLAB/Simulink。- 用于 FPGA 设计的 Altium 工具。- 用于 FPGA 设计的 Mentor 工具。- 用于 FPGA 设计的 Aldec 工具。- Achronix FPGA 供应商网站。- Altera FPGA 供应商网站。

2025-06-26 14:57:43 1218

原创 Makefile关键语法示例

可以通过在顶层 Makefile 中定义一组 Testcase、循环运行每个 testcase,并把日志分目录保存,最后 grep 出 PASS/FAIL,再汇总成 CSV 报表。如何使用Makefile实现UVM测试用例的批量运行和结果收集?能否提供一个更复杂的Makefile例子,包含多个子模块和条件编译?这些例子涵盖了UVM SoC验证中常用的Makefile技巧,包括递归构建、自动依赖、条件编译、并行执行等关键功能。这个示例可以根据项目需求扩展更多子模块、更多测试、或加入并行执行(

2025-06-14 09:53:49 392

原创 CHI协议验证中的异常及边界验证

CHI 协议作为多核系统中复杂的缓存一致性协议,验证其行为需要强大的工具和方法来执行错误注入和边界条件测试,并衡量测试覆盖率。以下详细讨论常用工具、覆盖率评估方法及项目实践中的资源投入策略。在 CHI 协议及其相关设计(如 NOC 一致性)中,错误注入工具主要用于模拟异常情况,验证系统的鲁棒性和错误处理能力。通过科学分配资源和使用高效工具,可以在项目中实现全面的 CHI 协议验证,并确保系统的可靠性和性能。在实际项目中,错误注入和边界条件测试的投入需要根据项目需求和资源进行权衡。

2025-06-12 23:42:31 649

Unified Coverage Interoperability Standard (UCIS)

复杂电子电路的验证经常需要使用多种验证工具,可能来自多个供应商,并采用不同的验证技术。可能来自多个供应商,并采用不同的验证技术。统一覆盖互操作性标准 (UCIS) 提供了一个应用编程接口 (API),可在软件仿真器、硬件加速器、符号加速器、定制软件和系统之间共享覆盖率数据。软件模拟器、硬件加速器、符号模拟、形式工具或定制验证工具之间共享覆盖率数据。验证工具之间共享覆盖率数据。覆盖率数据通常在验证过程中使用,以确定在使用不同工具和方法时是否达到了验证目标。在使用不同工具和方法时,覆盖率数据通常用于确定是否达到了验证目标。现在,设计的复杂性不断增加,这就要求不同工具之间共享覆盖率数据,以实现数据在不同工具之间共享,以实现验证闭合。本文档定义了 UCIS,它是在多种工具间交换验证覆盖率的通用标准。本文档介绍了 UCIS,括 UCIS API、被称为 UCIS 数据库(UCIS 数据库)的覆盖率数据库的抽象表示。本文档介绍了 UCIS API、被称为 UCIS 数据库 (UCISDB) 的覆盖率数据库抽象表示法、基于文本的互操作性 XML 交换格以及如何使用 UCIS 开发统一覆盖率的示例。

2024-09-12

Accellera Standard for VERILOG-AMS - Analog and Mixed-signal Ext

Accellera Standard for VERILOG-AMS - Analog and Mixed-signal Extensions to Verilog HDL

2024-09-11

可综合的SystemVerilog,打破 SystemVerilog仅用于验证的神话

SystemVerilog 不仅仅用于验证!在最初设计 SystemVerilog 标准时,其主要目标之一是创建可综合的复杂硬件设计模型。SystemVerilog的主要目标之一是为复杂的硬件设计创建可综合的模型更准确、代码行数更少。这一目标已经实现,Synopsys 公司在 Design Compiler (DC) 和 Synplify-Pro 中出色地实现了 SystemVerilog。本文详细分析了用于 ASIC 和 FPGA 设计的 SystemVerilog 可综合子集,并介绍了使用这些构造的优势、 并介绍了与传统 Verilog 相比使用这些构造的优势。读者将读者将从本文中获得新的 RTL 建模技巧,这些技巧确实能以更少的代码行数进行建模,同时还能以更少的代码行数进行建模。同时还能减少潜在的设计错误,实现较高的综合结果质量 (QoR)。目标受众 参与 RTL 设计和综合的工程师,针对 ASIC 和 FPGA实现。

2024-09-11

快速仿真和数模混合仿真软件.ppt

浙江大学数模混合仿真课件,深度讲解了Cadence的Ultrasim、Spectre、Spectre-Verilog仿真工具的用法,非常好的数模混合仿真教材。目前市面上相关资料特别少,值得推荐。

2020-07-12

集成电路设计CAD-EDA工具实用教程1-Spectre-Verilog数模混合仿真.ppt

本文详细讲解了Cadence的Spectre–Verilog混合信号仿真步骤,可作为新人教案,也可作为工程技术人员的参考。目前市面上相关资料特别少,值得推荐。

2020-07-12

AXI4 Spec中文版及常见问题解答

AXI4 Spec中文版及常见问题解答,涵盖了面试常见的一些问题及系统总线的研究。

2023-09-08

PCIe Spec中文版,PCIe系统体系结构导读

PCIe Spec中文版,PCIe系统体系结构导读,经典的PCIe入门资料,中文版

2023-09-08

uvm-testbench-gen

提供一个通过GUI方式自动生成UVM环境的工具,uvm_testbench_gen。工具来源于DVCon US 2022的一篇论文:Novel GUI Based UVM Test Bench Template Builder。uvm_testbench_gen使用python的tkinter编写,其主要目的在于提升UVM环境搭建效率,缩减前期验证环境准备时间。使用方法参见博文:https://xueying.blog.csdn.net/article/details/130598532?spm=1001.2014.3001.5502

2023-05-10

Verdi and Siloti Command Reference

Verdi用户手册最新版,基于Version U-2023.03, March 2023.Verdi主要用于生成fsdb模型,同VCS使用的vcd文件相比,verdi使用的fsdb相当于vcd文件经过霍夫编码压缩之后的精简版,可用于查看fsdb波形并追踪RTL代码。 虽说verdi、modelsim都是用来调试波形, modelsim与verdi相比,最大的缺点是波形不会全dump,wave窗口拉不全的话需要重新跑,而verdi边运行边查看。具体做法是,在使用tcl指令,在运行仿真时,设置仿真时间,每次run完毕之后,在nWave窗口中file——>自动加载(shift+L快捷键),异常方便!

2023-04-11

开源AMBA AHB VIP

当今的SoC芯片,普遍包含大量的工业标准接口同外围设备相连。 在验证设计过程中,这些接口被用于和测试testbench相连接。这些沟通桥梁,被称为 Verification IP (VIP) 的模块实现。Verification IP (VIP) 是一种特殊的IP Core。它将一个接口的BFM 和 Test Harness features 结合在一起。VIP在芯片验证中的应用场景众多,不管是在IP Level还是在SoC Level随处可见它的身影。拥有VIP,无惧芯片设计挑战。而在当今的芯片领域,用的最多的可能还是标准总线APB/AHB/AXI等。提到VIP,估计大家最先想到的就是Cadence和Synopsys了。没错,他们是目前最大的两家VIP提供商。不过,那是商业VIP。商业VIP虽好,但是贵呀!很多小公司的预算有限,很多时候都舍不得买,而我们个人想学习用那就更是买不起了。不过好消息来了,我找到一些高质量的开源AMBA VIP,今天就分享给大家,供大家学习研究那是妥妥的没问题,有的甚至都已经成功的被用到一些公司的验证环境了。

2022-12-09

开源AMBA APB VIP

当今的SoC芯片,普遍包含大量的工业标准接口同外围设备相连。 在验证设计过程中,这些接口被用于和测试testbench相连接。这些沟通桥梁,被称为 Verification IP (VIP) 的模块实现。Verification IP (VIP) 是一种特殊的IP Core。它将一个接口的BFM 和 Test Harness features 结合在一起。VIP在芯片验证中的应用场景众多,不管是在IP Level还是在SoC Level随处可见它的身影。拥有VIP,无惧芯片设计挑战。而在当今的芯片领域,用的最多的可能还是标准总线APB/AHB/AXI等。提到VIP,估计大家最先想到的就是Cadence和Synopsys了。没错,他们是目前最大的两家VIP提供商。不过,那是商业VIP。商业VIP虽好,但是贵呀!很多小公司的预算有限,很多时候都舍不得买,而我们个人想学习用那就更是买不起了。不过好消息来了,我找到一些高质量的开源AMBA VIP,今天就分享给大家,供大家学习研究那是妥妥的没问题,有的甚至都已经成功的被用到一些公司的验证环境了。

2022-12-09

开源AMBA AXI4 VIP

当今的SoC芯片,普遍包含大量的工业标准接口同外围设备相连。 在验证设计过程中,这些接口被用于和测试testbench相连接。这些沟通桥梁,被称为 Verification IP (VIP) 的模块实现。Verification IP (VIP) 是一种特殊的IP Core。它将一个接口的BFM 和 Test Harness features 结合在一起。VIP在芯片验证中的应用场景众多,不管是在IP Level还是在SoC Level随处可见它的身影。拥有VIP,无惧芯片设计挑战。而在当今的芯片领域,用的最多的可能还是标准总线APB/AHB/AXI等。提到VIP,估计大家最先想到的就是Cadence和Synopsys了。没错,他们是目前最大的两家VIP提供商。不过,那是商业VIP。商业VIP虽好,但是贵呀!很多小公司的预算有限,很多时候都舍不得买,而我们个人想学习用那就更是买不起了。不过好消息来了,我找到一些高质量的开源AMBA VIP,今天就分享给大家,供大家学习研究那是妥妥的没问题,有的甚至都已经成功的被用到一些公司的验证环境了。

2022-12-09

湖南大学量子力学课件,量子力学入门级教案

湖南大学量子力学课件,量子力学入门级教案。

2022-12-09

VCS用户手册,对应版本号为:R-2020.12-SP2,发布于June 2021

VCS用户手册,对应版本号为:R-2020.12-SP2,发布于June 2021

2022-11-04

使用VCS的门级仿真和最佳实践(Gate-Level Simulation with VCS and Best Practic)

使用VCS的门级仿真和最佳实践(Gate-Level Simulation with VCS and Best Practic)。

2022-10-08

UVMC应用案例代码分享

尽管 UVM 为构建参考模型提供了高级抽象,但 SystemC 在用于设计和验证的高级模型方面具有传统。 为了允许在 UVM 测试平台中重用使用 SystemC 编写的参考模型,UVMC 在 SystemC 和 SystemVerilog UVM 模型和组件之间提供 TLM1 和 TLM2 连接。在此代码包中将提供一个完整的UVMC应用案例,供大家参考。

2022-09-15

SystemC User’s Guide(SystemC使用手册)

本文档还没有描述新的SystemC 2.0特定的语言特性。请参阅SystemC 2.0功能规范文档。SystemC是一个c++类库和一种方法,您可以使用它来有效地创建软件算法、硬件架构和SoC(芯片上的系统)接口和系统级设计的周期精确模型。您可以使用SystemC和标准c++开发工具来创建系统级模型,快速模拟以验证和优化设计,探索各种算法,并为硬件和软件开发团队提供系统的可执行规范。可执行规范本质上是一个c++程序,它在执行时表现出与系统相同的行为。

2022-07-21

CMake官⽅⽂档CMake Tutorial

本⽂是CMake官⽅⽂档CMake Tutorial (http://www.cmake.org/cmake/help/cmake_tutorial.html) 的翻译。通过⼀个样例⼯程从简 单到复杂的完善过程,⽂档介绍了 CMake 主要模块( cmake , ctest , cpack )的功能和使⽤环境;从中可以⼀窥 cmake 的⼤体形貌。 正⽂如下:本⽂下述内容是⼀个⼿把⼿的使⽤指南;它涵盖了 CMake 需要解决的公共构建系统的⼀些问题。这些主题中的许多主题已经在 `Mastering CMake ⼀书中以单独的章节被介绍过,但是通过⼀个样例⼯程看⼀看它们如何⼯作也是⾮常有帮助的。本指南可以在 CMake 源码树的Tests/Tutorial路径下找到。每⼀步都有它⾃⼰的⼦路径,其中包含该步骤的⼀个完整的指南。

2022-07-21

Synopsys_SVA_OVL检查库应用指南

验证与设计不同,尤其是初学者,验证会成为一盘散沙——无规可循。然而 为了能够实现验证平台的重用,需要标准的验证语言和标准的验证库。这样一来 在验证的过程中只需要调用验证库中的库单元就可以实现验证的重用。所以为了 解决验证的混乱局面,特此依据 Synopsys 的 SVL 库进行翻译,该库与 OVL 的 使用方式相同,每次的检查对象仅需要例化对应的库单元就可以实现。 其原文来自于 Synopsys 的 SystemVerilog 检查库的讲解文档,翻译难免有错 和生硬的地方,所以请参照相应文件进行阅读。 最后将 Serikanth Vijayaraghavan 和 Meyyappan Ramanathan 编著的《A Practical Guide for SystemVerilog Assertions》的第一章翻译放置在附录 A 中,以 供阅者参考。

2022-07-07

SystemVerilog Assertion语法总结及应用图例

SystemVerilog Assertion语法总结及应用图例

2022-04-13

500个Excel函数模板.zip

这个压缩包中包含了500个常用的Excel模板,含有常用函数的实例、常见图表的绘制,以及数据透视表的做法,非常适合职场人士学习,提供工作效率。

2020-07-12

Python3源代码.rar

次源码包提供了Python3相关的100余个例子,从基础的正则表达式到文件解析,再到网络爬虫。并且带有详尽的注释,非常适合初学者,强烈推荐。

2020-07-12

LDO低压差线性稳压器核心电路的设计.pdf

本文主要设计的是一个LDO低压差线性稳压器,工作在3V~5V的电压下,输出 电压为2.5V,能够驱动的最小电阻为2.5f2,最大的负载电流为1A。本设计的核心电路是由基准电压源模块,误差放大器模块,反馈模块,PMOS调整管四个模块组成

2020-05-02

可测试性设计与ATPG.ppt

非常详细的DFT入门资料,详细介绍了常见的DFT模型,以及Scan mode测试技术。最后介绍了ATPG Flow。

2020-04-30

verilog数据类型及应用.ppt

非常详细的Verilog数据类型讲解,适合作为新人培训教材,也可作为工程技术人员的查询手册。值得推荐。

2020-04-30

2007全国大学生电子设计竞赛获奖作品汇编

2007全国大学生电子设计竞赛获奖作品汇编,非常詳細的資料,用於電子設計大賽備戰,以及電路設計學習。亦可作為工程設計人員的參考。

2013-09-15

pll-for-high-frequency-receivers-and-transmitters-3_cn.pdf

本文将考察PLL频率合成器的主要构建模块。我们还将比较整数N和小数N架构。最后将总结市场上现有的VCO,同时列出ADI的现有频率合成器系列。

2020-05-02

pll-for-high-frequency-receivers-and-transmitters-2.pdf

本文侧重于详细考察与PLL相关的两个关 键技术规格:相位噪声和参考杂散。导致相位噪声和参考杂 散的原因是什么,如何将其影响降至最低?讨论将涉及测量 技术以及这些误差对系统性能的影响。我们还将考虑输出漏 电流,举例说明其在开环调制方案中的重要意义。

2020-05-02

空空如也

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

TA关注的人

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