【GAOPS055】verilog 乘法、除法和取余

这篇具有很好参考价值的文章主要介绍了【GAOPS055】verilog 乘法、除法和取余。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

乘法硬件原理

结论

可以将乘法A x B转为A的移位相加。
利用 乘 2 n 就是左移 n 位的特性 乘2^n就是左移n位的特性 2n就是左移n位的特性,将数拆分为 2 n 2^n 2n表示

思路1

原始列竖式计算方法ref例2.9
【GAOPS055】verilog 乘法、除法和取余

思路2

B总是可以拆分为: B = ( a n 2 n + a n − 1 2 n − 1 + . . . + a 1 2 1 + a 0 2 0 ) B=(a_n2^n+a_{n-1}2^{n-1}+...+a_12^1+a_02^0) B=(an2n+an12n1+...+a121+a020)
  例如:B=4’d10= 1 ∗ 2 3 + 0 ∗ 2 2 + 1 ∗ 2 1 + 0 ∗ 2 0 1*2^3+0*2^2+1*2^1+0*2^0 123+022+121+020=4’b1010

举例

3 ∗ 10 = 3 ∗ ( 4 ′ b 1010 ) = 3 ∗ ( 2 3 + 2 1 ) = 3 < < 3 + 3 < < 1 = 24 + 6 = 30 3*10=3*(4'b1010)=3*(2^3+2^1)=3<<3+3<<1=24+6=30 310=3(4b1010)=3(23+21)=3<<3+3<<1=24+6=30

编码

思路1采用原始手算,列竖式思路
【GAOPS055】verilog 乘法、除法和取余

思路2采用移位思路:
【GAOPS055】verilog 乘法、除法和取余

仿真

【GAOPS055】verilog 乘法、除法和取余

综合

思路1综合如下:
【GAOPS055】verilog 乘法、除法和取余

思路2综合如下:
【GAOPS055】verilog 乘法、除法和取余
思路1原始竖式方法的资源:
【GAOPS055】verilog 乘法、除法和取余

思路2移位方法的资源:
【GAOPS055】verilog 乘法、除法和取余

搞半天,原始的方法占资源还少,离谱。

除法硬件原理

我是参考这这个博主的这篇,他写的很好可以先看。
就是手算的思路,改成了硬件方便的实现。移位相减。

verilog代码

【GAOPS055】verilog 乘法、除法和取余

仿真结果

【GAOPS055】verilog 乘法、除法和取余

资源占用

【GAOPS055】verilog 乘法、除法和取余
【GAOPS055】verilog 乘法、除法和取余
可以看到资源占不少啊!并且时序也不好。文章来源地址https://www.toymoban.com/news/detail-444745.html

到了这里,关于【GAOPS055】verilog 乘法、除法和取余的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【计算机组成原理】实验1:定点加法和定点乘法(Verilog)中海大

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

    2024年02月07日
    浏览(37)
  • 大数运算(加法,减法,乘法,除法)

    目录 一.大数加法 1.题目描述 2.问题分析 3.代码实现 二.大数减法 1.题目描述 2.问题分析 3.代码实现 三.大数乘法 1.题目描述 2.问题分析 3.代码实现 四.大数除法 1.题目描述 2.问题分析 3.代码实现 以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

    2024年02月07日
    浏览(47)
  • MATLAB数值计算——矩阵运算乘法、除法、乘方

    矩阵是线性代数的基本单元 矩阵含有M行N列数值 矩阵中的元素可以是实数或复数 矩阵相关的基本运算:加、减、内积、逆矩阵、转置、线性方程式、特征值、特征向量、矩阵分解 运算符: 注:矩阵的乘法运算中没有乘法交换律 运算符: * 注: x=B/A是方程x A=B的解。即x=A的逆

    2024年01月16日
    浏览(39)
  • 高精度加法,减法,乘法,除法(下)(C语言)

    前言 上一篇博客我们分享了高精度加法,减法,这一期我将为大家讲解高精度乘法和高精度除法。那让我们开始吧! 对加法和减法感兴趣的话就点我 让我们想想我们平时做数学时遇见乘法是怎么做的。以下图为例。 高精度乘法也是这样的一个思路,首先我们先把a和b的值储存

    2024年02月04日
    浏览(72)
  • 高精度加法,减法,乘法,除法(上)(C语言)

    前言 本篇内容介绍加法和减法,如果想看乘法和除法就点这里-高精度乘法,除法 加,减,乘,除这些运算我们自然信手捏来,就拿加法来说,我们要用c语言编程算a+b的和,只需让sum = a+b即可,可是这是局限的,我们都知道int的表示的最大值为2147483647(32位和64位机器)。但

    2024年02月03日
    浏览(44)
  • Verilog | 除法--试商法

    采用试商法实现除法运算,对于32位的除法,需要至少32个时钟周期才能得到除法结果。下面是试商法的一般过程。 设被除数是m,除数是n,商保存在s中,被除数的位数是k,其计算步骤如下(为了便于说明,在此处将所有数据的最低位称为第1位,而不称为第0位)。 1、取出被

    2024年02月11日
    浏览(27)
  • Verilog FPGA实现除法——整除与四舍五入

    Verilog FPGA实现除法——整除与四舍五入 在FPGA开发中,实现除法计算是非常必要的。本文将介绍如何使用Verilog语言实现除法计算,包括整除和四舍五入两种情况。 整除实现 在Verilog中,整除的实现可以通过比较被除数是否大于等于除数来进行。具体步骤如下: 将除数与被除数

    2024年02月08日
    浏览(37)
  • 「Verilog学习笔记」移位运算与乘法

    专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网   分析  1、在硬件中进行乘除法运算是比较消耗资源的一种方法,想要在不影响延迟并尽量减少资源消耗,必须从硬件的特点上进行设计。根据寄存器的原理,由于是二进制,所以

    2024年02月05日
    浏览(38)
  • Verilog|有无符号加法与乘法运算

    一、无符号: 直接运算 二、有符号与无符号: 强制当作无符号运算 如c=a+b,a、b四位,c五位,计算时Verilog会将a和b扩展到五位再做加法,如果ab中有无符号数,则展宽会按照无符号数来,就是高位补0,因此有符号数结果将不正确。 解决:$signed(),c=a+$signed(b),扩展会按照有符

    2024年02月14日
    浏览(40)
  • FPGA | Verilog 实现矩阵乘法(附源码)

    使用 for语句实现,后续继续做并行优化… 最近需要用 verilog写一个矩阵乘法的简单模块,本来想着网上随便搜一个复制粘贴一下,却发现居然找不到有源码的(好多还上传到了CSDN资源),罢了罢了,照着Github的自己写一个吧。 我写的是 3 * 3 的、数值位宽为 [3:0] (0-15)的矩

    2024年02月11日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包