加法器-减法器可以通过选择负掉其中一个输入来从加法器构建,这相当于反转输入然后加1。最终结果是一个可以执行两个操作的电路:(a + b + 0)和(a + ~b + 1)。

在下面构建加法器-减法器。

为您提供了一个 16 位加法器模块,您需要对其进行两次实例化:

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

使用 32 位宽异或栅极,每当 sub 为 1 时反相 b 输入。(这也可以看作是b[31:0]XOXRed,sub复制了32次。看复制操作员.).还要将sub连接到加法器。

分析:图中电路实现的是加法器和减法器的操作。其中减法器为A-B可由A+(~B+1)构成,即直接用补码的形式将B取反然后再加1。当sub为0时,cin置0,进位输入为0,还是进行加法操作;当sub为1时,cin置1,进位输入为1,B取反然后再加1。

错误代码:

错误结果:

由上述结果可知:上述错误的产生均为sub等于1时没有向高位进位而导致的错误。由此可知错误产生在assign  sub1=b[31:0]^sub这一行。再通过分析可知:图中电路要实现的是31位的加法器减法器,而上述错误代码只使用了一个sub,而首次输入结果又为0,因此导致该32位加法器减法器只在sub等于0时结果正确。可将代码修改如下:

正确代码:

module top_module(input [31:0] a,input [31:0] b,input sub,output [31:0] sum
);wire [31:0] sub1;wire [15:0] sum1;wire [31:16] sum2;wire c1;assign sub1=b[31:0]^{32{sub}};add16 u1 (.a(a[15:0]),.b(sub1[15:0]),.cin(sub),.sum(sum1),.cout(c1));add16 u2 (.a(a[31:16]),.b(sub1[31:16]),.cin(c1),.sum(sum2));assign sum = {sum2,sum1};
endmodule

HDLBITS笔记五加法器减法器相关推荐

  1. HDLBITS笔记15:组合逻辑之7420芯片

    由于组合逻辑电路中前面的部分过于简单,这里不做介绍.给出更多逻辑门(链接:Gates - HDLBits (01xz.net)的代码: module top_module( input a, b,ou ...

  2. HDLBITS笔记30:rule 90、rule 100以及Conway‘s game of life 16*16

    目录 ## 题目1:rule 90规则90是具有有趣属性的一维元胞自动机. 题目2:rule 100 题目3:Conwaylife ## 题目1:rule 90 规则90是具有有趣属性的一维元胞自动机 ...

  3. HDLBITS笔记34:Lemmings1、Lemmings2、Lemmings3、Lemmings4

    目录 题目1:Lemmings1 题目2:Lemmings2 题目3:Lemmings3 题目4: Lemmings4 题目1:Lemmings1 游戏Lemmings涉及具有相当简单大脑的小动物.如 ...

  4. Verilog练习:HDLBits笔记15

    四.Sequential Logic Finite State Machines 1.Simple FSM 1(asynchronous reset) Problem Statement: This ...

  5. HDLBITS笔记29:移位寄存器(包括4位移位寄存器,创建100位左/右旋转器,算术偏移,线性反馈移位寄存器等)

    题目1:4位移位寄存器(4-bit shift register) 构建一个具有异步复位.同步加载和使能功能的 4 位移位寄存器(右移位). reset:将移位寄存器重置为零. load: 加载数据[ ...

  6. HDLbits笔记-移位寄存器

    Circuits----sequential Logic 文章目录 Circuits----sequential Logic 前言 一.shift registers(移位寄存器) 1.异步置零的移位 ...

  7. HDLBITS笔记26:边沿检测(正边沿、任意边沿,边沿捕获寄存器、双边沿触发触发器)

    在做接下来的题目前,首先需要理解什么是边沿检测. **边沿检测:**边沿指的是上升沿或者下降沿,检测指的是检测输入信号的变化,或者FPGA内部电路逻辑信号的跳变.在做边沿检测时,应该注意到复位信号,如 ...

  8. HDLBITS笔记35:独热编码状态机,ps/2数据包解析器,ps/2数据包和数据路径

    目录 题目1:Fsm onehot(热编码的有限状态机) 题目2:Fsm ps2(ps/2数据包解析器) 题目3:Fsm ps2data(ps/2数据包解析器和数据路径) 题目1:Fsm onehot ...

  9. HDLBITS笔记27:计数器(4位计数器、计算0-9/0-10计数器、具有控制信号的计数器)

    目录 题目1:4位二进制计数器(four-bit-binary counter) 题目2:计数器10(decade counter) 题目3:计数器10(dacade counter again) 题 ...

最新文章

  1. 【深度学习入门到精通系列】U-net网络分析
  2. java.sql.SQLException: 关闭的 Resultset: next
  3. 【Luogu】P3950部落冲突(树链剖分)
  4. 《网络安全原理与实践》一2.1 安全区介绍
  5. commonjs是什么_JavaScript模块化标准CommonJS/AMD/CMD/UMD/ES6Module的区别
  6. 可怕的乖孩子_当今的中国,有句很可怕的话:所有的乖孩子注定不幸福!
  7. 第二代飞信机器人“小达”问世了
  8. 《Cortex-M0权威指南》之体系结构---栈空间操作
  9. java 包装类详解_解析包装类
  10. 经济学入门书籍选择参考(业余爱好者)
  11. vue根据文件名后缀区分
  12. 高中数学必修一,集合知识概念运算归纳总结
  13. Windowns11并未完全抛弃IE内核,可向下兼容至IE7
  14. Arcmap 安装完后使用出现visual fortran run-time error的解决方法
  15. 编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算
  16. golang语言的入门基础,及window和linux系统上环境的搭配及运行
  17. rootless宁静机制_乘风破浪的姐姐 英文名决定了你的江湖地位!
  18. 《算法通关之路》-数学之美
  19. Basler相机学习一
  20. 《Head First设计模式》读书笔记

热门文章

  1. 汉码科技仓储管理信息化解决方案,助力生产企业提升仓储管理水平,提升企业竞争力,提升产品形象
  2. OpenCV——透视变换
  3. 新来的妹纸 rm -rf 把公司整个数据库删没了,整个项目组慌了~
  4. linux xorg占用显存过大
  5. 为什么Android系统比ios系统卡?
  6. opengl win32窗口的建立
  7. 二级干线熔接机选什么好?TFN FT-3 二级干线专用光纤熔接机
  8. XJOI_3571_求十位数
  9. 输出三位数的个十百位数
  10. bind9 dlz mysql_Bind9和MySQL DLZ缓冲区错误