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

📄 div1.v

📁 华大机顶盒源码(包括所有源代码).rar
💻 V
字号:
module div1(ResetN, CLKM, dividend, divisor, quotient, DivEn, Quo_Valid);

input         ResetN;
input         CLKM;

input  [32:0] dividend;
input  [11:0] divisor;
input         DivEn;

output [32:0] quotient;
output        Quo_Valid;

reg [32:0] quotient;
reg [32:0] remainder;
reg [1:0]  cur_st;
reg [5:0]  i;
reg        DivEn_reg;
reg        Quo_Valid;

parameter IDLE = 2'b00, INIT = 2'b01, LSHIFT = 2'b11, COMPARE = 2'b10;

wire DivEn_edge = DivEn & ~DivEn_reg;

always @(posedge CLKM or negedge ResetN)
begin
if(!ResetN) 
  DivEn_reg <= 0;
else
  DivEn_reg <= DivEn;
end

always @(posedge CLKM or negedge ResetN)
begin
if(!ResetN) begin
   quotient <= 0;
   remainder <= 0;
   cur_st <= 0;
   i <= 0;
   Quo_Valid <= 0;
end 
else begin
   case (cur_st)
   IDLE : begin
          if(DivEn_edge)
            cur_st <= INIT;
          else
            cur_st <= IDLE;
          quotient <= quotient;
          remainder <= remainder;
          i <= 0;
          Quo_Valid <= Quo_Valid;
          end
   INIT : begin
          cur_st <= LSHIFT;
          quotient <= dividend;
          remainder <= 0;
          i <= 0;
          Quo_Valid <= 0;
          end
   LSHIFT : begin
            cur_st <= COMPARE;
            quotient[32:1] <= quotient[31:0];
            quotient[0] <= 0;
            remainder[11:1] <= remainder[10:0];
            remainder[0] <= quotient[32];
            i <= i+1;
            Quo_Valid <= 0;
            end
   COMPARE : begin
             if(i==33) begin
               cur_st <= IDLE;
               Quo_Valid <= 1;
             end
             else begin
               cur_st <= LSHIFT; 
               Quo_Valid <= 0;
             end
             if(remainder>=divisor) begin
                remainder <= remainder - divisor;
                quotient[0] <= 1;
             end
             i <= i;
             end
   endcase
end
end

endmodule


⌨️ 快捷键说明

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