- 博客(126)
- 收藏
- 关注
原创 超详细的 Sklansky 加法器解析
摘要:Sklansky加法器是一种高性能并行进位加法器,采用完全二叉树结构实现最优延迟(O(log₂n))。相比Brent-Kung加法器,Sklansky通过层级化并行合并进位信号,消除等待节点,但代价是更大的逻辑门数量。其核心是通过(G,P)信号的分层合并规则快速计算进位,适用于对速度要求苛刻的场景(如CPU ALU)。文章详细解析了8位Sklansky加法器的5步计算过程,并与Brent-Kung加法器在结构、延迟和资源开销方面进行对比,指出两者在性能与面积间的不同取舍。
2026-01-20 10:23:36
552
原创 超详细地剖析 Brent-Kung 加法器原理
本文深入解析了Brent-Kung加法器(BK加法器)在数字集成电路中的关键作用。该加法器通过创新的"稀疏进位树"结构,将32位运算延迟控制在2.3ns(28nm工艺),逻辑门数量较标准超前进位加法器减少60%以上,实现了速度与面积的最优平衡。文章系统阐述了BK加法器的两级进位计算原理,包括局部块进位信号生成和全局稀疏连接机制,并通过8位加法器的层级化计算过程进行详细说明。性能对比显示,BK加法器在延迟、面积和功耗指标上均优于传统结构,使其成为CPU、FPGA等高性能芯片中算术运算单元的
2025-12-14 21:03:47
633
原创 Synopsys Datapath 算子:结构与实现宝典
Booth-Radix4 结构。Booth-Radix8 结构。Kogge–Stone 结构。None-Booth 结构。Sklansky 结构。mux_tree 结构。dec-sel 结构。
2025-12-09 13:51:44
205
原创 Square Root Carry Select Adder
本文详细介绍了平方根进位选择加法器(SRCSA)的设计原理与实现方法。通过不等长分组优化(每组位宽依次递增),使各组延迟趋于平衡,将总延迟从线性降低至平方根级别。文章具体阐述了16位SRCSA的分组设计(1+2+3+4+6位)、各级单元结构(双路径RCA+MUX)、级联方法及延迟分析(20级门延迟)。最后总结了SRCSA的5步实现流程:分组计算、双路径搭建、MUX选择、级联连接和结果拼接,并指出其在大位宽运算中的性能优势。
2025-12-03 08:15:00
1613
原创 Carry Select Adder
文章摘要:CSA(进位选择加法器)是RCA(串行进位加法器)和CLA(超前进位加法器)的折中方案。其核心思想是将加法器分组,每组并行计算进位为0和1两种情况的结果,再通过MUX选择正确输出。4位小组CSA由两条4位RCA路径和MUX构成,延迟为4级FA+1级MUX。大位宽CSA通过级联多个小组实现,可采用不等长分组优化时序。相比RCA减少了串行延迟,比CLA逻辑更简单,适用于8-64位中等位宽运算。
2025-11-22 16:26:04
641
原创 Carry Look Ahead Adder:让加法更快的秘密武器
摘要:进位前瞻加法器(CLA)通过逻辑展开并行计算进位信号,解决了传统波纹进位加法器(RCA)的延迟问题。CLA利用生成(G)和传播(P)信号直接预测进位,避免逐级传递,显著降低延迟(从线性到对数级)。4位CLA可扩展为分层结构处理大位宽运算,但需权衡面积和复杂度。Verilog示例展示了4位CLA的实现,其核心公式为C_{i+1}=G_i+P_iC_i。CLA是高性能加法器的关键技术,但在实际设计中常与混合结构结合优化。
2025-11-06 08:15:00
725
原创 Ripple Carry Adder 的原理与结构:最纯粹的进位传播机制
摘要: Ripple Carry Adder(RCA)是所有加法器结构的基础,通过逐级传递进位实现多位加法。其核心是由全加器级联构成,进位延迟随位数线性增长(O(n)),导致高位计算成为关键路径瓶颈。RCA结构简单、面积小,但大位宽时效率低。现代优化方法(如Carry Lookahead、Carry Skip)通过并行或预测机制缩短进位链。RCA作为“原型机”,揭示了进位依赖的本质,是理解高效加法器设计的起点。
2025-10-29 08:15:00
945
原创 加法器进位的那些事
文章摘要:本文介绍了二进制加法的进位原理及其加速方法。首先通过十进制加法类比二进制加法规则,解释每位和(Si)与进位(Ci)的计算公式。重点阐述了分组进位技术,将大位宽加法分为多组,每组独立计算生成项(Gg)和传播项(Pg),再通过组间进位传播提高运算速度。以16位加法为例,分为4组并行计算,最后组合结果,有效减少电路延迟,实现快速加法运算。这种分组进位方法在硬件设计中具有重要应用价值。
2025-10-28 20:45:14
948
原创 专栏总纲:C++ 多线程从入门到工程实战
本文系统介绍了C++多线程编程的核心概念与实践。第一部分(1-5章)讲解线程基础,包括并发与并行、线程生命周期、数据竞争与内存模型、互斥锁及条件变量。第二部分(6-13章)深入标准库高级特性,涵盖原子操作、future/promise、线程池、C++20同步原语、读写锁和线程本地存储等。第三部分(14-18章)侧重性能优化,探讨死锁避免、缓存一致性、无锁编程及并行STL。最后通过日志系统和网络爬虫两个实战项目(19-20章),展示了多线程技术的综合应用。全文从基础到实战,全面覆盖了现代C++多线程开发的关键
2025-10-25 10:17:24
676
原创 为什么你的 Critical Path 延迟超标?先搞懂 Fanout/Cap/Trans 的 “送货逻辑” 再说
文章用快递送货类比数字电路中的延迟问题,将数字单元比作快递员,延迟比作送货时间。关键因素包括:1)负载电容(Cap)对应包裹总重量,重量越大延迟越长;2)扇出(Fanout)对应包裹数量,数量多可能增加总重量,但不绝对;3)转换时间(Trans)对应取件准备时间,准备越久总延迟越长。三者共同影响时,延迟会显著增加。解决方案包括:更换高驱动单元(换大电动车)、插入缓冲器(分批送货)和优化前级单元(提前准备)。这种类比生动解释了数字电路延迟的影响因素和优化方法。
2025-10-16 08:15:00
798
原创 Synopsys 逻辑综合之 ICG
文章摘要: ICG(集成时钟门控单元)是一种用于降低时钟功耗的专用逻辑单元,通过控制时钟信号的传播实现节能。其核心原理是在寄存器前插入门控逻辑(如gclk=clk&en),但需避免直接使用AND门以防止毛刺,转而采用带锁存器的专用ICG单元。在RTL设计中,符合条件(如稳定使能信号)的if(en)结构可被综合工具(如DesignCompiler)自动识别并替换为ICG。使用时需配置时序检查(如PrimeTime分析使能路径、门控时钟延迟),并注意避免组合逻辑使能、多级门控等误区。ICG是芯片低功耗设
2025-07-11 08:45:00
3918
原创 Synopsys 逻辑综合之 MultiBit Flip-Flop 与 ICG
本文介绍了Multi-Bit Flip-Flop(多比特寄存器)的概念及其在芯片设计中的优势。与传统1-bit寄存器相比,Multi-Bit FF通过合并多个相同控制信号的寄存器,实现共享时钟引脚、降低功耗(减少20%-40%时钟功耗)、节省芯片面积(约15%-30%)和优化布局。文章详细说明了在Synopsys Design Compiler中如何启用Multi-Bit FF功能,并强调其与时钟门控(ICG)技术的协同优化效果。通过实际案例展示了16位寄存器合并为1个Multi-Bit FF的过程,证明该
2025-07-10 09:50:57
3942
原创 行波进位加法器 (Carry-Propagate Adder)
文章摘要: 行波进位加法器(RCA)是最基本的加法器结构,通过串联全加器实现逐位进位传播。其结构简单、功耗低,但延迟随位数线性增长(O(n))。适用于低位数加法(≤8位)和非关键路径电路。文章详细介绍了RCA的原理、结构、公式、应用场景,并提供了Verilog RTL代码和C++模拟实现。虽然在高位加法中效率较低,但RCA作为数字电路基础组件,在特定场景仍具有重要应用价值。更高效的超前进位加法器(CLA)常用于高位加法实现。
2025-07-03 19:30:00
4122
2
原创 半加器和全加器
摘要:本文介绍了加法器的两种基础单元——半加器和全加器。半加器用于两个二进制位的相加,通过异或门计算和位,与门计算进位位。全加器则能处理三个输入位(包括低位进位),采用两个半加器加或门实现,或直接用异或门与与门组合构建。半加器适用于最低有效位运算,全加器用于构建多位加法器,是计算机算术运算的基础模块。两者的核心区别在于全加器能处理进位链,从而支持多位数相加。
2025-07-01 12:46:59
5626
原创 全面深入理解加法器架构:从全加器到并行前缀优化
本文系统介绍了数字电路中的各类加法器设计与性能对比。从基础的全加器、半加器开始,逐步分析Ripple-Carry、Carry-Skip、Carry-Lookahead等经典加法器结构,重点探讨了Parallel-Prefix加法器的实现方法及各类前缀结构特性。针对多操作数场景详细讲解了Carry-Save加法器及其在Wallace Tree中的应用,并对比了各类加法器的延迟、面积等关键指标。最后给出设计建议:初学者从RCA/CSKA入手,高性能场景推荐PPA+CSA组合,为不同应用需求提供了明确的选型指导。
2025-06-21 17:44:45
4034
原创 数字系统的灵魂:深入剖析各类数值编码方式
本文系统介绍了多种数字表示系统及其应用。二进制系统包含无符号、补码、符号-幅值等编码方式;格雷码用于低功耗计数;冗余数系统实现无进位加法;余数系统(RNS)基于模运算实现并行计算;浮点数遵循IEEE 754标准;对数数制(LNS)加速乘除运算;反四重数制表示超大数值。每种系统各有优劣:补码通用但非对称,格雷码低功耗但难运算,冗余数无进位但复杂,RNS并行强但难比较,浮点范围广但精度不均,LNS乘除快但加减慢。这些系统在计算机体系结构、DSP、滤波器等场景有重要应用。
2025-06-20 17:08:45
3678
原创 从加法器到乘法器:一文吃透计算机算术的秘密武器(下)
本文系统梳理了数字电路设计中常见的加法器结构及其实现特性。主要内容包括:1)Ripple Carry Adder的基本串行结构及其低功耗特性;2)Carry Lookahead Adder通过预计算提升速度的原理;3)Carry Select Adder的双路并行计算机制;4)Parallel Prefix Adders系列的高性能实现方案。文章强调实际设计中应通过综合工具约束和RTL编码引导工具自动选择最优结构,并建议通过时序报告分析关键路径,针对不同位宽和频率需求进行实验验证。核心观点是理解加法器结构的
2025-05-26 16:46:39
4470
原创 从加法器到乘法器:一文吃透计算机算术的秘密武器(上)
如果你想设计出高性能芯片,必须从“写出能综合的 HDL”升级到“写出能优化、能分析的 HDL”。理解数据表示、加法器、乘法器原理,不是为了考试,而是为了让你掌握综合器的“思维逻辑”。本期只是入门篇:下一期,我们将深度对比 8 种加法器结构,从面积、速度、综合后层级逐个图解,并用真实综合脚本分析路径瓶颈。📘 后续将包括:CSA 树、多操作数加法器、浮点数综合、CORDIC 算法硬件化、Design Compiler 脚本调优全解析。
2025-05-26 09:38:03
2415
原创 揭秘 AddSub Operator:Synopsys DC 中加减运算符的底层构建与优化
是 DC datapath synthesis 的核心算术运算单元,涵盖加/减两种模式。通过 HLO 调度与重写,将 ADD 和 SUB 节点统一成一个可切换模式的 datapath operator。在 Mapping 阶段,优先匹配可配置 ALU Macro,否则展开为门级网络。构建失败通常源于位宽不匹配、调度不同步或模式冲突,通过合理约束与 RTL 组织可以有效避免。
2025-05-22 10:14:22
3608
原创 揭秘综合器的MUX构建逻辑:Synopsys Design Compiler中HLO与Datapath如何打造高效选择器结构
本文深入探讨了MUX(多路选择器)在RTL设计中的核心作用及其构建过程。MUX不仅是条件控制中的常见结构,还直接影响datapath的结构树形成、资源共享、功耗和面积等关键指标。文章详细介绍了MUX表达式的识别与解析、构建的关键前提、优化路径、构建结构、常见失败原因及Debug方法,并提供了优化策略。通过理解MUX的构建流程和优化技巧,设计者可以更有效地实现资源共享和面积节省,提升综合器的智能化能力。
2025-05-15 09:15:00
9596
原创 深入 datapath optimization:从 expression 到结构映射的全过程解析
本文详细介绍了从RTL表达式到Datapath结构的转换过程,涵盖了表达式树生成、表达式调度、结构重写、Datapath节点构建、控制逻辑生成以及优化实例等关键步骤。通过具体示例,如assign result = (a+b)*(c-d);,展示了如何将RTL表达式转换为表达式树,并进一步调度和重写以优化结构。文章还探讨了如何将表达式映射为可复用的结构组件,如加法器、乘法器和MUX,并介绍了共享路径识别和多路复用等优化技术。此外,提供了使用Design Compiler的实际技巧和调试Datapath合成的常
2025-05-14 09:15:00
12298
原创 Non-Booth 乘法器的全解析:从 RTL 表达式到部分积压缩的完整路径
Booth 编码乘法器(优化符号扩展/部分积)非 Booth(Non-Booth)乘法器直接使用被乘数与乘数的位级与逻辑组合,不使用 Booth 的重编码。这篇文章聚焦后者,即最基本也是最通用的结构化乘法器,在很多 ASIC/FPGA 设计中仍广泛应用,尤其是位宽较小时。Non-Booth 乘法器是 datapath 构建中最基础也最通用的组件。它虽不如 Booth 在面积和性能上有压缩优势,但胜在结构清晰、调试容易、RTL 可控度高。
2025-05-08 10:39:10
12046
原创 终结乘法瓶颈!带你彻底掌握 Booth Encoding 的秘密与架构
Booth 编码是一种简洁高效的位级优化技术,尤其适合构建大位宽、signed 类型的乘法器。通过智能的重编码机制,它帮助 datapath 减少部分积、降低压缩器使用数量,提升乘法器性能。特性是否压缩部分积✅ 是适合位宽中/大(≥8)是否需要符号扩展✅ 是(signed)构建结构。
2025-05-08 10:38:23
6409
原创 Wallace Tree vs. Dadda Tree:部分积压缩背后的两大阵营对决
在 datapath 优化阶段,特别是乘法器构建过程中,部分积(Partial Products)压缩是影响面积和时序的关键步骤。无论是 Booth 还是 Non-Booth,最终都生成若干组部分积位,这些位需要在硬件中以极高效率加总为一个最终的积。Dadda Tree在 Synopsys Design Compiler 中,DC 的底层 datapath 构建器会根据目标路径、PPA 策略自动选择其中之一,或者根据 library 支持情况固定使用某一类型。那么这两种结构本质上是怎么工作的?
2025-05-07 09:15:00
7809
原创 Booth Encoding vs. Non-Booth Multipliers —— 穿透 DC 架构看乘法器的底层博弈
在 datapath 构建阶段,乘法器是最重要的资源单元之一。面积最大时序瓶颈集中能力决定系统吞吐而 Synopsys Design Compiler (DC) 在构建乘法器结构时,核心决策之一就是:❓是否采用 Booth Encoding?❓如果不采用,怎么构建标准 non-Booth 乘法器?这并不是一个简单选择,而是涉及多个维度的性能平衡。维度Non-Booth部分积数量n个面积较大延迟多级加法器符号位支持需要扩展和修复构建复杂度中等优点实现简单,易调试缺点。
2025-05-06 09:15:00
6542
原创 Datapath Optimization Failure Debugging —— 从失败到逆转的全过程
Datapath 优化是 Synopsys Design Compiler 最复杂的模块之一。它不像普通逻辑优化那样线性、局部,而是要全局建模、调度、资源分配、构建共享结构,任何一点出问题都可能导致整段 RTL fallback 到通用逻辑综合路径。DC 不会报错,只会静悄悄 fallback。如果你不了解底层机制,就永远不会知道:“为啥我的设计这么大、这么慢?DC 的 Datapath 引擎没能识别/构建目标运算网络,只好用 RTL原始结构照搬或分裂为通用逻辑门去处理。
2025-05-05 09:15:00
5469
原创 Multiplier Optimization(乘法器优化)—— DC_SHELL 如何极致提升乘法器性能?
乘法器优化是 datapath 最核心的一环,DC用了一套 Booth压缩+Wallace树/达达树+共享重用的体系,动态在面积、时序、功耗三者之间寻找极致平衡。
2025-05-04 10:28:15
5768
原创 究极底层揭秘:MUX Construction Failure —— 为什么 Datapath 构建失败?如何彻底搞懂和避免?
🔵 在 Datapath Optimization 中,是一个核心步骤。把 RTL 中大量 if-else、case语句、条件赋值,归纳整理成有规律、高效的 MUX网络(多路选择器树)。如果在优化过程中,无法成功推导或建立这种 MUX结构⚡️一旦发生:Datapath 无法成功建立。设计 fallback 到一般逻辑综合(slow and large)。timing QoR (Quality of Result) 直接暴跌。
2025-04-30 09:15:00
5501
原创 深入揭秘:Datapath Optimization —— 高阶数据通路优化与跨周期绑定的底层机制!
Datapath Optimization 是把表达式的优化推向极致,不仅做静态结构构建,还动态调度运算资源、跨周期规划执行,从而实现极致的时序、面积、吞吐平衡。MUX Construction Failure 为什么会发生、底层机制是什么、如何避免?这是很多复杂 datapath 失败综合时最头疼的点, 下一章节我们将会叙讲这个。😎🚀。
2025-04-29 09:14:40
5689
原创 [ 问题解决 ] sqlite3.ProgrammingError: SQLite objects created in a thread can ...
这句话的意思是:你在(比如 Flask 启动时的主线程)里创建了 SQLite 的连接或者 cursor(光标对象)。但你在(比如处理 POST 请求时 Flask 内部新开的线程)去用这个连接或者 cursor。SQLite 默认。SQLite 连接是,不同线程必须用自己的连接。
2025-04-28 17:27:23
5597
原创 深度揭秘:High-Level Optimization (HLO) —— 调度、重写与 Datapath 构建的底层机制!
深度揭秘:High-Level Optimization (HLO) —— 调度、重写与 Datapath 构建的底层机制!
2025-04-28 09:21:37
5551
原创 穿越源代码与硬件之间:Elaboration 揭秘,让你的设计具象成真!
—— 从抽象语法树到静态硬件网络,解锁 Design Compiler 的灵魂变换!
2025-04-27 16:13:31
5369
原创 深入解析:Sklansky Adder(斯克兰斯基加法器)原理、优缺点及实现细节
与传统的进位传播加法器(Carry Ripple Adder,RCA)相比,Sklansky Adder 通过采用更高级的进位生成和传播策略,显著提高了运算速度。通过本文的详细分析,你可以全面了解Sklansky Adder的工作原理,优缺点及其资源消耗。相比之下,Ripple Carry Adder的延迟为O(n),因此Sklansky Adder在大位宽的加法运算中具有明显的优势。在最理想的情况下,Sklansky Adder的进位生成电路和全加器的组合所需的逻辑门数量将随着位宽n的增加而成对数增长。
2024-12-06 17:56:52
5882
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅