booth_mul.v

来自「ARM7_verilog代码」· Verilog 代码 · 共 62 行

V
62
字号
//---------------------------------------// Lib  : boothmul// Unit : Booth_Mul//---------------------------------------module Booth_Mul(M, Q, contrl, Ready, A);  input [31:0] M;  input [31:0] Q;  input contrl;  output Ready;  output [31:0] A;  reg Ready;  reg M;  reg Q;  reg [31:0] A;  task proc_shift_right;  begin : S0    P <= Q(0);    temp <= A(0);    for i<=0 to 30;       A(i+1)<=A(i);    end    if (A(30) ==1) begin        A(31) <= 1;    end    else begin       A(31) <= 0;    end  endtask  task proc_Booth_Mul_D0;  begin    if (Q(0)==1 && P ==0;) begin      A(31,0)<=A(31,0)-M(31,0);    end    else begin      if (Q(0)==0 && P==1;) begin        A(31,0) <= A(31,0) + M(31,0);      end    end    proc_shift_right;    N <= N-1;    if (!(N == 0;    )) begin      proc_Booth_Mul_D0;    end  end  endtask  always @(M or Q or contrl)  begin : S0    A <= 0;    P <= 0;    N <= 32;    proc_Booth_Mul_D0;  endendmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?