Verilog刷题[hdlbits] :Module cseladd

news2025/1/15 6:58:05

题目:Module cseladd

One drawback of the ripple carry adder (See previous exercise) is that the delay for an adder to compute the carry out (from the carry-in, in the worst case) is fairly slow, and the second-stage adder cannot begin computing its carry-out until the first-stage adder has finished. This makes the adder slow. One improvement is a carry-select adder, shown below. The first-stage adder is the same as before, but we duplicate the second-stage adder, one assuming carry-in=0 and one assuming carry-in=1, then using a fast 2-to-1 multiplexer to select which result happened to be correct.

  • ripple carry adder(见之前的练习)的一个缺点是,加法器计算carry out(从carry-in,在最坏的情况下)的延迟相当慢,而第二阶段的加法器在第一阶段的加法器完成之前无法开始计算其carry out。这使得加法器变慢。一种改进是carry-select adder,如下所示。第一阶段的加法器与之前相同,但我们复制了第二阶段的加法器,一个假设carry-in=0,另一个假设carry-in=1,然后使用快速的2-to-1多路复用器选择哪个结果是正确的。

In this exercise, you are provided with the same module add16 as the previous exercise, which adds two 16-bit numbers with carry-in and produces a carry-out and 16-bit sum. You must instantiate three of these to build the carry-select adder, using your own 16-bit 2-to-1 multiplexer.

  • 在本练习中,您将使用与之前的练习相同的模块add16,该模块将两个16位数字与carry-in相加并产生一个carry-out和16位和。您必须实例化三个这样的模块来构建carry-select adder,使用您自己的16位2-to-1多路复用器。

Connect the modules together as shown in the diagram below. The provided module add16 has the following declaration:

  • 将模块按照下面的图示连接起来。提供的模块add16具有以下声明:
    module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );
    在这里插入图片描述

在上一题Module fadd中,高16位的计算需要在得出进位信号后才能进行,这会使加法器变慢。同时由于进位信号只有0或1两种可能,所以在本题Module cseladd中,使用了两个add16来计算高16位的结果,并且这两个add16的进位信号cin分别为0和1。此时,在计算加法的计算步骤为,低16位相加(进位为0)、高16位相加(进位为0)与高16位加法(进位为1)三部分并行进行,再根据低16位相加得出的进位结果选取正确的高16位相加结果,进而得出最终答案。

module top_module(
    input [31:0] a,
    input [31:0] b,
    output [31:0] sum
);
	//进位信号
    wire cout;
    //存储 高16位相加(进位为0) 的结果
    wire [15:0] sum_high_1;
    //存储 高16位相加(进位为0) 的结果
    wire [15:0] sum_high_2;
	//低16位相加
	add16 add16_init_0( 
        .a(a[15:0]), 
        .b(b[15:0]),
        .cin(1'b0), 
        .sum(sum[15:0]), 
        .cout(cout) 
    );
    //高16位相加(进位为0)
	add16 add16_init_1( 
        .a(a[31:16]), 
        .b(b[31:16]),
        .cin(1'b0), 
        .sum(sum_high_1), 
        .cout() 
    );  
    //高16位相加(进位为1)
	add16 add16_init_2( 
        .a(a[31:16]), 
        .b(b[31:16]),
        .cin(1'b1), 
        .sum(sum_high_2), 
        .cout() 
    );  
	//根据进位结果选取正确的高16位运算结果
    assign  sum[31:16] = cout ? sum_high_2 : sum_high_1;
	    
endmodule


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1166737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐PHP匿名在线聊天室系统源码

PHP匿名在线聊天室系统源码 自适应PCWAP端 可发语音、图片,修改数据库config\settings.php可拿去搭建专门跟客户聊天的网站。 演示地址:runruncode.com/php/19610.html

AD教程(五)光耦及二极管元件模型的创建

AD教程(五)光耦及二极管元件模型的创建 二极管元件的创建 放置管脚,设置管脚号和管脚名称(一般隐藏)绘制三角形 右键放置直线,选择放置多边形,操作逻辑,每次操作都会增加一边&…

【面试精选】00后卷王带你三天刷完软件测试面试八股文

前言 本人普通本科计算机专业,做测试也有3年的时间了,讲下我的经历,我刚毕业就进了一个小自研薪资还不错,有10.5k(个人觉得我很优秀),在里面呆了两年,积累了一些的经验和技能&#…

火爆全网,性能测试-Tomcat连接数分析/jprofiler定位接口相应时长(总结)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Tomcat链接数分…

QT之多个界面相互切换 (stackedWidget控件)

TOC Chapter1 QT之多个界面相互切换 (stackedWidget控件) 原文链接 stackedWidget控件: 可以自由在多个widget切换,可以通过点击顶部菜单,显示不同界面,在实际开发中应用很广泛。 QStackedWidget是一个堆栈窗口控件&#xff0c…

tp6使用Spreadsheet报错:Class ‘PhpOffice\PhpSpreadsheet\Spreadsheet‘ not found

问题提示如下: 可能vendor下的 phpoffice是从别的项目拷贝过来的,所以咋都不行 解决办法是删掉vendor下的phpoffice,用composer重新下载 具体操作:1、在项目根目录下cmd执行下面这条命令 composer require phpoffice/phpspread…

【Linux】 shutdown 命令使用

shutdown 命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。使用权限:系统管理者。 语法 shutdown [选项] 时间 [警告信息] 命令选项及作用 执行令 man shutdown 执行命令结果 参…

矿山数字化react-native技术点记录

文章目录 1,宽度自适应表格实现2,新建作业手势动画3,tabBar中间midTabBar动态展示4,堆料图实现5,语音识别实现6,待办事项上下滑动切换页面7,装料卸料手势冲突8,首页初始化性能9&…

有活动啦 | 同立海源年终大促,满额赠礼!

秋天是倒放的春天 时间不停流转 四季马不停蹄 转眼间 距离2024年还有59天啦! 在这个最美的季节 同立海源,年终大促,携礼而来! 关于同立海源 北京同立海源生物科技有限公司,专注细胞和基因治疗(CGT&am…

都是80m²小户型,凭啥她家那么好看!福州中宅装饰,福州装修

杨桥新苑 本案来自杨桥新苑的住宅, 质朴弥漫在80㎡的小家, 自然淡雅的木纹,精炼的玄关隔断, 简约的设计里传达着中式的静谧风雅, 简练的空间加入中国元素, 让人从进门开始就沾染一丝艺术气息。 风格&a…

库尔勒春雨社会工作服务中心开展“三金西瓜霜‘爱牙公益行’善网公益资源对接

为进一步增强辖区居民口腔健康观念和口腔保健意识,加大口腔防治知识宣传教育,促进形成良好的口腔健康行为。10月29日,库尔勒市春雨社会工作服务中心联合库尔勒市天山街道未成年人保护站开展“三金西瓜霜‘爱牙公益行’─善网公益资源对接”公…

uniapp原生插件之安卓客户端之间wifi文件传输

插件介绍 安卓客户端之间文件传输,支持大文件传输,Wifi/热点文件传输,轻松传送1G文件 插件地址 安卓客户端之间wifi文件传输 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 使用文档 详细使用文档 示例文件 百度网盘链接&a…

精品Python的旅游数据可视化大屏平台-爬虫-景点门票

《[含文档PPT源码等]精品基于Python的旅游数据可视化平台-爬虫》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: 开发语言:python 使用框架:Flask 前端技术&…

突破性技术!开源多模态模型—MiniGPT-5

多模态生成一直是OpenAI、微软、百度等科技巨头的重要研究领域,但如何实现连贯的文本和相关图像是一个棘手的难题。 为了突破技术瓶颈,加州大学圣克鲁斯分校研发了MiniGPT-5模型,并提出了全新技术概念“Generative Vokens "&#xff0c…

Java Web 学习笔记(一) —— MySQL(2)

目录 1 约束1.1 约束概述1.2 非空约束1.3 唯一约束1.4 主键约束1.5 默认约束1.6 外键约束 2 数据库设计2.1 数据库设计概述2.2 表关系 3 多表查询3.1 多表查询概述3.2 内连接查询3.3 外连接查询3.4 子查询 4 事务4.1 事务概述4.2 四大特征 1 约束 1.1 约束概述 约束是作用于表…

SPSS游程检验

前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…

2023年汉字小达人市级比赛的几个新问题和备赛建议

昨天(2023年11月2日),中文自修杂志社在官网公布了2023年第十届小学生汉字小达人区级比赛的结果,公布了区级比赛的获奖名单。 六分成长昨天第一时间把这个消息告诉了关注这项比赛的父母和孩子们,也就2023年汉字小达人的…

vue需求:实现签章/签字在页面上自由定位的功能(本质:元素在页面上的拖拽)

目录 第一章 效果展示 第二章 了解工具 2.1 draggable 2.1.1 了解draggable 2.1.2 draggable方法 2.1.3 利用例子理解方法 第三章 效果实现 3.1 实现思路 3.2 代码实现 3.2.1 涉及到的点 3.2.2 源代 第一章 效果展示 效果描述:通过点击左边栏的签名和…

Windows Server 2016使用MBR2GPT.EXE教程!

什么是MBR2GPT.exe? MBR2GPT.exe是微软提供的专业工具,可在命令提示符下运行。使用该工具可以将引导磁盘从MBR转换为GPT分区样式,而无需修改或删除所选磁盘上的任何内容。 在Windows Server 2019和Windows 10(1703…

Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍

目录 一. Redis简介 二. Redis的安装 2.1 Linux版安装 2.2 windows版安装 三. Redis的常用命令 一. Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。 它…