【HDL系列】进位旁边加法器原理与设计

2023-11-06 02:10

本文主要是介绍【HDL系列】进位旁边加法器原理与设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、进位旁边加法器

进位旁路加法器(Carry Skip Adder,CSA),也称Carry Bypass Adder。需要注意的是,CSA也是另外一种加法器——进位保存加法器(Carry Save Adder)的简称,关于这种加法器后期会介绍。

此前介绍了行波进位加法器RCA,第k位的进位Ck必须等待之前的Ck-1的结果才能计算出来,如下图进位c16必须等到前一级全加器的c15输出才可以计算,所以行波进位加法器的特点便是超长的进位传播链。

16比特RCA进位链示意图

进位旁边加法器的思想在于加速进位链的传播,在某种情况下,到达第i位的进位无需等待第i-1位进位。在16比特RCA中,最长的进位链为c0->c1->c2->…->c16,也就是说,每一位全加器都有进位,这条路径也是最长的关键路径。进位旁边加法器通过加入旁路逻辑来缩短这条最长路径,该旁路逻辑由2选1数据选择器,第x级进位和第y级进位和进位bypass信号组成。

4比特CSA结构

CSA结构如上,紫色部分为数据选择器,橙色部分为数据选择信号,数据来源为进位c0和第3个全加器的进位输出。

P3&P2&P1&P0=1c4=c0;进位c0直接传播至c4,而不需再经过4级全加器的延迟,这就是进位旁路加法器的核心。

为什么P3&P2&P1&P0=1时c0可以直接传播至c4?乍一看这个问题有点让人困扰。

先看c4的生成逻辑:

P3&P2&P1&P0=1时,则P3=P2=P1=P0=1,所以c4生成逻辑如下:

在介绍超前进位加法器中,我们定义了PG:

P是a与b异或的结果,只有a=0,b=1或者a=1,b=0时,P才可能等于1,而G=ab,所以只要P=1,G则一定为0,所以G3=G2=G1=G0=0。

最后结论与上述一致:P3&P2&P1&P0=1时,c4的生成逻辑最终变成c4=c0

二、进位旁路加法器关键路径与优化

将N比特加法器,以m比特为一组,分成N/m组,如下式16比特进位旁路加法器,N=16,m=4,共有4组,该16比特CSA由4比特CSA级联而成,其中4比特CSA4个全加器组成的Block进位逻辑Skip logic2选1数据选择器三部分组成。

16比特CSA结构

以上关键路径发生在:

  1. c0走第一级Block,经过4级全加器,进位从bit0到bit3生成c4。
  2. 中间进位经过bypass逻辑。
  3. 最后一级走Block逻辑,经过4级全加器,进位从bit12到bit15生成c16.

基于此结构通用的关键路径延迟公式为:

其中:

    Tsetup:A,B低位到第一级block的时间

    tcarry:每个进位传播Block中全加器产生进位的时间

    Tskip:进位通过skip逻辑的时间

    Tsum:从最后个进位到S输出的时间

可能在此处读者会有一个疑问,为什么最长的delay会是中间两级路径,如果加法器进位全部走Block逻辑,应该具有更长的延迟啊?其实走最长的路径,中间路径会被旁路,也就是执行0111_1111_1111_1111 + 0000_0000_0000_0001的情况。第一级进位产生后,中间两级被旁路,最后一级经过RCA进位链,也就是下图中红色描绘出的路径图。

16比特CSA关键路径图

三、进位旁路加法器Verilog设计

以下参数化cska(Carry Skip Adder, 为防止混淆取名cska)基于4比特cska设计,width可参数化定义为4的倍数,如20,24,32,64,128等。

默认16比特进位旁路加法器,由4个进位旁路加法器级联而成,每个进位旁路加法器中由4个全加器级联,且有进位旁路逻辑。

module cska #(width=16) (input  [width-1:0] op1,input  [width-1:0] op2,output [width-1:0] sum,output cout
);wire [width>>2:0] c;
assign c[0] = 0;
assign cout = c[width>>2];genvar i;
generate for( i=0; i<width>>2; i=i+1) begincska_4bit u_cska_4bit (.op1( op1[i*4+3:i*4] ),.op2( op2[i*4+3:i*4] ),.cin( c[i] ),.sum( sum[i*4+3:i*4] ),.cout( c[i+1]));end
endgenerateendmodule

cska_4bit模块中进位链和进位旁路逻辑:

//full adder and p generator
genvar i;
for( i=0; i<width; i=i+1) beginfull_adder_cska u_full_adder_cska(.a   ( op1[i]   ),.b   ( op2[i]   ),.cin ( c[i]     ),.cout( c[i+1]   ),.s   ( sum[i]   ),.p   ( p[i]     ));
end//carry bypass
assign sel = p[0] & p[1] & p[2] & p[3];
assign cout = sel ? cin : c[width];

Verilog源码公众号回复004。

欢迎指正错误,更多阅读,关注“纸上谈芯”,不定期更新,共同学习:

这篇关于【HDL系列】进位旁边加法器原理与设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/353902

相关文章

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,公告信息,论坛,装修,装修队 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:SpringBoot自带 ap

DDei在线设计器-API-DDeiSheet

DDeiSheet   DDeiSheet是代表一个页签,一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据,在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。   一个DDeiFile实例至少包含一个DDeiSheet实例。   本篇最后提供的示例可以在DDei文档直接预览 属性 属性名说明数

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

比较学习难度:Adobe Illustrator、Photoshop和新兴在线设计平台

从入门设计开始,几乎没有人不知道 Adobe 公司两大设计软件:Adobe Illustrator和 Photoshop。虽然AI和PS很有名,有一定设计经验的设计师可以在早期探索和使用后大致了解AI和PS的区别,但似乎很少有人会系统地比较AI和PS。目前,设计软件功能多样,轻量级和网页设计软件已成为许多设计师的需求。对于初学者来说,一篇有针对性的AI和PS比较总结文章具有非常重要的指导意义。毕竟

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高度, 宽度: height(), widt

C语言入门系列:探秘二级指针与多级指针的奇妙世界

文章目录 一,指针的回忆杀1,指针的概念2,指针的声明和赋值3,指针的使用3.1 直接给指针变量赋值3.2 通过*运算符读写指针指向的内存3.2.1 读3.2.2 写 二,二级指针详解1,定义2,示例说明3,二级指针与一级指针、普通变量的关系3.1,与一级指针的关系3.2,与普通变量的关系,示例说明 4,二级指针的常见用途5,二级指针扩展到多级指针 小结 C语言的学习之旅中,二级

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

计算机组成原理——RECORD

第一章 概论 1.固件  将部分操作系统固化——即把软件永恒存于只读存储器中。 2.多级层次结构的计算机系统 3.冯*诺依曼计算机的特点 4.现代计算机的组成:CPU、I/O设备、主存储器(MM) 5.细化的计算机组成框图 6.指令操作的三个阶段:取指、分析、执行 第二章 计算机的发展 1.第一台由电子管组成的电子数字积分和计算机(ENIAC) 第三章 系统总线

展厅设计主要的六大要素

1、从创意开始      展示设计的开始必须创意在先。根据整体的风格思路进行创意,首先要考虑的是主体的造型、大小高度位置以及它和周围展厅的关系。另外其他道具设计制作与运作方式也必须在创意中有明确的体现。      2、平面感      平面感是指对展示艺术设计平面图纸审美和功能两个方面理性的感觉认识。它是三维空间设计认识的基础,也是施工的重要依据。展示空间的设计应先在展场环境的平面