Verilog|有无符号加法与乘法运算

这篇具有很好参考价值的文章主要介绍了Verilog|有无符号加法与乘法运算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、无符号:

直接运算

二、有符号与无符号:

强制当作无符号运算

如c=a+b,a、b四位,c五位,计算时Verilog会将a和b扩展到五位再做加法,如果ab中有无符号数,则展宽会按照无符号数来,就是高位补0,因此有符号数结果将不正确。

解决:$signed(),c=a+$signed(b),扩展会按照有符号数的方式扩展,高位补符号位(1负,0正)。

三、乘法:

原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。

如:八位数

[+1]原 = 0000 0001

[-1]原 = 1000 0001

反码:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

补码:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。 (即在反码的基础上+1)

[+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

正负数相乘,负数要取补码

1、a与b均为正数

假设a=+5,b=+3

有符号数乘无符号数,FPGA学习,fpga开发,Powered by 金山文档

直接相乘,然后用最高位补齐8位(标蓝色的为扩展的符号位),再相加。又因为正数的补码就是其本身,所以得到结果00001111,化为十进制就是+15,正确。

2、a为正数,b为负数

假设a=+5,b=-3,则a的补码为0101,b的补码为1101。

有符号数乘无符号数,FPGA学习,fpga开发,Powered by 金山文档

3、a为负数,b为正数

有符号数乘无符号数,FPGA学习,fpga开发,Powered by 金山文档

4、a与b均为负数

有符号数乘无符号数,FPGA学习,fpga开发,Powered by 金山文档

先补再乘,补的是两个乘数,符号位乘乘数时,整体取反加一。

参考:有符号数乘法运算_ZZZTTTCCC123的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-629813.html

到了这里,关于Verilog|有无符号加法与乘法运算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 有符号数和无符号数左移和右移

    主要是有符号数的左移。 有的说不管符号位,直接左移,所以可以一会正数一会复数 https://bbs.csdn.net/topics/391075092 有的说符号位不动,其他来左移 不明白了。。。。 https://blog.csdn.net/hnjzsyjyj/article/details/119721014 https://wenku.baidu.com/view/6e31935402f69e3143323968011ca300a6c3f60d.html? wkts =1

    2024年02月01日
    浏览(29)
  • 【计算机组成原理·笔记】有符号数和无符号数

    有符号数对比无符号数要留出一位来表示符号。 机器数:符号数字化 带 + - 号的数字 0正1负,符号位和数值位用 , 号相隔 注意: [ + 0 ] 原 ≠ [ − 0 ] 原 [+0]_原 ne [-0]_原 [ + 0 ] 原 ​  = [ − 0 ] 原 ​ 补数 :绝对值之和为模的两数互补 一正一负 正数补数即自身 补码 :原码的

    2024年02月08日
    浏览(39)
  • FPGA中有符号数的相乘

    ⭐️作者简介: 小瑞同学 ,主要学习 FPGA、信号处理、通信 等。 🍎个人主页:小瑞同学的博客主页 🌻个人信条:越努力,越幸运! ⏰日期:2023.10.23 📖文章内容概述:介绍了两个有符号数相乘在硬件中的实现原理,给出了verilog参考程序和相应的testbench代码,进行了简单

    2024年04月28日
    浏览(20)
  • 【数字IC/FPGA】什么是无符号数?什么是有符号数?

    虽然在日常生活中,我们已经习惯了使用10进制数字,但在由数字电路构成的数字世界中,2进制才是效率更高的选择。 10进制(decimal)计数法(一般也叫阿拉伯计数法)是在日常生活中使用得最多的一种计数法,它是一种 位值记数法 (positional notation)。位值计数法的意思是

    2024年04月09日
    浏览(33)
  • 算法通关村十一关 | 位运算实现加法和乘法

    在计算机中,位运算的效率要比加减乘除的效率更高,因此在高性能软件中源码中大量使用,计算机里各种运算基本上都是位运算。 学习下面内容之前建议先学习位运算规则:算法通关村十一关 | 位运算的规则_我爱学算法的博客-CSDN博客 题目: LeetCode371 给你两个整数a和b,

    2024年02月11日
    浏览(35)
  • 矩阵与向量的运算:矩阵的加法、数乘与乘法

    作者:禅与计算机程序设计艺术 \\\"矩阵与向量的运算\\\"是机器学习领域的一个基础课。在实际应用中,许多算法都需要涉及到矩阵运算。理解并掌握这种运算对于解决复杂的问题和优化模型性能至关重要。本文将带您快速了解矩阵的概念,以及如何进行矩阵运算。 \\\"行列式\\\"是指

    2024年02月11日
    浏览(28)
  • PTA 习题3.6 一元多项式的乘法与加法运算

    设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式

    2024年02月07日
    浏览(29)
  • 【计算机组成原理】实验1:定点加法和定点乘法(Verilog)中海大

    【计算机组成原理】实验1         使用Verilog语言实现定点加法和定点乘法,测试平台:Vivado 1. 代码: ①定点加法: adder.v: testbench.v:   ② 定点乘法: multiply.v: testbench.v:   ②仿真图像及其分析: 1、加法器: 2、乘法器:          当mult_end=1时 ,product的值等于两个操

    2024年02月07日
    浏览(28)
  • SQL 算术运算符:加法、减法、乘法、除法和取模的用法

    存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活和通用。 创建存储过程的语法如下: 执行存储过程的语法如下:

    2024年02月05日
    浏览(47)
  • 题02-线性结构2 一元多项式的乘法与加法运算(C语言)

    设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包