二进制除法

二进制除法中包括除法和模2除法,两个计算并不同

一、除法
每一步做减法

二、模2除法
每一步做异或

参考文章1链接:https://blog.csdn.net/e891377/article/details/85036212
参考文章2链接:https://blog.csdn.net/u010190210/article/details/80707698

以下是一个简单的Verilog代码实现二进制除法: ```verilog module binary_divide(dividend, divisor, quotient, remainder); input [7:0] dividend; // 被除数,8位二进制数 input [7:0] divisor; // 除数,8位二进制数 output [7:0] quotient; // 商,8位二进制数 output [7:0] remainder; // 余数,8位二进制数 reg [7:0] temp_dividend; // 存储被除数 reg [7:0] temp_divisor; // 存储除数 reg [7:0] temp_quotient; // 存储商 reg [7:0] temp_remainder; // 存储余数 reg [3:0] i; // 循环计数器 initial begin temp_dividend = dividend; temp_divisor = divisor; temp_quotient = 8'b0; // 初始化商为0 temp_remainder = temp_dividend; // 初始化余数为被除数 end always @(*) begin for (i = 3; i >= 0; i = i - 1) begin temp_remainder = temp_remainder << 1; // 余数左移1位 if (temp_remainder >= temp_divisor) begin // 如果余数大于等于除数 temp_remainder = temp_remainder - temp_divisor; // 余数减去除数 temp_quotient[i] = 1; // 商的当前位为1 end end end assign quotient = temp_quotient; assign remainder = temp_remainder; endmodule ``` 这个代码使用了一个简单的循环来计算商和余数。首先,被除数和除数被存储在reg类型的变量中。然后,商和余数都被初始化为0和被除数。接下来,使用一个循环计算商和余数。在每次循环中,余数左移1位,如果余数大于等于除数,则将余数减去除数,并将商的当前位设置为1。最终,计算得到的商和余数被输出。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值