⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shift_div.v

📁 基于FPGA
💻 V
字号:
module shift_div(clk,Enable,a,b,p,over);
  parameter size=32;
  input clk;
  input Enable;
  input [2*size:1]a;
  input [size:1]b;
  output [size:1]p;
  output over;
  reg over;//结束标志寄存器
  reg [2*size:1]tempa;//除数寄存器
  reg [size:1]tempb;//被除数寄存器
  reg [size:1]tempc;//余数寄存器
  reg [size:1]p;//商寄存器
  reg [size:1]temp;//商缓存寄存器
  reg c;//当前商数
  integer i;

  always@(posedge clk)
  if(!Enable)
    begin
      if(i==0)
        begin
          over<=1'b1;
          i<=2*size+1;
          //p<=temp;//结果不四舍五入
          p<=(tempc<tempb)?temp:(temp+1'b1);//结果四舍五入
          tempa<=a;
          tempb<=b;        
          tempc<=0;
          temp<=0;
          c<=1'b0;
        end
      else if(i>0) 
             begin
               if(tempc<tempb) 
                 begin
                   c=1'b0;
                   tempc<=(tempc<<1)+tempa[2*size];
                 end 
               else
                 begin
                   c=1'b1;
                   tempc<=((tempc-tempb)<<1)+tempa[2*size]; 
                 end
             tempa<=tempa<<1;
             temp<=(temp<<1)+c;
             i<=i-1;
             over<=1'b0;
             end
    end
  else 
    begin
      p<=0;
    end

endmodule

⌨️ 快捷键说明

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