自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(389)
  • 资源 (3)
  • 收藏
  • 关注

原创 1.【SVA】什么是SVA?

SystemVerilog Assertions(SVA)是硬件验证的核心工具,支持即时、序列和属性断言,用于在仿真中自动检查设计行为是否符合规范。其特性包括assert/assume、时序序列(如##1)、属性关系(如|->)及覆盖点,有效提升验证效率与覆盖率。SVA可提前发现错误、加速调试、增强代码可读性,是保障设计正确性的重要手段。

2026-09-20 15:59:18 201

原创 5.2 uvm_config_db具体是如何使用的呢?

是UVM全局共享的参数仓库/公共储物柜。跨组件传递数据、虚拟接口、配置参数、寄存器配置、标志位。难点:driver、monitor、agent、env、test 分散在UVM组件树上,互相不能直接访问句柄;config‑db 相当于全局快递柜,A组件set()存放,B组件get()取出。virtual interface(虚拟接口,你现在代码存取的就是它,最常用)int、bit、logic、枚举uvm_object、transaction、配置类uvm_reg 寄存器模型句柄。

2026-08-10 10:09:38 441

原创 5.1 uvm‑component 的层级结构管理? new (name,parent) 参数

UVM组件构造与层级搭建摘要 UVM组件通过new(name,parent)构造参数建立层级关系。uvm_object只需name参数,而uvm_component需要name和parent参数,用于构建组件树结构。parent参数使组件能自动生成层级路径、支持phase递归执行、config_db配置查找等功能。创建子组件时需传入this作为parent参数(如type_id::create("name",this)),最顶层test的parent为null。标准UVM架构从test→env→agent→

2026-08-07 17:39:06 254

原创 5. 学习UVM中的pure方法?

这篇文章详细介绍了SystemVerilog和UVM中的pure关键字以及UVM-Phase回调函数: pure关键字解析: 只能用于抽象类(virtual class)中的纯虚方法 三大规则:父类不能写实现、子类必须重写、抽象类不能实例化 与普通virtual方法的区别在于强制子类实现 常见于UVM框架如uvm_test的run_phase()和uvm_driver的main_phase UVM-Phase完整清单: 按执行顺序列出9个主phase和12个run_phase子阶段 只有run_phase是

2026-08-07 11:20:10 393

原创 13.【学习】如何理解SV类的继承和多态呢?

SystemVerilog中的继承与多态机制是验证工程师必备的核心技能。继承通过extends实现代码复用,子类自动获得父类属性和方法;多态通过virtual方法实现动态绑定,使父类句柄能调用不同子类的实现。关键点包括: 继承时子类构造函数需先调用super.new() 多态必须满足:继承关系、方法重写、父类句柄指向子类对象 virtual声明是多态的基础,否则为静态绑定 访问控制:protected允许子类访问,private仅限父类 典型应用场景包括事务模型扩展(如UART/SPI事务继承基础事务)和驱

2026-07-28 10:19:19 369

原创 11.带锁存时钟门的CGC为什么出现了X态的传播?

本文分析了锁存型时钟门(PREICG)电路上电时输出X态的根本原因。该电路由低电平透明锁存器和与门组成,其核心在于:上电时若时钟CK=1,锁存器直接进入保持模式,使能信号EN的复位无法刷新锁存器内部的原生X态,导致输出时钟持续为X并传播至下游寄存器;而CK=0时锁存器透明,EN复位可及时冲刷X态。Verilog库严格建模了这一硬件行为,当CK为高时EN变化会引发时序违例。设计时必须确保上电初期CK保持低电平,使EN复位能有效清除锁存器的不确定状态。

2026-07-28 10:17:10 526

原创 2.【DFT】两周期原理和时钟陷阱

摘要: 扫描DFT技术的核心在于“两周期”(移位周期和捕获周期)和“时钟陷阱”。移位周期(SE=1)通过串行移入/移出测试数据,耗时N个时钟周期;捕获周期(SE=0)仅需1个时钟脉冲锁存组合逻辑结果。关键陷阱在于功能模式下某些路径的时钟相位可能与扫描模式不同(如反相时钟被强制同步),导致捕获周期无法覆盖真实时序路径,需手动补测。例如,若FF1(上升沿)到FF2(下降沿)的路径在扫描测试中被强制同步,则无法检测其实际功能时序,需通过功能模式下的特定测试序列验证。DFT工程师需特别注意此类路径,避免流片后ATE

2026-07-28 09:51:57 378

原创 12.【学习】UART 参考模型

本文介绍了一个全双工UART参考模型和自动比对Scoreboard的实现方案。该模型支持所有标准UART配置(5-8位数据位、奇/偶/无校验、1/1.5/2位停止位),具备错误检测与注入功能,并与现有UART验证组件完全兼容。 参考模型核心特性: 同时实现UART接收器(解析DUT发送的TX信号)和发送器(生成RX信号给DUT) 采用状态机设计,包含IDLE、START、DATA、PARITY和STOP等状态 支持动态配置波特率分频、数据位、校验类型和停止位参数 内置毛刺检测和错误校验功能 通过分析端口将预

2026-06-01 10:33:18 273

原创 11.【学习】SPI 完整参考模型与Scoreboard

SPI验证环境参考模型与Scoreboard 本文介绍了一个完整的SPI从设备验证环境,包含参考模型和自动比对Scoreboard。参考模型模拟标准SPI从设备行为,支持四种SPI模式、全双工数据传输和任意数据长度。它通过分析端口发送预期事务给Scoreboard。 Scoreboard接收来自Monitor的实际事务和参考模型的预期事务,进行自动比对并统计结果。主要功能包括: 处理片选信号变化,开始/结束传输 根据SPI模式(CPOL/CPHA)正确采样MOSI和驱动MISO 记录传输数据并生成预期结果

2026-05-28 11:08:20 598

原创 10.【学习】SPI & UART 验证环境与测试用例

SPI & UART UVM验证环境摘要 该验证环境提供了一个完整的SPI和UART接口验证解决方案,包含配置类、顶层环境、基础测试类和5个实用测试用例。配置类(spi_uart_config)统一管理SPI/UART参数,支持动态修改。顶层环境(spi_uart_env)集成双agent架构,支持分析端口连接和参数配置。基础测试类(base_test)作为所有测试用例的基类,提供环境创建和配置功能。 测试用例集包含: 冒烟测试:验证基本功能 SPI模式测试:覆盖所有4种SPI工作模式 UART波特率测试:

2026-05-28 11:07:33 541 2

原创 9.【学习】SPI & UART验证组件

本文提供了SPI和UART接口的完整UVM验证组件模板,包含接口定义、Driver、Monitor、Agent和Sequencer实现。摘要如下: SPI接口组件包含: 参数化接口定义(interface)支持多种数据宽度和时钟频率 完整Driver实现支持4种SPI模式(CPOL/CPHA)和可配置时钟分频 Monitor实现自动检测片选信号并采集MOSI/MISO数据 支持字节间延时和片选信号延时配置 关键特性: 采用SystemVerilog接口封装时钟块和modport Driver实现精确的SPI

2026-05-27 09:50:08 553

原创 8.【学习】工业级详细接口约束&覆盖率

I2C接口验证模板摘要 本文提供了完整的I2C接口验证模板,包含协议关键要点、事务类定义、约束条件和覆盖率收集。模板支持标准模式(100kbps)、快速模式(400kbps)和高速模式(3.4Mbps),覆盖7位/10位地址、读写操作、错误注入等场景。事务类包含详细的协议约束,包括地址格式、数据长度、时序参数等强制要求,以及错误注入概率控制(如起始/停止条件错误、ACK错误等概率分布)。覆盖率收集器设计了全面的功能覆盖点和交叉覆盖,包括基本功能覆盖(地址模式、速度模式、数据长度)、错误场景覆盖和关键组合覆盖

2026-05-27 09:49:03 299

原创 7.【学习】常用IC接口完整约束&覆盖率

本文提供了工业界最常用的5种IC接口的UVM验证模板,包含完整的事务类定义和覆盖率收集器实现。摘要重点介绍APB和AXI4-Lite两种接口: APB接口模板 事务类包含地址/数据/方向等核心字段 内置协议约束(地址对齐、延时范围等) 支持错误注入和权重分布控制 覆盖率收集器监控读写操作、地址分布、数据模式等 AXI4-Lite接口模板 支持读写操作和字节选通 包含通道延时控制 严格的协议约束(地址对齐、合法wstrb等) 覆盖率关注地址访问模式、字节选通组合等 这些模板可直接用于实际项目,帮助快速构建验证

2026-05-26 15:29:34 105

原创 6.【学习】常用约束&覆盖率写法

本文总结了IC验证中最常用的约束和覆盖率写法模板,适用于90%以上的验证场景。约束部分包括基本取值约束、条件与关系约束、数组约束、错误注入约束以及继承约束等实用模板。覆盖率部分提供了基本coverpoint和交叉覆盖率的写法示例,包含自动/手动bin定义、忽略bin和非法bin设置等关键技巧。所有模板均遵循UVM编码规范,兼容主流仿真器,可直接复制修改使用。这些模板经过实际项目验证,能显著提高验证代码开发效率。

2026-05-26 15:27:34 315

原创 5.【学习】约束随机与功能覆盖率学习步骤?

本文介绍了SystemVerilog验证中的三个核心概念:随机变量类型(rand/randc)、约束条件(constraint)和功能覆盖率(covergroup/coverpoint)。rand用于普通随机变量,允许重复值;randc用于循环随机变量,确保遍历所有可能值。约束条件用于限制随机变量的合法取值范围和相互关系。功能覆盖率机制通过covergroup和coverpoint收集数据,衡量验证充分性,其中bins用于统计特定取值是否被覆盖。这些机制共同构成了验证环境的基础,确保生成的激励既随机又有效,

2026-05-25 11:25:13 704

原创 4.【学习】面向对象编程核心概念学习步骤?

面向对象编程核心概念全解 本文通过汽车制造和芯片验证双类比,系统讲解了面向对象编程的四大核心概念: 类(Class):作为对象模板,类比汽车设计图纸。包含属性(数据)和方法(行为),用于封装相关数据和操作。在IC验证中用于定义事务、驱动等验证组件。 继承(Inheritance):子类复用父类特性并扩展新功能,类比SUV继承基础车型。遵循"is-a"原则,避免代码重复,是UVM框架的核心机制。 虚方法(Virtual Method):可被子类重写的方法,类比汽车的可定制接口。使用virtual关键字声明,是

2026-05-25 10:50:20 735

原创 1.【DFT】DFT类型

摘要:本文系统介绍了数字芯片测试中的扫描DFT技术,重点讲解了扫描插入的实现方法。首先概述了四种DFT技术(扫描插入、存储器BIST、逻辑BIST和边界扫描),指出扫描插入是Synopsys工具链支持最完善的核心技术。详细解析了扫描插入原理、关键周期(移位/捕获)、RTL早期检查方法,以及扫描链配置与排序策略。通过通俗的"检修门"类比解释扫描DFT思想,并以8位计数器为例,完整演示了从DFT规划、脚本编写到问题排查的实操流程,帮助读者掌握扫描DFT的实际应用技巧。

2026-05-22 14:53:01 654

原创 6.【Python】Python3 数字(Number)

Python数字类型与运算指南 本文系统介绍了Python中的数字处理核心知识,主要内容包括: 数字类型体系 三种基本数值类型:整数(int)、浮点数(float)、复数(complex) 布尔类型(bool)作为int子类,True=1/False=0 不同进制表示法:十六进制(0x)、八进制(0o)、二进制(0b) 类型转换与运算 显式转换函数:int()/float()/complex() 基础运算符:加减乘除(/返回浮点数)、整除(//)、取余(%)、幂(**) 混合运算规则:整数自动提升为浮点数

2026-05-18 10:19:36 632

原创 5.【Python】Python3 运算符

| **(幂) | | | +x, -x, ~x(正负、按位取反) | | | *, @, /, //, % | | | +, - | | | <<, >> | | | & | | | ^ | | | \| | | | in, not in, is, is not, <, <=, >, >=, !=, == | | | not x | | | and | | 最低 | or | 示例: a = 20 b = 10 c = 15 d = 5 e = (a + b) * c / d # (30)*15/5 →

2026-05-18 10:11:34 528

原创 4.【Python】Python3 注释

Python注释与文档字符串使用指南 本文详细介绍了Python中注释和文档字符串(Docstring)的使用方法。主要内容包括: 注释类型: 单行注释:以#开头 多行注释:使用三引号'''或"""包围(注意不能嵌套) 文档字符串(Docstring): 用于函数、类和模块的正式文档 可通过__doc__属性或help()函数访问 支持多行格式,包含参数和返回值说明 实际应用: 注释是代码可读性和团队协作的关键 Docstring应包含API的完整说明 示例展示了芯片验证脚本中的注释实践 注意事项: 多行注

2026-05-15 14:31:10 405

原创 3.【Python】Python3 数据类型转换

Python数据类型转换分为隐式转换(自动完成)和显式转换(手动调用函数)。隐式转换遵循精度顺序(bool<int<float<complex),但不会自动转换字符串。显式转换通过int()、float()、str()等函数实现,需注意转换可行性(如int("hello")会报错)。在芯片验证中,常用类型转换处理文本配置文件,如将"0xFF"转为整数255。关键点:1)掌握常用转换函数;2)注意转换失败处理;3)整数转换是截断而非四舍五入;4)空值转换规则。实际应用示例展示了如何智能解析配置文件并自动转换数

2026-05-15 14:26:57 458

原创 2.【Python】Python3 基本数据类型

本文系统梳理了Python的基本数据类型及其核心特性。首先介绍了变量赋值的灵活性,强调Python采用"贴标签"式的动态类型机制。随后详细解析了8种标准数据类型:不可变的数字、字符串、元组和布尔类型;可变列表、集合、字典以及字节串类型。重点对比了列表与元组的应用场景、集合的去重特性,并通过容器类比解释了可变与不可变类型的本质区别。文章还涵盖了类型转换函数、多变量赋值、切片操作等实用技巧,最后通过费曼学习法形象化阐述了变量赋值机制和数据类型的核心设计思想,为Python初学者提供了清晰的数据类型认知框架。

2026-05-15 14:17:03 571

原创 1.【Python】Python3 基础语法

本文系统梳理了Python基础语法要点,包括编码规则、标识符命名规范、保留关键字、注释方式、缩进规则等核心内容。重点讲解了字符串操作、多行语句写法、数字类型、输入输出等实用技巧,并提供了代码示例和常见错误分析。文章采用费曼学习法,强调通过实践掌握Python的缩进规则、命名规范和模块导入方式,建议读者通过写代码、故意犯错和项目实践来巩固知识。特别提醒注意标识符合法性、关键字冲突和字符串不可变性等易错点,帮助初学者快速掌握Python编程基础。

2026-05-15 13:50:08 1286

原创 32.【Verilog】Verilog 串行 FIR 滤波器设计

本文设计了一个串行FIR低通滤波器,采用Verilog实现。该滤波器针对50MHz采样频率下的7.5MHz+250kHz混合信号,通过16抽头结构滤除7.5MHz成分。设计特点包括:1)利用系数对称性将16次乘法简化为8次;2)采用400MHz时钟实现串行处理;3)包含输入移位寄存器、对称相加、复用乘法器和累加器等关键模块。测试结果表明,该设计能有效滤除高频分量,输出250kHz信号。摘要重点突出了串行FIR的结构优化和时序控制机制。

2026-05-14 10:37:35 555

原创 31.【Verilog】Verilog 并行 FIR 滤波器设计

本文设计了一个15阶并行FIR滤波器,用于滤除7.5MHz高频信号并保留250kHz低频信号。该设计采用直接型结构,利用系数对称性将16个抽头简化为8个乘法器,通过移位寄存器、加法树和流水线乘法器实现高效运算。系统工作在50MHz采样频率下,包含数据缓冲、对称加法、并行乘法、累加输出四个主要模块,最终输出29位滤波结果。设计提供了两种实现方案:时序优化的流水线结构和简化的直接乘法结构,并通过Verilog代码展示了具体实现细节。

2026-05-14 10:19:52 558

原创 30.【Verilog】Verilog 除法器设计

本文介绍了一种基于流水线设计的Verilog定点除法器实现方法。该设计采用类似十进制竖式除法的二进制运算原理,通过多级运算单元串联完成除法操作。核心模块包括单步运算单元divider_cell和顶层流水线控制器divider_man。单步单元完成一位商的判断和余数计算,顶层模块通过generate语句例化多级单元形成流水线结构。设计特点包括:1) 采用被除数位宽决定流水线级数;2) 每级单元比较部分被除数与除数大小决定商位;3) 通过余数与下一位拼接实现数据传递。该结构可实现N位被除数除以M位除法的硬件加速

2026-05-13 10:44:57 983

原创 29.【Verilog】Verilog 流水线

本文介绍了Verilog流水线乘法器的设计与实现。首先分析了流水线的基本思想,通过将计算过程分解为多个阶段并行处理,显著提高了数据吞吐率。文章对比了非流水线乘法器的低效实现方式,该设计需要M个时钟周期完成一次乘法运算。通过洗衣店流水线作业的类比,形象说明了流水线技术的优势。最后给出了非流水线乘法器的Verilog代码实现和测试结果,验证了其功能正确性但效率较低的特点。这为后续实现高效流水线乘法器奠定了基础。

2026-05-13 10:44:20 557

原创 28.【Verilog】Verilog 避免 Latch

Verilog设计中如何避免意外生成锁存器(Latch) 锁存器是电平敏感的存储单元,在FPGA设计中会带来毛刺、资源消耗和时序分析困难等问题。本文总结了5种常见产生锁存器的情况及解决方法: 组合逻辑中if语句缺少else分支时,未赋值变量会保持原值而产生锁存器。解决方法是为所有条件分支赋值或设置默认值。 case语句选项不全且无default时会产生锁存器。需要补全所有选项或添加default分支。 多个输出变量在分支中未完全赋值时,未赋值的变量会产生锁存器。应确保所有输出变量在所有分支都有赋值。 组合逻

2026-05-12 09:36:13 767

原创 27.【Verilog】Verilog 竞争与冒险

Verilog竞争与冒险问题解析与解决方法 摘要: 本文系统分析了Verilog中的竞争与冒险问题。竞争指信号通过不同路径到达同一点时的时间差,冒险则是由此产生的瞬时错误输出。文章介绍了两种判断方法:代数法通过逻辑表达式化简识别风险,卡诺图法则通过观察相切卡诺圈发现潜在问题。针对竞争冒险,提出了四种解决方案:增加滤波电容、修改逻辑增加冗余项、使用时钟同步电路以及采用格雷码计数器。特别强调了Verilog编码规范的重要性,包括时序电路使用非阻塞赋值、组合逻辑使用阻塞赋值等关键原则。通过具体示例展示了如何通过打

2026-05-12 09:31:53 861

原创 26.【Verilog】Verilog 其他系统任务

本文介绍了Verilog中常用的系统任务及其应用。主要内容包括:1)仿真控制任务$finish和$stop的区别与用法;2)时间格式控制任务$printtimescale和$timeformat的设置方法;3)获取仿真时间的三种方式及其精度差异;4)命令行参数传递任务$test$plusargs和$value$plusargs的灵活应用。通过一个FIFO测试示例,展示了如何利用命令行参数动态配置测试模式、数据量和随机种子,实现不修改代码即可调整仿真行为的功能。这些系统任务能有效提升testbench的调试效

2026-05-11 10:59:26 555

原创 25.【Verilog】Verilog 实数整数转换

Verilog实数与整数转换方法及应用摘要 Verilog中实数与整数的转换涉及二进制表示和IEEE-754浮点标准。关键点包括: 小数转二进制采用"乘2取整法",如0.3125转为0101; IEEE-754浮点数由符号位、指数和尾数组成,32位单精度和64位双精度是常用格式; Verilog提供四类转换系统任务: $rtoi:实数截断为整数 $itor:整数转为实数 $realtobits:实数转64位向量 $bitstoreal:64位向量转实数 应用场景包括DSP算法验证、硬件浮

2026-05-11 10:58:38 551

原创 24.【Verilog】Verilog 随机数及概率分布

random是帽子里的白鸽(均匀飞出);而各种$dist_xxx则是表演“鸽子按特定队形飞出”——有的集中、有的分散。验证工程师要针对不同场景挑选合适的分布,让激励更贴近真实世界,从而发现隐藏的缺陷。用$random加得到均匀随机数。用产生带噪声的模拟信号。用模拟随机事件发生率。用模拟随机间隔。善用文件输出 + 外部统计工具(Python/MATLAB)验证分布是否正确。最后,种子管理很重要:复现问题用固定种子,覆盖更多路径用变动种子。

2026-05-09 10:59:53 450

原创 23.【Verilog】Verilog 文件操作

Verilog提供了丰富的文件操作系统任务,主要包括文件打开/关闭、读写操作、字符串处理、定位和存储器加载等功能。文件打开使用$fopen指定读写模式,关闭用$fclose。写入任务如$fdisplay和$fwrite支持格式化输出到文件,而$swrite和$sformat用于字符串处理。读取操作包括字符级($fgetc)、行级($fgets)和格式化读取($fscanf)。文件定位通过$fseek和$ftell实现,存储器加载使用$readmemh/$readmemb。使用时需注意数据类型匹配和错误处理,

2026-05-09 10:41:49 421

原创 22.【Verilog】 Verilog 显示任务

Verilog提供了四种主要的显示任务用于调试:$display、$write、$strobe和$monitor。$display是最常用的打印任务,支持格式化输出并自动换行;$write功能相同但不自动换行。$strobe会在当前仿真时间步的最后执行,确保显示非阻塞赋值后的最终结果。$monitor能自动监测变量变化并打印。这些任务各有特点:$display适合即时调试,$strobe用于查看稳定值,$monitor可长期跟踪信号变化。正确使用这些显示任务能有效提高Verilog调试效率。

2026-05-09 10:34:18 425

原创 21.【Verilog】Verilog RTL 级低功耗设计(2)

Verilog RTL级低功耗设计中的门控时钟技术能显著降低功耗,主要方法包括:1)直接与逻辑实现简单但易产生毛刺;2)加入锁存器消除毛刺,通过时钟下降沿锁存使能信号;3)使用标准单元库提供的专用门控时钟单元最安全可靠。门控时钟可通过手动控制、模块自动检测或综合工具自动插入三种方式实现,能有效减少时钟树和寄存器功耗,最高可节省30%的功耗。设计时应优先选择带锁存器的专用门控单元以确保时序安全。

2026-05-09 10:27:39 630

原创 20.【Verilog】Verilog RTL 级低功耗设计(1)

本文探讨了Verilog RTL级低功耗设计方法,重点分析了并行处理技术在功耗优化中的应用。通过对比两种乘法器设计方案:1个高速乘法器(200MHz)和2个低速并行乘法器(100MHz),结果表明并行设计在保持相同功能的前提下,通过降低工作频率可显著减少动态功耗(动态功耗与频率成正比)。测试验证显示两种方案输出结果一致,但并行版本频率减半,功耗降低20%-50%,体现了RTL级设计在系统功耗优化中的关键作用。

2026-05-09 10:26:15 555

原创 19.【Verilog】Verilog 系统级低功耗设计

本文系统介绍了Verilog系统级低功耗设计方法。重点阐述了多电压技术、时钟分配优化、软硬件划分等核心策略,通过不同电压域划分、动态频率调整和低功耗IP选择,可降低50%以上功耗。文章采用智能大楼能源管理类比,生动解释了系统架构层面的功耗优化原理,并提供了多电压域验证示例,强调电平转换器、时钟切换等关键验证点。这些方法需要在芯片设计早期规划,由系统架构师主导实施,对整体功耗控制具有决定性作用。

2026-05-09 10:23:58 462

原创 18.【Verilog】Verilog 低功耗简介

Verilog 低功耗设计基础 数字芯片功耗主要分为动态功耗和静态功耗。动态功耗由信号翻转时对负载电容充放电(开关功耗)和晶体管短暂导通(短路功耗)引起,计算公式为 ( P_{sw} = \frac{1}{2} C_{load} V_{DD}^2 \cdot T_r ) 和 ( P_{sc} = V_{DD} \cdot Q \cdot T_r )。静态功耗主要由漏电流导致,包括亚阈值漏电和栅极漏电,公式为 ( P_{static} = V_{DD} \times I_{leakage} )。低功耗设计可通

2026-05-08 11:11:27 610

原创 17.【Verilog】Verilog 时钟切换

Verilog时钟切换的安全实现 本文介绍了芯片时钟切换的安全设计方案。直接使用组合逻辑切换时钟会产生毛刺风险,可能导致下游触发器误触发。安全的时钟切换方案采用"先关后开"原则,核心思想是在两个时钟都为低电平时进行切换。具体实现包含以下关键点: 每个时钟通道采用下降沿触发的同步寄存器,将选择信号与另一通道的反馈信号做"与"操作,确保本通道只在对方关闭后才允许打开 使用三级移位寄存器处理选择信号,消除亚稳态风险 在时钟下降沿用两级寄存器缓存信号,作为门控使能 最后将两路

2026-05-08 11:09:28 732

原创 16.【Verilog】Verilog 时钟分频

本文总结了Verilog实现时钟分频的多种方法:1)偶数分频通过N/2计数翻转实现50%占空比;2)奇数分频需结合上升沿和下降沿产生的时钟,通过"或"或"与"操作实现50%占空比;3)半整数分频(如3.5倍)通过双边沿产生不均匀周期时钟再组合;4)小数分频采用差值累加算法交替不同分频比。文章通过代码示例和波形图详细说明了每种方法的实现原理,并比较了不同分频方式的特点和适用场景。

2026-05-07 15:56:51 715

HRPWM学习记录分享

内容概要:本文详细介绍了高分辨率脉冲宽度调制(HRPWM)技术的原理、架构及其在数字电源与电机控制中的应用。HRPWM通过在传统PWM基础上引入“数字+模拟”混合架构,利用32级延迟单元和自动校准机制,将PWM边沿控制精度从系统时钟周期级(如10ns)提升至百皮秒级(如195ps),显著提高了占空比、频率和相位的调节精度。文章深入剖析了HRPWM的各个子模块,包括时间单元(TU)、内部比较单元(ICU)、PWM生成器(PG)、死区单元(DU)、斩波单元(PCU)、故障单元(FU)、输出单元(OU)、高分辨率单元(HR)、触发生成单元(TGU)、消隐生成单元(BGU)以及故障处理顶层(FH),阐述了它们的功能、工作流程及协同关系,构建了一个完整的高精度PWM控制系统。; 适合人群:具备嵌入式系统、电力电子或微控制器开发基础,从事数字电源、电机驱动、新能源等领域的1-3年经验研发工程师; 使用场景及目标:①理解并设计高精度数字电源(如DC-DC、LLC变换器)以降低输出纹波;②实现多相电源的精确相位控制与电流均衡;③开发高性能电机驱动系统,实现细腻的电流与转矩控制;④掌握复杂PWM系统的故障保护与抗干扰设计; 阅读建议:此资料理论与实践紧密结合,建议读者结合具体的MCU或SoC芯片手册,通过仿真或实验平台动手配置各子模块寄存器,观察HRPWM输出波形的变化,以深刻理解高分辨率、影子寄存器、同步机制和故障处理等关键技术的实际效果。

2026-07-28

C语言教程全书(第三版)

讲述了c语言从入门到精通。很多c语言的细节。涵盖核心概念、算法、数据类型、函数与文件操作。

2025-02-13

数字IC测试机架构与测试理论指导书

内容概要:本文介绍了从1958年至现代数字集成电路(IC)测试机的发展历程,包括各个时期代表性机型的特点、硬件和软件系统的变化,深入探讨了多种专业术语的概念,如Wafer Test、Package Test等。还详细解释了测试设备的基本组成,特别是FUNCTIONAL测原理和技术参数测定的方法论。这是一份面向专业技术人员的技术指南,涵盖了许多具体测试案例与实测技术解析,有助于理解和掌握IC制造工艺中质量保障流程的关键要素。 适合人群:半导体产业相关研究人员、电子制造业从业人员以及对数字电路测试有兴趣的专业读者。 使用场景及目标:用于培训新员工了解IC测试的基础知识和服务供应商沟通时确保双方理解一致,也可为科研机构和高校院系提供教学参考资料。此外,还可以帮助企业改进现有产品的生产管理与质量检验标准。 阅读建议:由于文中涉及大量特定领域的专有名词和复杂技术细节,建议读者预先熟悉基础电气工程概念并在阅读过程中随时查阅资料补充背景信息,以增强理解深度并获得最大价值。对于初次接触本主题的人来说,

2025-02-13

Linux命令详解与实战

内容概要:本文详细介绍了Linux系统的各项基本知识和技术要点,主要包括了命令分类以及具体命令功能。文档涵盖了进程管理(如bg、fg)、系统管理(如ps、pstree)、关机与重启(shutdown等)等方面的常用命令;还涉及了文件系统操作与管理(如find、chmod、chown等)、文件查找命令(like which),并深入讲解了查看文件和内容处理的各类命令(如cat,head);除此之外还包括用户管理、磁盘操作及网络操作命令。每个命令都配以明确简洁的功能解释。此外,文档也包括了一些内置命令(例如clear)和其他实用的查询、辅助工具(man,help)。这些知识点为Linux初学者乃至有经验的操作员提供了宝贵的指南。 适用人群:对于需要掌握Linux基础命令的技术人员、运维工程师以及对Linux操作系统有兴趣的自学人员均非常适合。无论是作为教学资料还是日常工作指导手册,都有很大帮助价值。 使用场景及目标:这份详细的命令汇总可用于培训课程教材,个人技能提升学习材料或是日常工作中的备查手册。其主要目的是使读者快速了解并熟练运用多种常见的Linux Shell命令完成实际工作的需要。

2025-02-13

无刷直流电机概念和简述

是大佬分享给我看的,一直再学习,里面对于直流无刷电机的电调说的还是很好的,对于出入门者或者验证者学习了解背景还是很有帮助的。

2023-06-08

I2C-slave-设计及验证代码包

可以用来测试,希望对大家有用,iIC slave 里面的ip 核是使用Verilog 编写

2020-03-03

【数字电路设计】数字电路整理与优化培训手册:从基础操作到高级功能详解. 文档概述

内容概要:本文档《数字电路整理培训手册.pdf》详细介绍了数字电路整理的全流程,涵盖从项目基本情况确认到最终的项目优化。首先,明确了项目的基本情况,包括查看 Datasheet、电路规模、管脚和单元。接着,描述了备份工作和命名规则,强调了整理前后的操作规范。文档重点讲解了软件处理部分,涉及时钟网络、复位网络、触发器、加法器链、奇偶校验等功能的具体操作步骤。此外,还涵盖了人工处理部分,如处理软件自动化数据和零散数据的方法。最后,针对项目优化提出了添加注释、画数据流向框图、修改管脚名称、总线处理、打包模块、修改符号图和层次化检查等具体措施。 适合人群:具备一定电子电路基础知识,从事数字电路设计、整理和验证工作的工程师和技术人员。 使用场景及目标:①帮助工程师掌握数字电路整理的完整流程,提高工作效率;②指导用户进行电路整理和优化;③确保电路整理过程中的规范性和准确性,减少错误和返工。 阅读建议:此手册内容详尽,涵盖大量实际操作步骤,建议读者在阅读时结合实际项目进行练习,并根据具体需求灵活应用文中提供的各种技巧和方法。同时,建议读者在实践中不断总结经验,逐步掌握数字电路整理的核心技能。

2025-06-06

硬件验证中的高效Bug发现与定位:关键技能、最佳实践及人员协作策略

内容概要:这篇文章详述了硬件验证领域的核心技术与最佳实践经验,旨在提高验证人员发现和准确定位Bug的能力。首先明确验证的核心目的是为了确保所有Bug被发现或证明其不存在。文章探讨了如何利用最简单的手法直接有效达成20%的重要Bug发现目标,而非被华丽的验证工具和技术迷惑。其次强调了扩大验证人员视角的意义,并指出通过深层次分析设计与实现的关系来更好地定位潜在缺陷。接着,文章提倡以检视为早期发现Bug的关键手段,介绍了如何通过细致的代码审查、关键波形追踪和其他辅助手段提高检视的效果。还强调在项目执行过程中要重视团队内部人员的适配性与合作方式,并提出了一些有效的团队管理和分工建议,比如根据每个人的特点来定制工作任务,增强验证设计环节的衔接度。最后文章警示对仿真测试结果持审慎态度,提出了应对波形分析的有效方法及注意事项,如优先查看波形中的X、Z值及关键时钟信号。 适合人群:从事集成电路设计验证领域的工程师或即将步入该领域的新人,对已有一定的逻辑电路设计、验证流程的基础了解。 使用场景及目标:①优化Bug发现及定位策略;②改进团队工作方式以加快项目进度;③加强验证环节的质量控制。

2025-02-13

Cadence数字仿真工具Xcelium(xrun)操作指南与高级功能应用

内容概要:本文档详细介绍了 Cadence 数字仿真工具 Xcelium (xrun) 的基本使用方法以及多种高级特性,从基础操作到调试技巧进行全面覆盖。它讲解了 xrun 在 Linux环境下的配置检查、简单的单步仿真、多阶段分离仿真、基础仿真选项的应用,并深入探讨如 xcelium.d 目录的作用、各类波形文件的创建方法、覆盖率的收集策略,还有Gate Level Simulation(GLS)时遇到的具体参数调整,尤其针对复杂工程中常见的错误和解决途径给出了指导。 适合人群:面向硬件验证工程师、芯片设计师及任何对半导体设计自动化感兴趣的从业人员或学者,无论是初学者还是已有经验的技术人员皆能从中获益。 使用场景及目标:文档旨在为用户提供详尽的操作指引和支持资料查询的方式,使用户可以在项目规划、日常任务实施或是故障排查等过程中提高效率和准确性。 其他说明:由于涉及到大量专业术语和技术细节,在实际运用前请充分熟悉所使用的Cadence软件及其相关概念并参考官方提供的完整文档获取更多信息。此外,为了更好地理解和掌握文档内容,建议实践中配合实验来加深理解。

2025-02-13

Vim编辑器用户手册:深入理解和高效应用技巧(文本编辑、程序开发、文件管理)

内容概要:本文档是Vim编辑器的官方用户手册,旨在指导用户深入了解和掌握Vim的各种高级功能及其应用场景。文章主要分为以下几个部分:首先是入门指南,强调Vim作为一种技能而非单纯的知识型工具,在学习过程中需多加实践操作;接着详细介绍Vim的多项实用功能和技术要点,包括基本命令、模式切换、光标移动、文本编辑、文件管理与备份策略、跨文件操作、复制粘贴、寄存器的使用方法、GUI特性、宏录制播放、自动命令的应用以及面向开发者的增强特性等;然后探讨如何通过编写插件及自动化脚本拓展Vim的功能;并对常见问题提供解决方案。除此之外,本文还分享了许多提高生产力的具体实例和建议,强调了良好的习惯养成对于长期高效工作的意义。 适合人群:适合具有一定编程基础,尤其是从事文本处理、代码编写等工作的开发人员。 使用场景及目标:帮助用户更深入理解Vim的强大功能,并将其应用于日常工作中以提高工作效率;具体来说,在编写或维护C/C++、Python、Shell等多种编程语言时均可发挥巨大价值;同时也可用于撰写纯文本、Markdown文档等领域。

2025-02-13

eda工具手册:icc学习笔记

eda工具手册:icc学习笔记

2025-02-13

IC数字电路设计基础教程PDF:初学者指南,涵盖Verilog HDL与Linux基础命令

内容概要:《Ic数字电路设计初学者手册.pdf》涵盖从IC设计简介到具体数字电路设计技术和流程的相关知识点。内容主要分为数字IC设计的总体流程,Linux系统操作,数字电路基础知识,Verilog HDL语言详解等方面。手册中对数字电路系统设计方法的发展进行了回顾,并强调HDL语言对数字系统设计带来的巨大推动作用,尤其是在从系统级到底层逻辑描述等多个抽象层次进行硬件设计的能力方面表现显著。另外,该手册还详尽介绍了Verilog的三大描述方式——数据流描述、行为描述和结构化描述;阐述了Verilog语言的基本语法和各类变量的使用规范,并涉及了如何编写Testbench用于逻辑验证的具体步骤,旨在为初学者提供全面的理论和实践引导。 适合人群:具备一定电路基础知识的学生群体、工程师及其他对数字电路设计有兴趣的专业人士。 使用场景及目标:适用于正在准备涉足数字IC领域的新人,希望掌握数字电路设计的基础理论和技术方法;可用于个人自学。本手册意在帮助读者构建扎实的知识体系,培养实际动手能力和解决问题的技巧。

2025-02-12

verilog教程.pdf

关于Verilog的基础语法和一些基础案例,Verilog的快速入门,里面后面几章附带了一些比较有用的案例项目可以练习,我个人就是用这本书入门Verilog。

2020-06-09

Memory bist测试方法.docx

以固定形式扫描存储器阵列 其中包括全写0或者全写1情况,最后一步为读取所有存储单元。测试次数与存储单元容量N成正比,关系为测试次数T=4N。这种算法可以测试SAF故障,还可为施加其他测试序列做好准备。

2020-09-02

空空如也

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

TA关注的人

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