Verilog

您所在的位置:网站首页 verilog二进制整数除法器 Verilog

Verilog

2023-11-11 21:36| 来源: 网络整理| 查看: 265

参考: https://blog.csdn.net/rill_zhen/article/details/7961937 https://www.cnblogs.com/moranhuishou0315/p/11344725.html

Verilog -- 任意整数除法器

在不使用除法的前提下,如何设计一个快速高效的除法器?

在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法实现除数为任意整数的除法,很大程度上限制了它的使用领域。并且多数综合工具对于除运算指令不能综合出令人满意的结果,有些甚至不能给予综合。即使可以综合,也需要比较多的资源。

最简单的方法就是减法实现除法器(比如十进制中的a/b,可先比较a与b的大小,如果a>b,则商加1,aid2(b的低位扩展32位) id1 --> id3(a左移一位) id2 --> id4{a>=b?} id3 --> id4 id4 -- 是 --> id5(a = a-b+1) id5 -->id6{移位次数id6 id6 --是--> id3 id6 --否--> id7(输出a)

最后输出的商=a高32位,余数=a低32位

module int_div ( input[31:0] a, input[31:0] b, output reg [31:0] yshang, output reg [31:0] yyushu ); reg[31:0] tempa; reg[31:0] tempb; reg[63:0] temp_a; reg[63:0] temp_b; integer i; always @(a or b) begin tempa


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3