- 博客(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学习记录分享
2026-07-28
数字IC测试机架构与测试理论指导书
2025-02-13
Linux命令详解与实战
2025-02-13
【数字电路设计】数字电路整理与优化培训手册:从基础操作到高级功能详解. 文档概述
2025-06-06
硬件验证中的高效Bug发现与定位:关键技能、最佳实践及人员协作策略
2025-02-13
Cadence数字仿真工具Xcelium(xrun)操作指南与高级功能应用
2025-02-13
Vim编辑器用户手册:深入理解和高效应用技巧(文本编辑、程序开发、文件管理)
2025-02-13
IC数字电路设计基础教程PDF:初学者指南,涵盖Verilog HDL与Linux基础命令
2025-02-12
verilog教程.pdf
2020-06-09
Memory bist测试方法.docx
2020-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅