March 24th, 2018

Делитель

Взять все, да и поделить
(c)


Деление является довольно сложной операцией для FPGA. Если мы просто напишем в коде что-то типа такого:

module divider(
        input wire rst_n,
        input wire clk,
        input wire[31: 0] in1,
        input wire[31: 0] in2,
        output reg[32: 0] res
);
 reg[31: 0] in1_reg;
 reg[31: 0] in2_reg;
 
 always@(posedge clk, negedge rst_n)
 begin
     if(!rst_n)
     begin
          res <= 0;
          in1_reg <= 0;
          in2_reg <= 0;
     end
     else
     begin
          in1_reg <= in1;
          in2_reg <= in2;
          res <= in1_reg / in2_reg;
     end;
 end
endmodule


Collapse )