当前位置: 首页 > news >正文

verilog HDLBits刷题“Module cseladd”--模块 cseladd---Carry-select adder 进位选择adder

一、题目

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

在本练习中,您将获得与上一个练习相同的模块,该模块将两个 16 位数字与进位相加,并产生一个进出和 16 位总和。您必须使用您自己的 16 位 2 对 1 多路复用器实例化其中的三个来构建 carry-select 加法器。add16

如下图所示,将模块连接在一起。提供的模块具有以下声明:add16

module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );

 

模块声明

module top_module(input [31:0] a,input [31:0] b,output [31:0] sum
);

 二、分析

1、例化三个16位加法器,低16位进位为0,高16位的进位原本应来自低16位加法器的进位cout,为提高加法器的速度,分别假设高16位加法器的进位为0或1,可得到高16位加法器的输出。

2、根据低16位的进位输出(sel), 选择高16位加法器的输出作为32位加法器的高16位输出。

三、代码实现

module top_module(input [31:0] a,input [31:0] b,output [31:0] sum
);wire [15:0]sum_hi0,sum_hi1;wire [15:0]sum_low;reg [15:0]sum_hi_sel;wire sel;add16 inst1(.a(a[15:0]),.b(b[15:0]),.cin(1'b0),.cout(sel),.sum(sum_low));add16 inst2(.a(a[31:16]),.b(b[31:16]),.cin(1'b0),.cout(),.sum(sum_hi0));add16 inst3(.a(a[31:16]),.b(b[31:16]),.cin(1'b1),.cout(),.sum(sum_hi1));always@(*)begincase(sel)1'b0:sum_hi_sel<=sum_hi0;1'b1:sum_hi_sel<=sum_hi1;endcaseendassign sum={sum_hi_sel,sum_low};
endmodule

四、时序

http://www.lryc.cn/news/573448.html

相关文章:

  • 为车辆提供路径规划解决方案:技术演进、挑战与未来蓝图
  • 【appium】2.初始连接脚本配置
  • C++模板基础
  • 【AGI】突破感知-决策边界:VLA-具身智能2.0
  • 用OBS Studio录制WAV音频,玩转语音克隆和文本转语音!
  • 《揭开CSS渲染的隐秘角落:重排与重绘的深度博弈》
  • 【StarRocks系列】查询优化
  • 操作系统进程与线程核心知识全览
  • 前端开发面试题总结-vue3框架篇(二)
  • 钉钉智能会议室集成指纹密码锁,临时开门密码自动下发
  • 前端登录不掉线!Vue + Node.js 双 Token 无感刷新方案
  • 爱高集团引领转型浪潮:AI与区块链驱动香港科技资本新机遇
  • [C++] STL数据结构小结
  • Linux——Json
  • 【系统分析师】2017年真题:综合知识-答案及详解
  • JVM(8)——详解分代收集算法
  • 【基础算法】贪心 (一) :简单贪心
  • Python标准库 zlib模块【数据压缩/解压】全面讲解
  • Python元组常用操作方法
  • 什么是跨域问题?后端如何解决跨域问题?
  • MCU量产高效烧录:BootLoader与App合并技巧
  • 【Python】正则表达式中的`^`和`[]`
  • 学c++ cpp 可以投递哪些岗位
  • 从0开始学习计算机视觉--Day02--数据驱动
  • MySQL误删数据急救指南:基于Binlog日志的实战恢复详解
  • Mac Parallels Desktop Kali 2025 代理设置
  • OpenAI与微软的未来合作之路:充满挑战的AI竞赛与共赢
  • YAML 数据格式详解
  • 计算机网络第九章——数据链路层《流量控制和可靠传输》
  • 基于SpringBoot+Uniapp的活动中心预约小程序(协同过滤算法、腾讯地图、二维码识别)