基4 SRT除法器

目录

一、冗余数字集与冗余度

二、QDS表

三、被除数与除数归一化

四、部分和表示

五、On-the-Fly Conversion

六、后处理

七、Verilog设计


终于有时间来更新基4 SRT算法了,很是抱歉,实在太忙了。

在这之前已经有连续5篇分别对主要概念进行了说明,为了更好的了解,进行了先分后总的介绍,主要在以下五篇:

  1. 冗余数字集与冗余度
  2. Roberson图与overlap
  3. PD图
  4. 预移位与连“符号位”检测
  5. On-the-Fly Conversion

一、冗余数字集与冗余度

基4 SRT算法此处选择冗余数字集为{-2,-1,0,1,2},冗余度为2/3。

参考:

冗余数字集与冗余度:https://zhuanlan.zhihu.com/p/341575538

二、QDS

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个于Verilog的SRT法器的实现,其中包括了除数和被除数的输入,商和余数的输出,以及状态机的控制逻辑。 ```verilog module srt_divider(dividend, divisor, quotient, remainder, clk, rst); parameter WIDTH = 8; // 定义数据宽度 input [WIDTH-1:0] dividend; // 被除数 input [WIDTH-1:0] divisor; // 除数 output reg [WIDTH-1:0] quotient; // 商 output reg [WIDTH-1:0] remainder; // 余数 input clk, rst; // 时钟和复位信号 reg [WIDTH-1:0] A, Q, M; // 寄存器A、Q、M reg [2*WIDTH-1:0] MQ; // 寄存器MQ reg [2*WIDTH:0] count; // 计数器 reg [WIDTH:0] shift; // 移位寄存器 reg [1:0] state; // 状态机状态 // 状态机状态定义 parameter IDLE = 2'b00; parameter SHIFT = 2'b01; parameter SUBTRACT = 2'b10; always @(posedge clk or posedge rst) begin if (rst) begin A <= 0; Q <= 0; M <= 0; MQ <= {dividend, divisor}; count <= 0; shift <= 0; state <= IDLE; end else begin case (state) IDLE: begin A <= MQ[2*WIDTH-1:WIDTH]; Q <= MQ[WIDTH-1:0]; M <= MQ[2*WIDTH-1:WIDTH]; quotient <= 0; remainder <= 0; count <= 0; shift <= 0; state <= SHIFT; end SHIFT: begin if (shift == WIDTH) begin state <= SUBTRACT; end else begin shift <= shift + 1; A <= {A, Q[WIDTH-1]}; Q <= {Q[WIDTH-2:0], 0}; end end SUBTRACT: begin if (A[WIDTH-1:0] >= divisor) begin A <= A - divisor; Q[WIDTH-1] <= 1; end else begin Q[WIDTH-1] <= 0; end count <= count + 1; if (count == WIDTH) begin remainder <= A[WIDTH-1:0]; quotient <= Q; state <= IDLE; end else begin A <= {A[WIDTH-2:0], 0}; Q <= {Q[WIDTH-2:0], 0}; shift <= shift - 1; state <= SHIFT; end end endcase end end endmodule ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值