data/full_repos/permissive/469669161/verilog/rtl/iki_bit_adimli_bolucu.v
1: b"%Error: data/full_repos/permissive/469669161/verilog/rtl/iki_bit_adimli_bolucu.v:49: Duplicate declaration of signal: 'bolum'\n                                                                                   : ... note: ANSI ports must have type declared with the I/O (IEEE 1800-2017 23.2.2.2)\n    reg [31:0] bolum, bolum_next;\n               ^~~~~\n        data/full_repos/permissive/469669161/verilog/rtl/iki_bit_adimli_bolucu.v:27: ... Location of original declaration\n    output      [31:0]      bolum,\n                            ^~~~~\n%Error: data/full_repos/permissive/469669161/verilog/rtl/iki_bit_adimli_bolucu.v:50: Duplicate declaration of signal: 'kalan'\n    reg [31:0] kalan, kalan_next;\n               ^~~~~\n        data/full_repos/permissive/469669161/verilog/rtl/iki_bit_adimli_bolucu.v:28: ... Location of original declaration\n    output      [31:0]      kalan,\n                            ^~~~~\n%Error: Exiting due to 2 error(s)\n"
module iki_bit_adimli_bolucu(
    input                   rst_g,
    input       [31:0]      a_g,
    input       [31:0]      b_g,
    input                   istek,
    input                   isaretli,
    input                   overflow,
    input                   divbyzero,
    input                   clk,
    output      [31:0]      bolum,
    output      [31:0]      kalan,
    output      reg         bitti=0
    );
    

    
    localparam EVET = 1'b1;
    localparam HAYIR = 1'b0;
    

    localparam BOLME_BASLANGIC = 32'b1000_0000_0000_0000_0000_0000_0000_0000;
    
    reg [31:0] A, A_next;
    reg [63:0] B, B_next;
    reg [31:0] bolum, bolum_next;
    reg [31:0] kalan, kalan_next;
    

    reg [31:0] bolme_basamagi, bolme_basamagi_next = BOLME_BASLANGIC;
    wire [31:0] ikinci_bolme_basamagi = {1'b0, bolme_basamagi[31:1]};
    
    reg hesaplaniyor = HAYIR, hesaplaniyor_next = HAYIR; 
    reg sonuc_ver = HAYIR, sonuc_ver_next = HAYIR;
    
    reg bitti_next = 0;
    
    
    wire A_negatif_mi = isaretli & a_g[31];
    wire B_negatif_mi = isaretli & b_g[31];
    
    wire sonuc_negatif_mi = A_negatif_mi ^ B_negatif_mi;
    

    wire [32:0] ilk_cikarma_sonucu = A - B[31:0];
    wire ilk_cikarma_sonucu_negatif_mi = ilk_cikarma_sonucu[32];
    wire ilk_cikarma_b_de_tasma_var_mi = |B[63:32];

    wire ilk_cikarmayi_yap = ~ (ilk_cikarma_sonucu_negatif_mi | ilk_cikarma_b_de_tasma_var_mi);

    wire [31:0] A_ilk_cikarma_sonrasi = ( ilk_cikarmayi_yap ? ilk_cikarma_sonucu[31:0] : A );
    

    wire [32:0] ikinci_cikarma_sonucu = A_ilk_cikarma_sonrasi - B[32:1];
    wire ikinci_cikarma_sonucu_negatif_mi = ikinci_cikarma_sonucu[32];
    wire ikinci_cikarma_b_de_tasma_var_mi = |B[63:33];
    wire ikinci_cikarmayi_yap = ~ (ikinci_cikarma_sonucu_negatif_mi | ikinci_cikarma_b_de_tasma_var_mi);

    wire [31:0] A_ikinci_cikarma_sonrasi = ( ikinci_cikarmayi_yap ? ikinci_cikarma_sonucu[31:0] : A_ilk_cikarma_sonrasi );
    
    
    always@ (*) begin
        bitti_next = HAYIR;
        hesaplaniyor_next = hesaplaniyor;
        A_next = A;
        B_next = B;
        bolme_basamagi_next = bolme_basamagi;
        sonuc_ver_next = sonuc_ver;
        kalan_next = kalan;
        bolum_next = bolum;
        if (hesaplaniyor) begin
            hesaplaniyor_next = ~bolme_basamagi[1];
            sonuc_ver_next = bolme_basamagi[1];
            bitti_next = HAYIR;
            A_next = A_ikinci_cikarma_sonrasi;
            B_next = B >> 2;
            bolme_basamagi_next = bolme_basamagi >> 2;
            case ( {ilk_cikarmayi_yap, ikinci_cikarmayi_yap} )
                2'b00:
                    bolum_next = bolum;
                2'b01:
                    bolum_next = bolum ^ ikinci_bolme_basamagi;
                2'b10:
                    bolum_next = bolum ^ bolme_basamagi;
                2'b11:
                    bolum_next = bolum ^ bolme_basamagi ^ ikinci_bolme_basamagi;
            endcase
        end
        else if(sonuc_ver) begin
            hesaplaniyor_next = HAYIR;
            sonuc_ver_next = HAYIR;
            bitti_next = EVET;
            if (divbyzero) begin
                bolum_next = 32'hffffffff;
                kalan_next = a_g;
            end else if (overflow && isaretli) begin
                bolum_next = 32'h80000000;
                kalan_next = 32'h0;
            end
            else begin
                bolum_next = sonuc_negatif_mi? -bolum: bolum;
                kalan_next = A_negatif_mi? -A: A;
            end
        end
        else if (istek) begin
            hesaplaniyor_next = EVET;
            sonuc_ver_next = HAYIR;
            bitti_next = HAYIR;
            A_next = ( A_negatif_mi ? -a_g : a_g );
            B_next = ( B_negatif_mi ? {1'd0, -b_g, 31'd0} : {1'd0, b_g, 31'd0} );
            bolme_basamagi_next = BOLME_BASLANGIC;
            kalan_next = 32'd0;
            bolum_next = 32'd0;
        end
    end
    
    always@ (posedge clk) begin
        if(rst_g) begin
            A <= 0;
            B <= 0;
            kalan <= 0;
            bolum <= 0;
            bitti <= 0;
            hesaplaniyor <= 0;
            sonuc_ver <= 0;
            bolme_basamagi <= 0;
        end else begin
            A <= A_next;
            B <= B_next;
            kalan <= kalan_next;
            bolum <= bolum_next;
            bitti <= bitti_next;
            hesaplaniyor <= hesaplaniyor_next;
            sonuc_ver <= sonuc_ver_next;
            bolme_basamagi <= bolme_basamagi_next;
        end
    end
    
    
    
endmodule
module iki_bit_adimli_bolucu(
    input                   rst_g,
    input       [31:0]      a_g,
    input       [31:0]      b_g,
    input                   istek,
    input                   isaretli,
    input                   overflow,
    input                   divbyzero,
    input                   clk,
    output      [31:0]      bolum,
    output      [31:0]      kalan,
    output      reg         bitti=0
    );

    

    
    localparam EVET = 1'b1;
    localparam HAYIR = 1'b0;
    

    localparam BOLME_BASLANGIC = 32'b1000_0000_0000_0000_0000_0000_0000_0000;
    
    reg [31:0] A, A_next;
    reg [63:0] B, B_next;
    reg [31:0] bolum, bolum_next;
    reg [31:0] kalan, kalan_next;
    

    reg [31:0] bolme_basamagi, bolme_basamagi_next = BOLME_BASLANGIC;
    wire [31:0] ikinci_bolme_basamagi = {1'b0, bolme_basamagi[31:1]};
    
    reg hesaplaniyor = HAYIR, hesaplaniyor_next = HAYIR; 
    reg sonuc_ver = HAYIR, sonuc_ver_next = HAYIR;
    
    reg bitti_next = 0;
    
    
    wire A_negatif_mi = isaretli & a_g[31];
    wire B_negatif_mi = isaretli & b_g[31];
    
    wire sonuc_negatif_mi = A_negatif_mi ^ B_negatif_mi;
    

    wire [32:0] ilk_cikarma_sonucu = A - B[31:0];
    wire ilk_cikarma_sonucu_negatif_mi = ilk_cikarma_sonucu[32];
    wire ilk_cikarma_b_de_tasma_var_mi = |B[63:32];

    wire ilk_cikarmayi_yap = ~ (ilk_cikarma_sonucu_negatif_mi | ilk_cikarma_b_de_tasma_var_mi);

    wire [31:0] A_ilk_cikarma_sonrasi = ( ilk_cikarmayi_yap ? ilk_cikarma_sonucu[31:0] : A );
    

    wire [32:0] ikinci_cikarma_sonucu = A_ilk_cikarma_sonrasi - B[32:1];
    wire ikinci_cikarma_sonucu_negatif_mi = ikinci_cikarma_sonucu[32];
    wire ikinci_cikarma_b_de_tasma_var_mi = |B[63:33];
    wire ikinci_cikarmayi_yap = ~ (ikinci_cikarma_sonucu_negatif_mi | ikinci_cikarma_b_de_tasma_var_mi);

    wire [31:0] A_ikinci_cikarma_sonrasi = ( ikinci_cikarmayi_yap ? ikinci_cikarma_sonucu[31:0] : A_ilk_cikarma_sonrasi );
    
    
    always@ (*) begin
        bitti_next = HAYIR;
        hesaplaniyor_next = hesaplaniyor;
        A_next = A;
        B_next = B;
        bolme_basamagi_next = bolme_basamagi;
        sonuc_ver_next = sonuc_ver;
        kalan_next = kalan;
        bolum_next = bolum;
        if (hesaplaniyor) begin
            hesaplaniyor_next = ~bolme_basamagi[1];
            sonuc_ver_next = bolme_basamagi[1];
            bitti_next = HAYIR;
            A_next = A_ikinci_cikarma_sonrasi;
            B_next = B >> 2;
            bolme_basamagi_next = bolme_basamagi >> 2;
            case ( {ilk_cikarmayi_yap, ikinci_cikarmayi_yap} )
                2'b00:
                    bolum_next = bolum;
                2'b01:
                    bolum_next = bolum ^ ikinci_bolme_basamagi;
                2'b10:
                    bolum_next = bolum ^ bolme_basamagi;
                2'b11:
                    bolum_next = bolum ^ bolme_basamagi ^ ikinci_bolme_basamagi;
            endcase
        end
        else if(sonuc_ver) begin
            hesaplaniyor_next = HAYIR;
            sonuc_ver_next = HAYIR;
            bitti_next = EVET;
            if (divbyzero) begin
                bolum_next = 32'hffffffff;
                kalan_next = a_g;
            end else if (overflow && isaretli) begin
                bolum_next = 32'h80000000;
                kalan_next = 32'h0;
            end
            else begin
                bolum_next = sonuc_negatif_mi? -bolum: bolum;
                kalan_next = A_negatif_mi? -A: A;
            end
        end
        else if (istek) begin
            hesaplaniyor_next = EVET;
            sonuc_ver_next = HAYIR;
            bitti_next = HAYIR;
            A_next = ( A_negatif_mi ? -a_g : a_g );
            B_next = ( B_negatif_mi ? {1'd0, -b_g, 31'd0} : {1'd0, b_g, 31'd0} );
            bolme_basamagi_next = BOLME_BASLANGIC;
            kalan_next = 32'd0;
            bolum_next = 32'd0;
        end
    end
    
    always@ (posedge clk) begin
        if(rst_g) begin
            A <= 0;
            B <= 0;
            kalan <= 0;
            bolum <= 0;
            bitti <= 0;
            hesaplaniyor <= 0;
            sonuc_ver <= 0;
            bolme_basamagi <= 0;
        end else begin
            A <= A_next;
            B <= B_next;
            kalan <= kalan_next;
            bolum <= bolum_next;
            bitti <= bitti_next;
            hesaplaniyor <= hesaplaniyor_next;
            sonuc_ver <= sonuc_ver_next;
            bolme_basamagi <= bolme_basamagi_next;
        end
    end
    
    
    
endmodule