Verilog刷题笔记38

题目:Assume that you have two 8-bit 2’s complement numbers, a[7:0] and b[7:0]. These numbers are added to produce s[7:0]. Also compute whether a (signed) overflow has occurred.
在这里插入图片描述
解题:

module top_module (
    input [7:0] a,
    input [7:0] b,
    output [7:0] s,
    output overflow
); //
	assign s=a+b;
    assign overflow=(~a[7]&~b[7]&s[7])|(a[7]&b[7]&~s[7]);
    // assign s = ...
    // assign overflow = ...

endmodule

结果正确:
在这里插入图片描述
知识点补充:
~a[7] && ~b[7] && s[7]:这表示在进行加法运算时,如果两个操作数 a 和 b 的最高位(即第7位)都为0(表示正数),而结果 s 的最高位为1(表示负数),那么就发生了正正相加的符号溢出。这种情况下,因为加法的两个正数相加却得到了负数的结果,说明结果超出了能够用这样的位表示的范围,即发生了溢出。
a[7] && b[7] && ~s[7]:这表示在进行加法运算时,如果两个操作数 a 和 b 的最高位(即第7位)都为1(表示负数),而结果 s 的最高位为0(表示正数),那么就发生了负负相加的符号溢出。这种情况下,因为加法的两个负数相加却得到了正数的结果,说明结果超出了能够用这样的位表示的范围,即发生了溢出。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 03:38:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 03:38:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 03:38:01       87 阅读
  4. Python语言-面向对象

    2024-03-24 03:38:01       96 阅读

热门阅读

  1. Go语言介绍

    2024-03-24 03:38:01       50 阅读
  2. 如何快速上手vue?

    2024-03-24 03:38:01       45 阅读
  3. vivado 布线、路线_设计

    2024-03-24 03:38:01       49 阅读
  4. 素数问题 python

    2024-03-24 03:38:01       38 阅读
  5. 家庭影院组成原理

    2024-03-24 03:38:01       41 阅读
  6. openSSH学习

    2024-03-24 03:38:01       46 阅读
  7. 架构设计常用到的10种设计模

    2024-03-24 03:38:01       38 阅读
  8. 05- 还在双引号添加字符串?- 文本块

    2024-03-24 03:38:01       46 阅读