OpenCores
URL https://opencores.org/ocsvn/hdl-deflate/hdl-deflate/trunk

Subversion Repositories hdl-deflate

[/] [hdl-deflate/] [trunk/] [deflate.v] - Diff between revs 5 and 6

Show entire file | Details | Blame | View Log

Rev 5 Rev 6
Line 1... Line 1...
// File: deflate.v
// File: deflate.v
// Generated by MyHDL 0.10
// Generated by MyHDL 0.10
// Date: Sun Dec 23 19:31:53 2018
// Date: Tue Jan  1 11:29:55 2019
 
 
 
 
`timescale 1ns/10ps
`timescale 1ns/10ps
 
 
module deflate (
module deflate (
Line 10... Line 10...
    o_done,
    o_done,
    i_data,
    i_data,
    o_iprogress,
    o_iprogress,
    o_oprogress,
    o_oprogress,
    o_byte,
    o_byte,
    i_addr,
    i_waddr,
 
    i_raddr,
    clk,
    clk,
    reset
    reset
);
);
// Deflate (de)compress
// Deflate (de)compress
// 
// 
Line 22... Line 23...
 
 
input [2:0] i_mode;
input [2:0] i_mode;
output o_done;
output o_done;
reg o_done;
reg o_done;
input [7:0] i_data;
input [7:0] i_data;
output [12:0] o_iprogress;
output [23:0] o_iprogress;
reg [12:0] o_iprogress;
reg [23:0] o_iprogress;
output [12:0] o_oprogress;
output [23:0] o_oprogress;
reg [12:0] o_oprogress;
reg [23:0] o_oprogress;
output [7:0] o_byte;
output [7:0] o_byte;
reg [7:0] o_byte;
reg [7:0] o_byte;
input [12:0] i_addr;
input [5:0] i_waddr;
 
input [14:0] i_raddr;
input clk;
input clk;
input reset;
input reset;
 
 
reg [18:0] wleaf;
reg [18:0] wleaf;
reg [9:0] step;
reg [9:0] step;
reg static;
reg static;
reg [4:0] state;
reg [4:0] state;
reg [8:0] spread_i;
reg [8:0] spread_i;
reg [9:0] spread;
reg [9:0] spread;
reg [9:0] reverse;
reg [18:0] rleaf;
 
reg [14:0] reverse;
reg [7:0] orbyte;
reg [7:0] orbyte;
reg [12:0] oraddr;
reg [14:0] oraddr;
reg [12:0] old_di;
reg [23:0] old_di;
reg [12:0] offset;
reg [14:0] offset;
reg [7:0] obyte;
reg [7:0] obyte;
reg [7:0] ob1;
reg [7:0] ob1;
reg [12:0] oaddr;
reg [14:0] oaddr;
reg [8:0] numLiterals;
reg [8:0] numLiterals;
reg [5:0] numDistance;
reg [5:0] numDistance;
reg [8:0] numCodeLength;
reg [8:0] numCodeLength;
reg [2:0] nb;
reg [2:0] nb;
reg [4:0] minBits;
reg [4:0] minBits;
reg [2:0] method;
reg [2:0] method;
reg [4:0] maxBits;
reg [4:0] maxBits;
reg [8:0] lwaddr;
reg [14:0] lwaddr;
reg [12:0] length;
reg [14:0] lraddr;
 
reg [14:0] length;
reg [18:0] leaf;
reg [18:0] leaf;
reg [14:0] lastToken;
reg [14:0] lastToken;
reg [15:0] ladler1;
reg [15:0] ladler1;
reg [12:0] isize;
reg [23:0] isize;
reg [9:0] instantMaxBit;
reg [9:0] instantMaxBit;
reg [14:0] instantMask;
reg [14:0] instantMask;
reg [8:0] howOften;
reg [8:0] howOften;
reg flush;
reg flush;
reg final;
reg final;
reg filled;
reg filled;
reg [2:0] doo;
reg [2:0] doo;
reg do_compress;
reg do_compress;
reg [12:0] do;
reg [23:0] do;
reg [2:0] dio;
reg [2:0] dio;
reg [12:0] di;
reg [23:0] di;
reg [4:0] d_maxBits;
reg [4:0] d_maxBits;
reg [9:0] d_instantMaxBit;
reg [9:0] d_instantMaxBit;
reg [14:0] d_instantMask;
reg [14:0] d_instantMask;
reg [8:0] cur_static;
reg [8:0] cur_static;
reg signed [7:0] cur_search;
reg signed [24:0] cur_search;
reg cur_next;
reg [3:0] cur_next;
reg [12:0] cur_i;
reg [23:0] cur_i;
reg signed [7:0] cur_dist;
reg signed [6:0] cur_dist;
reg [12:0] cur_cstatic;
reg [23:0] cur_cstatic;
reg [9:0] cur_HF1;
reg [15:0] cur_HF1;
reg [7:0] copy2;
reg [7:0] copy2;
reg [7:0] copy1;
reg [7:0] copy1;
reg [14:0] code;
reg [14:0] code;
reg [3:0] bits;
reg [3:0] bits;
reg [8:0] b_numCodeLength;
reg [8:0] b_numCodeLength;
Line 94... Line 98...
reg [7:0] b5;
reg [7:0] b5;
wire [31:0] b41;
wire [31:0] b41;
reg [7:0] b4;
reg [7:0] b4;
reg [7:0] b3;
reg [7:0] b3;
reg [7:0] b2;
reg [7:0] b2;
 
wire [39:0] b15;
wire [31:0] b14;
wire [31:0] b14;
wire [79:0] b110;
wire [79:0] b110;
reg [7:0] b10;
reg [7:0] b10;
reg [7:0] b1;
reg [7:0] b1;
reg [15:0] adler2;
reg [15:0] adler2;
reg [15:0] adler1;
reg [15:0] adler1;
reg [255:0] cwindow;
reg [255:0] cwindow;
reg [7:0] oram [0:8192-1];
reg [7:0] oram [0:32768-1];
reg [9:0] nextCode [0:15-1];
reg [15:0] nextCode [0:16-1];
reg [18:0] leaves [0:512-1];
reg [18:0] leaves [0:512-1];
reg [7:0] iram [0:128-1];
reg [7:0] iram [0:64-1];
reg [3:0] distanceLength [0:32-1];
reg [3:0] distanceLength [0:32-1];
reg [18:0] d_leaves [0:128-1];
reg d_leaves [0:1-1];
reg [8:0] code_bits [0:288-1];
reg [3:0] codeLength [0:320-1];
reg [3:0] codeLength [0:290-1];
 
reg [8:0] bitLengthCount [0:16-1];
reg [8:0] bitLengthCount [0:16-1];
wire smatch [0:32-1];
wire smatch [0:32-1];
 
 
assign b41[32-1:24] = b4;
assign b41[32-1:24] = b4;
assign b41[24-1:16] = b3;
assign b41[24-1:16] = b3;
assign b41[16-1:8] = b2;
assign b41[16-1:8] = b2;
assign b41[8-1:0] = b1;
assign b41[8-1:0] = b1;
 
assign b15[40-1:32] = b1;
 
assign b15[32-1:24] = b2;
 
assign b15[24-1:16] = b3;
 
assign b15[16-1:8] = b4;
 
assign b15[8-1:0] = b5;
assign b14[32-1:24] = b1;
assign b14[32-1:24] = b1;
assign b14[24-1:16] = b2;
assign b14[24-1:16] = b2;
assign b14[16-1:8] = b3;
assign b14[16-1:8] = b3;
assign b14[8-1:0] = b4;
assign b14[8-1:0] = b4;
assign b110[80-1:72] = b1;
assign b110[80-1:72] = b1;
Line 135... Line 144...
 
 
task MYHDL3_adv;
task MYHDL3_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL113_RETURN
begin: MYHDL115_RETURN
    nshift = ((dio + width) >>> 3);
    nshift = ((dio + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= ((dio + width) & 7);
    dio <= ((dio + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
Line 149... Line 158...
endtask
endtask
 
 
function integer MYHDL4_get4;
function integer MYHDL4_get4;
    input boffset;
    input boffset;
    input width;
    input width;
begin: MYHDL114_RETURN
begin: MYHDL116_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL4_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL4_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL114_RETURN;
    disable MYHDL116_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL5_get4;
function integer MYHDL5_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL115_RETURN
begin: MYHDL117_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL5_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL5_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL115_RETURN;
    disable MYHDL117_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL6_adv;
task MYHDL6_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL116_RETURN
begin: MYHDL118_RETURN
    nshift = ((dio + width) >>> 3);
    nshift = ((dio + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= ((dio + width) & 7);
    dio <= ((dio + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
Line 194... Line 203...
 
 
task MYHDL7_adv;
task MYHDL7_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL117_RETURN
begin: MYHDL119_RETURN
    nshift = ((dio + width) >>> 3);
    nshift = ((dio + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= ((dio + width) & 7);
    dio <= ((dio + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
Line 210... Line 219...
function integer MYHDL8_get4;
function integer MYHDL8_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL118_RETURN
begin: MYHDL120_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL8_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    MYHDL8_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    disable MYHDL118_RETURN;
    disable MYHDL120_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL9_adv;
task MYHDL9_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL119_RETURN
begin: MYHDL121_RETURN
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= (($signed({1'b0, dio}) + width) & 7);
    dio <= (($signed({1'b0, dio}) + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
Line 241... Line 250...
function integer MYHDL10_put;
function integer MYHDL10_put;
    input d;
    input d;
    integer d;
    integer d;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL120_RETURN
begin: MYHDL122_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    MYHDL10_put = ((ob1 | (d << doo)) & 255);
    MYHDL10_put = ((ob1 | (d << doo)) & 255);
    disable MYHDL120_RETURN;
    disable MYHDL122_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL11_put_adv;
task MYHDL11_put_adv;
    input d;
    input d;
Line 261... Line 270...
    input width;
    input width;
    integer width;
    integer width;
    reg pshift;
    reg pshift;
    integer carry;
    integer carry;
    integer doo_next;
    integer doo_next;
begin: MYHDL121_RETURN
begin: MYHDL123_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
        $finish;
        $finish;
Line 287... Line 296...
    doo <= doo_next;
    doo <= doo_next;
end
end
endtask
endtask
 
 
task MYHDL12_do_flush;
task MYHDL12_do_flush;
begin: MYHDL122_RETURN
begin: MYHDL124_RETURN
    flush <= 1'b0;
    flush <= 1'b0;
    ob1 <= 0;
    ob1 <= 0;
    o_oprogress <= (do + 1);
    o_oprogress <= (do + 1);
    do <= (do + 1);
    do <= (do + 1);
end
end
endtask
endtask
 
 
function integer MYHDL13_put;
function integer MYHDL13_put;
    input [9-1:0] d;
    input d;
 
    integer d;
    input [4-1:0] width;
    input [4-1:0] width;
begin: MYHDL123_RETURN
begin: MYHDL125_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    MYHDL13_put = ((ob1 | (d << doo)) & 255);
    MYHDL13_put = (($signed({1'b0, ob1}) | (d << $signed({1'b0, doo}))) & 255);
    disable MYHDL123_RETURN;
    disable MYHDL125_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL14_put_adv;
task MYHDL14_put_adv;
    input [9-1:0] d;
    input d;
 
    integer d;
    input [4-1:0] width;
    input [4-1:0] width;
    reg pshift;
    reg pshift;
    integer carry;
    integer carry;
    integer doo_next;
    integer doo_next;
begin: MYHDL124_RETURN
begin: MYHDL126_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    pshift = ((doo + width) > 8);
    pshift = ((doo + width) > 8);
    if (pshift) begin
    if (pshift) begin
        carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, doo})));
        carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, doo})));
        ob1 <= $signed($signed({1'b0, d}) >>> ($signed({1'b0, width}) - carry));
        ob1 <= $signed(d >>> ($signed({1'b0, width}) - carry));
    end
    end
    else begin
    else begin
        ob1 <= (ob1 | (d << doo));
        ob1 <= ($signed({1'b0, ob1}) | (d << $signed({1'b0, doo})));
    end
    end
    do <= (do + pshift);
    do <= (do + pshift);
    o_oprogress <= (do + pshift);
    o_oprogress <= (do + pshift);
    doo_next = ((doo + width) & 7);
    doo_next = ((doo + width) & 7);
    if ((doo_next == 0)) begin
    if ((doo_next == 0)) begin
Line 342... Line 353...
    doo <= doo_next;
    doo <= doo_next;
end
end
endtask
endtask
 
 
task MYHDL15_do_flush;
task MYHDL15_do_flush;
begin: MYHDL125_RETURN
begin: MYHDL127_RETURN
    flush <= 1'b0;
    flush <= 1'b0;
    ob1 <= 0;
    ob1 <= 0;
    o_oprogress <= (do + 1);
    o_oprogress <= (do + 1);
    do <= (do + 1);
    do <= (do + 1);
end
end
endtask
endtask
 
 
function integer MYHDL16_rev_bits;
function integer MYHDL16_put;
    input [13-1:0] b;
 
    input nb;
 
    integer nb;
 
    integer r;
 
begin: MYHDL126_RETURN
 
    if ((b >= (1 << nb))) begin
 
        $finish;
 
        $write("too few bits");
 
        $write("\n");
 
    end
 
    r = (((((((((((((((((b >>> 14) & 1) << 0) | (((b >>> 13) & 1) << 1)) | (((b >>> 12) & 1) << 2)) | (((b >>> 11) & 1) << 3)) | (((b >>> 10) & 1) << 4)) | (((b >>> 9) & 1) << 5)) | (((b >>> 8) & 1) << 6)) | (((b >>> 7) & 1) << 7)) | (((b >>> 6) & 1) << 8)) | (((b >>> 5) & 1) << 9)) | (((b >>> 4) & 1) << 10)) | (((b >>> 3) & 1) << 11)) | (((b >>> 2) & 1) << 12)) | (((b >>> 1) & 1) << 13)) | (((b >>> 0) & 1) << 14));
 
    r = r >>> (15 - $signed({1'b0, nb}));
 
    MYHDL16_rev_bits = r;
 
    disable MYHDL126_RETURN;
 
end
 
endfunction
 
 
 
function integer MYHDL17_put;
 
    input d;
    input d;
    integer d;
    integer d;
    input width;
    input [4-1:0] width;
    integer width;
begin: MYHDL128_RETURN
begin: MYHDL127_RETURN
 
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if ((d > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    MYHDL17_put = (($signed({1'b0, ob1}) | (d << $signed({1'b0, doo}))) & 255);
    MYHDL16_put = (($signed({1'b0, ob1}) | (d << $signed({1'b0, doo}))) & 255);
    disable MYHDL127_RETURN;
    disable MYHDL128_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL18_put_adv;
task MYHDL17_put_adv;
    input d;
    input d;
    integer d;
    integer d;
    input width;
    input [4-1:0] width;
    integer width;
 
    reg pshift;
    reg pshift;
    integer carry;
    integer carry;
    integer doo_next;
    integer doo_next;
begin: MYHDL128_RETURN
begin: MYHDL129_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if ((d > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    pshift = (($signed({1'b0, doo}) + width) > 8);
    pshift = ((doo + width) > 8);
    if (pshift) begin
    if (pshift) begin
        carry = (width - (8 - $signed({1'b0, doo})));
        carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, doo})));
        ob1 <= $signed(d >>> (width - carry));
        ob1 <= $signed(d >>> ($signed({1'b0, width}) - carry));
    end
    end
    else begin
    else begin
        ob1 <= ($signed({1'b0, ob1}) | (d << $signed({1'b0, doo})));
        ob1 <= ($signed({1'b0, ob1}) | (d << $signed({1'b0, doo})));
    end
    end
    do <= (do + pshift);
    do <= (do + pshift);
    o_oprogress <= (do + pshift);
    o_oprogress <= (do + pshift);
    doo_next = (($signed({1'b0, doo}) + width) & 7);
    doo_next = ((doo + width) & 7);
    if ((doo_next == 0)) begin
    if ((doo_next == 0)) begin
        flush <= 1'b1;
        flush <= 1'b1;
    end
    end
    doo <= doo_next;
    doo <= doo_next;
end
end
endtask
endtask
 
 
function integer MYHDL21_put;
function integer MYHDL18_rev_bits;
    input [9-1:0] d;
    input [24-1:0] b;
    input [4-1:0] width;
    input nb;
begin: MYHDL129_RETURN
    integer nb;
    if ((width > 9)) begin
    integer r;
        $finish;
 
    end
 
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
 
        $finish;
 
    end
 
    MYHDL21_put = ((ob1 | (d << doo)) & 255);
 
    disable MYHDL129_RETURN;
 
end
 
endfunction
 
 
 
task MYHDL22_put_adv;
 
    input [9-1:0] d;
 
    input [4-1:0] width;
 
    reg pshift;
 
    integer carry;
 
    integer doo_next;
 
begin: MYHDL130_RETURN
begin: MYHDL130_RETURN
    if ((width > 9)) begin
    if ((b >= (1 << nb))) begin
        $finish;
        $finish;
 
        $write("too few bits");
 
        $write("\n");
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if ((nb > 15)) begin
        $finish;
        $finish;
    end
    end
    pshift = ((doo + width) > 8);
    r = (((((((((((((((((b >>> 14) & 1) << 0) | (((b >>> 13) & 1) << 1)) | (((b >>> 12) & 1) << 2)) | (((b >>> 11) & 1) << 3)) | (((b >>> 10) & 1) << 4)) | (((b >>> 9) & 1) << 5)) | (((b >>> 8) & 1) << 6)) | (((b >>> 7) & 1) << 7)) | (((b >>> 6) & 1) << 8)) | (((b >>> 5) & 1) << 9)) | (((b >>> 4) & 1) << 10)) | (((b >>> 3) & 1) << 11)) | (((b >>> 2) & 1) << 12)) | (((b >>> 1) & 1) << 13)) | (((b >>> 0) & 1) << 14));
    if (pshift) begin
    r = r >>> (15 - $signed({1'b0, nb}));
        carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, doo})));
    MYHDL18_rev_bits = r;
        ob1 <= $signed($signed({1'b0, d}) >>> ($signed({1'b0, width}) - carry));
    disable MYHDL130_RETURN;
    end
 
    else begin
 
        ob1 <= (ob1 | (d << doo));
 
    end
 
    do <= (do + pshift);
 
    o_oprogress <= (do + pshift);
 
    doo_next = ((doo + width) & 7);
 
    if ((doo_next == 0)) begin
 
        flush <= 1'b1;
 
    end
 
    doo <= doo_next;
 
end
end
endtask
endfunction
 
 
function integer MYHDL23_put;
function integer MYHDL19_put;
    input [9-1:0] d;
    input d;
    input [4-1:0] width;
    integer d;
 
    input width;
 
    integer width;
begin: MYHDL131_RETURN
begin: MYHDL131_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    MYHDL23_put = ((ob1 | (d << doo)) & 255);
    MYHDL19_put = (($signed({1'b0, ob1}) | (d << $signed({1'b0, doo}))) & 255);
    disable MYHDL131_RETURN;
    disable MYHDL131_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL24_put_adv;
task MYHDL20_put_adv;
    input [9-1:0] d;
    input d;
    input [4-1:0] width;
    integer d;
 
    input width;
 
    integer width;
    reg pshift;
    reg pshift;
    integer carry;
    integer carry;
    integer doo_next;
    integer doo_next;
begin: MYHDL132_RETURN
begin: MYHDL132_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    pshift = ((doo + width) > 8);
    pshift = (($signed({1'b0, doo}) + width) > 8);
    if (pshift) begin
    if (pshift) begin
        carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, doo})));
        carry = (width - (8 - $signed({1'b0, doo})));
        ob1 <= $signed($signed({1'b0, d}) >>> ($signed({1'b0, width}) - carry));
        ob1 <= $signed(d >>> (width - carry));
    end
    end
    else begin
    else begin
        ob1 <= (ob1 | (d << doo));
        ob1 <= ($signed({1'b0, ob1}) | (d << $signed({1'b0, doo})));
    end
    end
    do <= (do + pshift);
    do <= (do + pshift);
    o_oprogress <= (do + pshift);
    o_oprogress <= (do + pshift);
    doo_next = ((doo + width) & 7);
    doo_next = (($signed({1'b0, doo}) + width) & 7);
    if ((doo_next == 0)) begin
    if ((doo_next == 0)) begin
        flush <= 1'b1;
        flush <= 1'b1;
    end
    end
    doo <= doo_next;
    doo <= doo_next;
end
end
endtask
endtask
 
 
function integer MYHDL25_put;
function integer MYHDL23_put;
    input [9-1:0] d;
    input d;
 
    integer d;
    input [4-1:0] width;
    input [4-1:0] width;
begin: MYHDL133_RETURN
begin: MYHDL133_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    MYHDL25_put = ((ob1 | (d << doo)) & 255);
    MYHDL23_put = (($signed({1'b0, ob1}) | (d << $signed({1'b0, doo}))) & 255);
    disable MYHDL133_RETURN;
    disable MYHDL133_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL26_put_adv;
task MYHDL24_put_adv;
    input [9-1:0] d;
    input d;
 
    integer d;
    input [4-1:0] width;
    input [4-1:0] width;
    reg pshift;
    reg pshift;
    integer carry;
    integer carry;
    integer doo_next;
    integer doo_next;
begin: MYHDL134_RETURN
begin: MYHDL134_RETURN
    if ((width > 9)) begin
    if ((width > 9)) begin
        $finish;
        $finish;
    end
    end
    if (($signed({1'b0, d}) > ((1 << width) - 1))) begin
    if ((d > ((1 << width) - 1))) begin
        $finish;
        $finish;
    end
    end
    pshift = ((doo + width) > 8);
    pshift = ((doo + width) > 8);
    if (pshift) begin
    if (pshift) begin
        carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, doo})));
        carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, doo})));
        ob1 <= $signed($signed({1'b0, d}) >>> ($signed({1'b0, width}) - carry));
        ob1 <= $signed(d >>> ($signed({1'b0, width}) - carry));
    end
    end
    else begin
    else begin
        ob1 <= (ob1 | (d << doo));
        ob1 <= ($signed({1'b0, ob1}) | (d << $signed({1'b0, doo})));
    end
    end
    do <= (do + pshift);
    do <= (do + pshift);
    o_oprogress <= (do + pshift);
    o_oprogress <= (do + pshift);
    doo_next = ((doo + width) & 7);
    doo_next = ((doo + width) & 7);
    if ((doo_next == 0)) begin
    if ((doo_next == 0)) begin
Line 556... Line 528...
    end
    end
    doo <= doo_next;
    doo <= doo_next;
end
end
endtask
endtask
 
 
function integer MYHDL35_get4;
function integer MYHDL33_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL135_RETURN
begin: MYHDL135_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL35_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL33_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL135_RETURN;
    disable MYHDL135_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL36_get4;
function integer MYHDL34_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL136_RETURN
begin: MYHDL136_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL36_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL34_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL136_RETURN;
    disable MYHDL136_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL37_get4;
function integer MYHDL35_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL137_RETURN
begin: MYHDL137_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL37_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL35_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL137_RETURN;
    disable MYHDL137_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL38_get4;
function integer MYHDL36_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL138_RETURN
begin: MYHDL138_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL38_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL36_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL138_RETURN;
    disable MYHDL138_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL39_get4;
function integer MYHDL37_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL139_RETURN
begin: MYHDL139_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL39_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL37_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL139_RETURN;
    disable MYHDL139_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL40_get4;
function integer MYHDL38_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL140_RETURN
begin: MYHDL140_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL40_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL38_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL140_RETURN;
    disable MYHDL140_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL41_adv;
task MYHDL39_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL141_RETURN
begin: MYHDL141_RETURN
    nshift = ((dio + width) >>> 3);
    nshift = ((dio + width) >>> 3);
Line 665... Line 637...
        filled <= 1'b0;
        filled <= 1'b0;
    end
    end
end
end
endtask
endtask
 
 
function integer MYHDL42_get4;
function integer MYHDL40_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL142_RETURN
begin: MYHDL142_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL42_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL40_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL142_RETURN;
    disable MYHDL142_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL43_adv;
task MYHDL41_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL143_RETURN
begin: MYHDL143_RETURN
    nshift = ((dio + width) >>> 3);
    nshift = ((dio + width) >>> 3);
Line 695... Line 667...
        filled <= 1'b0;
        filled <= 1'b0;
    end
    end
end
end
endtask
endtask
 
 
function integer MYHDL44_get4;
function integer MYHDL42_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL144_RETURN
begin: MYHDL144_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL44_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL42_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL144_RETURN;
    disable MYHDL144_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL45_get4;
function integer MYHDL43_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL145_RETURN
begin: MYHDL145_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL45_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL43_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL145_RETURN;
    disable MYHDL145_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL46_get4;
function integer MYHDL44_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL146_RETURN
begin: MYHDL146_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL46_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL44_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL146_RETURN;
    disable MYHDL146_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL47_adv;
task MYHDL45_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL147_RETURN
begin: MYHDL147_RETURN
    nshift = ((dio + width) >>> 3);
    nshift = ((dio + width) >>> 3);
Line 755... Line 727...
        filled <= 1'b0;
        filled <= 1'b0;
    end
    end
end
end
endtask
endtask
 
 
function integer MYHDL54_rev_bits;
function integer MYHDL52_rev_bits;
    input [10-1:0] b;
    input [16-1:0] b;
    input [4-1:0] nb;
    input [4-1:0] nb;
    integer r;
    integer r;
begin: MYHDL148_RETURN
begin: MYHDL148_RETURN
    if ((b >= (1 << nb))) begin
    if ((b >= (1 << nb))) begin
        $finish;
        $finish;
        $write("too few bits");
        $write("too few bits");
        $write("\n");
        $write("\n");
    end
    end
 
    if ((nb > 15)) begin
 
        $finish;
 
    end
    r = (((((((((((((((((b >>> 14) & 1) << 0) | (((b >>> 13) & 1) << 1)) | (((b >>> 12) & 1) << 2)) | (((b >>> 11) & 1) << 3)) | (((b >>> 10) & 1) << 4)) | (((b >>> 9) & 1) << 5)) | (((b >>> 8) & 1) << 6)) | (((b >>> 7) & 1) << 7)) | (((b >>> 6) & 1) << 8)) | (((b >>> 5) & 1) << 9)) | (((b >>> 4) & 1) << 10)) | (((b >>> 3) & 1) << 11)) | (((b >>> 2) & 1) << 12)) | (((b >>> 1) & 1) << 13)) | (((b >>> 0) & 1) << 14));
    r = (((((((((((((((((b >>> 14) & 1) << 0) | (((b >>> 13) & 1) << 1)) | (((b >>> 12) & 1) << 2)) | (((b >>> 11) & 1) << 3)) | (((b >>> 10) & 1) << 4)) | (((b >>> 9) & 1) << 5)) | (((b >>> 8) & 1) << 6)) | (((b >>> 7) & 1) << 7)) | (((b >>> 6) & 1) << 8)) | (((b >>> 5) & 1) << 9)) | (((b >>> 4) & 1) << 10)) | (((b >>> 3) & 1) << 11)) | (((b >>> 2) & 1) << 12)) | (((b >>> 1) & 1) << 13)) | (((b >>> 0) & 1) << 14));
    r = r >>> (15 - $signed({1'b0, nb}));
    r = r >>> (15 - $signed({1'b0, nb}));
    MYHDL54_rev_bits = r;
    MYHDL52_rev_bits = r;
    disable MYHDL148_RETURN;
    disable MYHDL148_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL55_makeLeaf;
function integer MYHDL53_makeLeaf;
    input [9-1:0] lcode;
    input [9-1:0] lcode;
    input [4-1:0] lbits;
    input [4-1:0] lbits;
begin: MYHDL149_RETURN
begin: MYHDL149_RETURN
    if ((lcode >= (1 << 10))) begin
    if ((lcode >= (1 << 15))) begin
        $finish;
        $finish;
    end
    end
    if ((lbits >= (1 << 9))) begin
    if ((lbits >= (1 << 4))) begin
        $finish;
        $finish;
    end
    end
    MYHDL55_makeLeaf = ((lcode << 9) | lbits);
    MYHDL53_makeLeaf = ((lcode << 4) | lbits);
    disable MYHDL149_RETURN;
    disable MYHDL149_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL56_makeLeaf;
function integer MYHDL54_makeLeaf;
    input [9-1:0] lcode;
    input [9-1:0] lcode;
    input [4-1:0] lbits;
    input [4-1:0] lbits;
begin: MYHDL150_RETURN
begin: MYHDL150_RETURN
    if ((lcode >= (1 << 10))) begin
    if ((lcode >= (1 << 15))) begin
        $finish;
        $finish;
    end
    end
    if ((lbits >= (1 << 9))) begin
    if ((lbits >= (1 << 4))) begin
        $finish;
        $finish;
    end
    end
    MYHDL56_makeLeaf = ((lcode << 9) | lbits);
    MYHDL54_makeLeaf = ((lcode << 4) | lbits);
    disable MYHDL150_RETURN;
    disable MYHDL150_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL57_makeLeaf;
function integer MYHDL55_makeLeaf;
    input [9-1:0] lcode;
    input [9-1:0] lcode;
    input [4-1:0] lbits;
    input [4-1:0] lbits;
begin: MYHDL151_RETURN
begin: MYHDL151_RETURN
    if ((lcode >= (1 << 10))) begin
    if ((lcode >= (1 << 15))) begin
        $finish;
        $finish;
    end
    end
    if ((lbits >= (1 << 9))) begin
    if ((lbits >= (1 << 4))) begin
        $finish;
        $finish;
    end
    end
    MYHDL57_makeLeaf = ((lcode << 9) | lbits);
    MYHDL55_makeLeaf = ((lcode << 4) | lbits);
    disable MYHDL151_RETURN;
    disable MYHDL151_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL58_get4;
function integer MYHDL56_get4;
    input boffset;
    input boffset;
    input [5-1:0] width;
    input [5-1:0] width;
begin: MYHDL152_RETURN
begin: MYHDL152_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL58_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL56_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL152_RETURN;
    disable MYHDL152_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL59_get_bits;
function integer MYHDL57_get_bits;
    input [19-1:0] aleaf;
    input [19-1:0] aleaf;
begin: MYHDL153_RETURN
begin: MYHDL153_RETURN
    MYHDL59_get_bits = ($signed({1'b0, aleaf}) & ((1 << 9) - 1));
    MYHDL57_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
    disable MYHDL153_RETURN;
    disable MYHDL153_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL60_get_bits;
function integer MYHDL58_get4;
    input [19-1:0] aleaf;
    input boffset;
 
    input [5-1:0] width;
begin: MYHDL154_RETURN
begin: MYHDL154_RETURN
    MYHDL60_get_bits = ($signed({1'b0, aleaf}) & ((1 << 9) - 1));
    if ((nb != 4)) begin
 
        $write("----NB----");
 
        $write("\n");
 
        $finish;
 
    end
 
    MYHDL58_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL154_RETURN;
    disable MYHDL154_RETURN;
end
end
endfunction
endfunction
 
 
 
function integer MYHDL59_get_bits;
 
    input [19-1:0] aleaf;
 
begin: MYHDL155_RETURN
 
    MYHDL59_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
 
    disable MYHDL155_RETURN;
 
end
 
endfunction
 
 
 
function integer MYHDL60_get_bits;
 
    input [19-1:0] aleaf;
 
begin: MYHDL156_RETURN
 
    MYHDL60_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
 
    disable MYHDL156_RETURN;
 
end
 
endfunction
 
 
task MYHDL61_adv;
task MYHDL61_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL155_RETURN
begin: MYHDL157_RETURN
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= (($signed({1'b0, dio}) + width) & 7);
    dio <= (($signed({1'b0, dio}) + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
Line 864... Line 861...
end
end
endtask
endtask
 
 
function integer MYHDL62_get_code;
function integer MYHDL62_get_code;
    input [19-1:0] aleaf;
    input [19-1:0] aleaf;
begin: MYHDL156_RETURN
begin: MYHDL158_RETURN
    MYHDL62_get_code = (aleaf >>> 9);
    MYHDL62_get_code = (aleaf >>> 4);
    disable MYHDL156_RETURN;
    disable MYHDL158_RETURN;
 
end
 
endfunction
 
 
 
function integer MYHDL63_get4;
 
    input boffset;
 
    integer boffset;
 
    input [5-1:0] width;
 
begin: MYHDL159_RETURN
 
    if ((nb != 4)) begin
 
        $write("----NB----");
 
        $write("\n");
 
        $finish;
 
    end
 
    MYHDL63_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
 
    disable MYHDL159_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL63_get_code;
function integer MYHDL64_get_bits;
    input [19-1:0] aleaf;
    input [19-1:0] aleaf;
begin: MYHDL157_RETURN
begin: MYHDL160_RETURN
    MYHDL63_get_code = (aleaf >>> 9);
    MYHDL64_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
    disable MYHDL157_RETURN;
    disable MYHDL160_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL64_get4;
function integer MYHDL65_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input [5-1:0] width;
    input [5-1:0] width;
begin: MYHDL158_RETURN
begin: MYHDL161_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL64_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    MYHDL65_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    disable MYHDL158_RETURN;
    disable MYHDL161_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL65_get_bits;
function integer MYHDL66_get_bits;
    input [19-1:0] aleaf;
    input [19-1:0] aleaf;
begin: MYHDL159_RETURN
begin: MYHDL162_RETURN
    MYHDL65_get_bits = ($signed({1'b0, aleaf}) & ((1 << 9) - 1));
    MYHDL66_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
    disable MYHDL159_RETURN;
    disable MYHDL162_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL66_get4;
function integer MYHDL67_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL160_RETURN
begin: MYHDL163_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL66_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL67_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL160_RETURN;
    disable MYHDL163_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL67_get_code;
function integer MYHDL68_get_code;
    input [19-1:0] aleaf;
    input [19-1:0] aleaf;
begin: MYHDL161_RETURN
begin: MYHDL164_RETURN
    MYHDL67_get_code = (aleaf >>> 9);
    MYHDL68_get_code = (aleaf >>> 4);
    disable MYHDL161_RETURN;
    disable MYHDL164_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL68_get_bits;
function integer MYHDL69_get_bits;
    input [19-1:0] aleaf;
    input [19-1:0] aleaf;
begin: MYHDL162_RETURN
begin: MYHDL165_RETURN
    MYHDL68_get_bits = ($signed({1'b0, aleaf}) & ((1 << 9) - 1));
    MYHDL69_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
    disable MYHDL162_RETURN;
    disable MYHDL165_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL69_get4;
function integer MYHDL70_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL163_RETURN
begin: MYHDL166_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL69_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    MYHDL70_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    disable MYHDL163_RETURN;
    disable MYHDL166_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL70_get_bits;
function integer MYHDL71_get_bits;
    input [19-1:0] aleaf;
    input [19-1:0] aleaf;
begin: MYHDL164_RETURN
begin: MYHDL167_RETURN
    MYHDL70_get_bits = ($signed({1'b0, aleaf}) & ((1 << 9) - 1));
    MYHDL71_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
    disable MYHDL164_RETURN;
    disable MYHDL167_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL71_adv;
task MYHDL72_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL165_RETURN
begin: MYHDL168_RETURN
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= (($signed({1'b0, dio}) + width) & 7);
    dio <= (($signed({1'b0, dio}) + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
        filled <= 1'b0;
        filled <= 1'b0;
    end
    end
end
end
endtask
endtask
 
 
function integer MYHDL72_get4;
function integer MYHDL73_get4;
    input boffset;
    input boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL166_RETURN
begin: MYHDL169_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL72_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    MYHDL73_get4 = ((b41 >>> (dio + boffset)) & ((1 << width) - 1));
    disable MYHDL166_RETURN;
    disable MYHDL169_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL73_get4;
function integer MYHDL74_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL167_RETURN
begin: MYHDL170_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL73_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    MYHDL74_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    disable MYHDL167_RETURN;
    disable MYHDL170_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL74_rev_bits;
function integer MYHDL75_rev_bits;
    input b;
    input b;
    integer b;
    integer b;
    input nb;
    input nb;
    integer nb;
    integer nb;
    integer r;
    integer r;
begin: MYHDL168_RETURN
begin: MYHDL171_RETURN
    if ((b >= (1 << nb))) begin
    if ((b >= (1 << nb))) begin
        $finish;
        $finish;
        $write("too few bits");
        $write("too few bits");
        $write("\n");
        $write("\n");
    end
    end
 
    if ((nb > 15)) begin
 
        $finish;
 
    end
    r = (((((((((((((((((b >>> 14) & 1) << 0) | (((b >>> 13) & 1) << 1)) | (((b >>> 12) & 1) << 2)) | (((b >>> 11) & 1) << 3)) | (((b >>> 10) & 1) << 4)) | (((b >>> 9) & 1) << 5)) | (((b >>> 8) & 1) << 6)) | (((b >>> 7) & 1) << 7)) | (((b >>> 6) & 1) << 8)) | (((b >>> 5) & 1) << 9)) | (((b >>> 4) & 1) << 10)) | (((b >>> 3) & 1) << 11)) | (((b >>> 2) & 1) << 12)) | (((b >>> 1) & 1) << 13)) | (((b >>> 0) & 1) << 14));
    r = (((((((((((((((((b >>> 14) & 1) << 0) | (((b >>> 13) & 1) << 1)) | (((b >>> 12) & 1) << 2)) | (((b >>> 11) & 1) << 3)) | (((b >>> 10) & 1) << 4)) | (((b >>> 9) & 1) << 5)) | (((b >>> 8) & 1) << 6)) | (((b >>> 7) & 1) << 7)) | (((b >>> 6) & 1) << 8)) | (((b >>> 5) & 1) << 9)) | (((b >>> 4) & 1) << 10)) | (((b >>> 3) & 1) << 11)) | (((b >>> 2) & 1) << 12)) | (((b >>> 1) & 1) << 13)) | (((b >>> 0) & 1) << 14));
    r = r >>> (15 - $signed({1'b0, nb}));
    r = r >>> (15 - $signed({1'b0, nb}));
    MYHDL74_rev_bits = r;
    MYHDL75_rev_bits = r;
    disable MYHDL168_RETURN;
    disable MYHDL171_RETURN;
end
end
endfunction
endfunction
 
 
function integer MYHDL75_get4;
function integer MYHDL76_get4;
    input boffset;
    input boffset;
    integer boffset;
    integer boffset;
    input width;
    input width;
    integer width;
    integer width;
begin: MYHDL169_RETURN
begin: MYHDL172_RETURN
    if ((nb != 4)) begin
    if ((nb != 4)) begin
        $write("----NB----");
        $write("----NB----");
        $write("\n");
        $write("\n");
        $finish;
        $finish;
    end
    end
    MYHDL75_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    MYHDL76_get4 = ($signed($signed({1'b0, b41}) >>> ($signed({1'b0, dio}) + boffset)) & ((1 << width) - 1));
    disable MYHDL169_RETURN;
    disable MYHDL172_RETURN;
end
end
endfunction
endfunction
 
 
task MYHDL76_adv;
task MYHDL77_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL170_RETURN
begin: MYHDL173_RETURN
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    nshift = $signed(($signed({1'b0, dio}) + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= (($signed({1'b0, dio}) + width) & 7);
    dio <= (($signed({1'b0, dio}) + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
        filled <= 1'b0;
        filled <= 1'b0;
    end
    end
end
end
endtask
endtask
 
 
task MYHDL77_adv;
task MYHDL78_adv;
    input width;
    input width;
    integer width;
    integer width;
    integer nshift;
    integer nshift;
begin: MYHDL171_RETURN
begin: MYHDL174_RETURN
    nshift = ((dio + width) >>> 3);
    nshift = ((dio + width) >>> 3);
    o_iprogress <= di;
    o_iprogress <= di;
    dio <= ((dio + width) & 7);
    dio <= ((dio + width) & 7);
    di <= ($signed({1'b0, di}) + nshift);
    di <= ($signed({1'b0, di}) + nshift);
    if ((nshift != 0)) begin
    if ((nshift != 0)) begin
        filled <= 1'b0;
        filled <= 1'b0;
    end
    end
end
end
endtask
endtask
 
 
 
task MYHDL79_adv;
always @(posedge clk) begin: DEFLATE_IO_LOGIC
    input width;
    case (i_mode)
    integer width;
        'h2: begin
    integer nshift;
            iram[(i_addr & 127)] <= i_data;
begin: MYHDL175_RETURN
            isize <= i_addr;
    nshift = ((dio + width) >>> 3);
 
    o_iprogress <= di;
 
    dio <= ((dio + width) & 7);
 
    di <= ($signed({1'b0, di}) + nshift);
 
    if ((nshift != 0)) begin
 
        filled <= 1'b0;
        end
        end
        'h3: begin
 
            o_byte <= oram[i_addr];
 
        end
        end
        default: begin
endtask
            // pass
 
 
 
 
always @(posedge clk) begin: DEFLATE_IO_LOGIC
 
    o_byte <= oram[(i_raddr & 32767)];
 
    if ((i_mode == 2)) begin
 
        iram[(i_waddr & 63)] <= i_data;
 
        isize <= i_waddr;
        end
        end
    endcase
 
end
end
 
 
 
 
always @(posedge clk) begin: DEFLATE_LOGIC
always @(posedge clk) begin: DEFLATE_LOGIC
    integer hm;
    integer hm;
    integer skip;
    integer skip;
    reg no_adv;
    reg no_adv;
    integer cs_i;
    integer cs_i;
    reg [4-1:0] outlen;
    reg [4-1:0] outlen;
    reg [9-1:0] outbits;
    integer outbits;
    reg [8-1:0] bdata;
    reg [8-1:0] bdata;
    integer adler1_next;
    integer adler1_next;
 
    integer lencode;
    integer nextdist;
    integer nextdist;
    integer copydist;
    integer copydist;
    integer extra_dist;
    integer extra_dist;
    integer extra_bits;
    integer extra_bits;
    integer outcode;
    integer outcode;
 
    reg [15-1:0] lfmatch;
 
    integer distance;
 
    integer fmatch2;
 
    integer match;
    reg found;
    reg found;
    integer fmatch;
    integer fmatch;
    integer si;
    integer si;
    integer distance;
 
    integer lencode;
 
    integer match;
 
    integer stat_i;
    integer stat_i;
    integer clo_i;
    integer clo_i;
    integer n_adv;
    integer n_adv;
    integer dbl_i;
    integer dbl_i;
    integer dbl;
    integer dbl;
Line 1116... Line 1141...
    reg [4-1:0] j;
    reg [4-1:0] j;
    integer t;
    integer t;
    integer hf2_i;
    integer hf2_i;
    reg [5-1:0] amb;
    reg [5-1:0] amb;
    integer ncode;
    integer ncode;
    reg [10-1:0] canonical;
    reg [16-1:0] canonical;
    reg [4-1:0] bits_next;
    reg [4-1:0] bits_next;
    reg [15-1:0] aim;
    reg [15-1:0] aim;
    integer cto;
    integer cto;
    integer mask;
    integer mask;
    integer token;
    integer token;
Line 1152... Line 1177...
                    doo <= 0;
                    doo <= 0;
                    filled <= 1'b1;
                    filled <= 1'b1;
                    cur_static <= 0;
                    cur_static <= 0;
                    state <= 5'b01110;
                    state <= 5'b01110;
                end
                end
                else if ((i_mode == 5)) begin
                else if ((1'b1 && (i_mode == 5))) begin
                    do_compress <= 1'b0;
                    do_compress <= 1'b0;
                    o_done <= 1'b0;
                    o_done <= 1'b0;
                    o_iprogress <= 0;
                    o_iprogress <= 0;
                    o_oprogress <= 0;
                    o_oprogress <= 0;
                    di <= 0;
                    di <= 0;
Line 1169... Line 1194...
                else begin
                else begin
                    // pass
                    // pass
                end
                end
            end
            end
            5'b00001: begin
            5'b00001: begin
                if ((!filled)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((!filled)) begin
                    filled <= 1'b1;
                    filled <= 1'b1;
                end
                end
                else if ((nb < 4)) begin
                else if ((nb < 4)) begin
                    // pass
                    // pass
                end
                end
Line 1217... Line 1245...
                    $write(" ");
                    $write(" ");
                    $write("%0d", hm);
                    $write("%0d", hm);
                    $write("\n");
                    $write("\n");
                    case (hm)
                    case (hm)
                        'h2: begin
                        'h2: begin
 
                            if ((!1'b0)) begin
 
                                $write("dynamic tree mode disabled");
 
                                $write("\n");
 
                                $finish;
 
                            end
                            state <= 5'b00010;
                            state <= 5'b00010;
                            numCodeLength <= 0;
                            numCodeLength <= 0;
                            numLiterals <= 0;
                            numLiterals <= 0;
                            static <= 1'b0;
                            static <= 1'b0;
                            MYHDL6_adv(3);
                            MYHDL6_adv(3);
Line 1282... Line 1315...
                    oaddr <= do;
                    oaddr <= do;
                    obyte <= MYHDL10_put(3, 3);
                    obyte <= MYHDL10_put(3, 3);
                    MYHDL11_put_adv(3, 3);
                    MYHDL11_put_adv(3, 3);
                end
                end
                else if (flush) begin
                else if (flush) begin
                    $write("flush");
 
                    $write(" ");
 
                    $write("%h", do);
 
                    $write(" ");
 
                    $write("%h", ob1);
 
                    $write("\n");
 
                    no_adv = 1;
                    no_adv = 1;
                    oaddr <= do;
                    oaddr <= do;
                    obyte <= ob1;
                    obyte <= ob1;
                    MYHDL12_do_flush;
                    MYHDL12_do_flush;
                end
                end
 
                else if ((($signed({1'b0, cur_cstatic}) >= ($signed({1'b0, isize}) - 10)) && (i_mode != 0))) begin
 
                    $write("P");
 
                    $write(" ");
 
                    $write("%h", cur_cstatic);
 
                    $write(" ");
 
                    $write("%h", isize);
 
                    $write("\n");
 
                    no_adv = 1;
 
                end
                else if ((($signed({1'b0, cur_cstatic}) - 3) > isize)) begin
                else if ((($signed({1'b0, cur_cstatic}) - 3) > isize)) begin
                    if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 1))) begin
                    if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 1))) begin
                        $write("Put EOF");
                        $write("Put EOF");
                        $write(" ");
                        $write(" ");
                        $write("%h", do);
                        $write("%h", do);
                        $write("\n");
                        $write("\n");
                        cs_i = 256;
                        cs_i = 256;
                        outlen = codeLength[cs_i];
                        outlen = codeLength[cs_i];
                        outbits = code_bits[cs_i];
                        case (cs_i)
 
                            0: outbits = 12;
 
                            1: outbits = 140;
 
                            2: outbits = 76;
 
                            3: outbits = 204;
 
                            4: outbits = 44;
 
                            5: outbits = 172;
 
                            6: outbits = 108;
 
                            7: outbits = 236;
 
                            8: outbits = 28;
 
                            9: outbits = 156;
 
                            10: outbits = 92;
 
                            11: outbits = 220;
 
                            12: outbits = 60;
 
                            13: outbits = 188;
 
                            14: outbits = 124;
 
                            15: outbits = 252;
 
                            16: outbits = 2;
 
                            17: outbits = 130;
 
                            18: outbits = 66;
 
                            19: outbits = 194;
 
                            20: outbits = 34;
 
                            21: outbits = 162;
 
                            22: outbits = 98;
 
                            23: outbits = 226;
 
                            24: outbits = 18;
 
                            25: outbits = 146;
 
                            26: outbits = 82;
 
                            27: outbits = 210;
 
                            28: outbits = 50;
 
                            29: outbits = 178;
 
                            30: outbits = 114;
 
                            31: outbits = 242;
 
                            32: outbits = 10;
 
                            33: outbits = 138;
 
                            34: outbits = 74;
 
                            35: outbits = 202;
 
                            36: outbits = 42;
 
                            37: outbits = 170;
 
                            38: outbits = 106;
 
                            39: outbits = 234;
 
                            40: outbits = 26;
 
                            41: outbits = 154;
 
                            42: outbits = 90;
 
                            43: outbits = 218;
 
                            44: outbits = 58;
 
                            45: outbits = 186;
 
                            46: outbits = 122;
 
                            47: outbits = 250;
 
                            48: outbits = 6;
 
                            49: outbits = 134;
 
                            50: outbits = 70;
 
                            51: outbits = 198;
 
                            52: outbits = 38;
 
                            53: outbits = 166;
 
                            54: outbits = 102;
 
                            55: outbits = 230;
 
                            56: outbits = 22;
 
                            57: outbits = 150;
 
                            58: outbits = 86;
 
                            59: outbits = 214;
 
                            60: outbits = 54;
 
                            61: outbits = 182;
 
                            62: outbits = 118;
 
                            63: outbits = 246;
 
                            64: outbits = 14;
 
                            65: outbits = 142;
 
                            66: outbits = 78;
 
                            67: outbits = 206;
 
                            68: outbits = 46;
 
                            69: outbits = 174;
 
                            70: outbits = 110;
 
                            71: outbits = 238;
 
                            72: outbits = 30;
 
                            73: outbits = 158;
 
                            74: outbits = 94;
 
                            75: outbits = 222;
 
                            76: outbits = 62;
 
                            77: outbits = 190;
 
                            78: outbits = 126;
 
                            79: outbits = 254;
 
                            80: outbits = 1;
 
                            81: outbits = 129;
 
                            82: outbits = 65;
 
                            83: outbits = 193;
 
                            84: outbits = 33;
 
                            85: outbits = 161;
 
                            86: outbits = 97;
 
                            87: outbits = 225;
 
                            88: outbits = 17;
 
                            89: outbits = 145;
 
                            90: outbits = 81;
 
                            91: outbits = 209;
 
                            92: outbits = 49;
 
                            93: outbits = 177;
 
                            94: outbits = 113;
 
                            95: outbits = 241;
 
                            96: outbits = 9;
 
                            97: outbits = 137;
 
                            98: outbits = 73;
 
                            99: outbits = 201;
 
                            100: outbits = 41;
 
                            101: outbits = 169;
 
                            102: outbits = 105;
 
                            103: outbits = 233;
 
                            104: outbits = 25;
 
                            105: outbits = 153;
 
                            106: outbits = 89;
 
                            107: outbits = 217;
 
                            108: outbits = 57;
 
                            109: outbits = 185;
 
                            110: outbits = 121;
 
                            111: outbits = 249;
 
                            112: outbits = 5;
 
                            113: outbits = 133;
 
                            114: outbits = 69;
 
                            115: outbits = 197;
 
                            116: outbits = 37;
 
                            117: outbits = 165;
 
                            118: outbits = 101;
 
                            119: outbits = 229;
 
                            120: outbits = 21;
 
                            121: outbits = 149;
 
                            122: outbits = 85;
 
                            123: outbits = 213;
 
                            124: outbits = 53;
 
                            125: outbits = 181;
 
                            126: outbits = 117;
 
                            127: outbits = 245;
 
                            128: outbits = 13;
 
                            129: outbits = 141;
 
                            130: outbits = 77;
 
                            131: outbits = 205;
 
                            132: outbits = 45;
 
                            133: outbits = 173;
 
                            134: outbits = 109;
 
                            135: outbits = 237;
 
                            136: outbits = 29;
 
                            137: outbits = 157;
 
                            138: outbits = 93;
 
                            139: outbits = 221;
 
                            140: outbits = 61;
 
                            141: outbits = 189;
 
                            142: outbits = 125;
 
                            143: outbits = 253;
 
                            144: outbits = 19;
 
                            145: outbits = 275;
 
                            146: outbits = 147;
 
                            147: outbits = 403;
 
                            148: outbits = 83;
 
                            149: outbits = 339;
 
                            150: outbits = 211;
 
                            151: outbits = 467;
 
                            152: outbits = 51;
 
                            153: outbits = 307;
 
                            154: outbits = 179;
 
                            155: outbits = 435;
 
                            156: outbits = 115;
 
                            157: outbits = 371;
 
                            158: outbits = 243;
 
                            159: outbits = 499;
 
                            160: outbits = 11;
 
                            161: outbits = 267;
 
                            162: outbits = 139;
 
                            163: outbits = 395;
 
                            164: outbits = 75;
 
                            165: outbits = 331;
 
                            166: outbits = 203;
 
                            167: outbits = 459;
 
                            168: outbits = 43;
 
                            169: outbits = 299;
 
                            170: outbits = 171;
 
                            171: outbits = 427;
 
                            172: outbits = 107;
 
                            173: outbits = 363;
 
                            174: outbits = 235;
 
                            175: outbits = 491;
 
                            176: outbits = 27;
 
                            177: outbits = 283;
 
                            178: outbits = 155;
 
                            179: outbits = 411;
 
                            180: outbits = 91;
 
                            181: outbits = 347;
 
                            182: outbits = 219;
 
                            183: outbits = 475;
 
                            184: outbits = 59;
 
                            185: outbits = 315;
 
                            186: outbits = 187;
 
                            187: outbits = 443;
 
                            188: outbits = 123;
 
                            189: outbits = 379;
 
                            190: outbits = 251;
 
                            191: outbits = 507;
 
                            192: outbits = 7;
 
                            193: outbits = 263;
 
                            194: outbits = 135;
 
                            195: outbits = 391;
 
                            196: outbits = 71;
 
                            197: outbits = 327;
 
                            198: outbits = 199;
 
                            199: outbits = 455;
 
                            200: outbits = 39;
 
                            201: outbits = 295;
 
                            202: outbits = 167;
 
                            203: outbits = 423;
 
                            204: outbits = 103;
 
                            205: outbits = 359;
 
                            206: outbits = 231;
 
                            207: outbits = 487;
 
                            208: outbits = 23;
 
                            209: outbits = 279;
 
                            210: outbits = 151;
 
                            211: outbits = 407;
 
                            212: outbits = 87;
 
                            213: outbits = 343;
 
                            214: outbits = 215;
 
                            215: outbits = 471;
 
                            216: outbits = 55;
 
                            217: outbits = 311;
 
                            218: outbits = 183;
 
                            219: outbits = 439;
 
                            220: outbits = 119;
 
                            221: outbits = 375;
 
                            222: outbits = 247;
 
                            223: outbits = 503;
 
                            224: outbits = 15;
 
                            225: outbits = 271;
 
                            226: outbits = 143;
 
                            227: outbits = 399;
 
                            228: outbits = 79;
 
                            229: outbits = 335;
 
                            230: outbits = 207;
 
                            231: outbits = 463;
 
                            232: outbits = 47;
 
                            233: outbits = 303;
 
                            234: outbits = 175;
 
                            235: outbits = 431;
 
                            236: outbits = 111;
 
                            237: outbits = 367;
 
                            238: outbits = 239;
 
                            239: outbits = 495;
 
                            240: outbits = 31;
 
                            241: outbits = 287;
 
                            242: outbits = 159;
 
                            243: outbits = 415;
 
                            244: outbits = 95;
 
                            245: outbits = 351;
 
                            246: outbits = 223;
 
                            247: outbits = 479;
 
                            248: outbits = 63;
 
                            249: outbits = 319;
 
                            250: outbits = 191;
 
                            251: outbits = 447;
 
                            252: outbits = 127;
 
                            253: outbits = 383;
 
                            254: outbits = 255;
 
                            255: outbits = 511;
 
                            256: outbits = 0;
 
                            257: outbits = 64;
 
                            258: outbits = 32;
 
                            259: outbits = 96;
 
                            260: outbits = 16;
 
                            261: outbits = 80;
 
                            262: outbits = 48;
 
                            263: outbits = 112;
 
                            264: outbits = 8;
 
                            265: outbits = 72;
 
                            266: outbits = 40;
 
                            267: outbits = 104;
 
                            268: outbits = 24;
 
                            269: outbits = 88;
 
                            270: outbits = 56;
 
                            271: outbits = 120;
 
                            272: outbits = 4;
 
                            273: outbits = 68;
 
                            274: outbits = 36;
 
                            275: outbits = 100;
 
                            276: outbits = 20;
 
                            277: outbits = 84;
 
                            278: outbits = 52;
 
                            279: outbits = 116;
 
                            280: outbits = 3;
 
                            281: outbits = 131;
 
                            282: outbits = 67;
 
                            283: outbits = 195;
 
                            284: outbits = 35;
 
                            285: outbits = 163;
 
                            286: outbits = 99;
 
                            default: outbits = 227;
 
                        endcase
                        $write("EOF BITS:");
                        $write("EOF BITS:");
                        $write(" ");
                        $write(" ");
                        $write("%0d", cs_i);
                        $write("%0d", cs_i);
                        $write(" ");
                        $write(" ");
                        $write("%h", outlen);
                        $write("%h", outlen);
                        $write(" ");
                        $write(" ");
                        $write("%h", outbits);
                        $write("%0d", outbits);
                        $write("\n");
                        $write("\n");
                        oaddr <= do;
                        oaddr <= do;
                        obyte <= MYHDL13_put(outbits, outlen);
                        obyte <= MYHDL13_put(outbits, outlen);
                        MYHDL14_put_adv(outbits, outlen);
                        MYHDL14_put_adv(outbits, outlen);
                    end
                    end
Line 1330... Line 1655...
                        $write("c1");
                        $write("c1");
                        $write("\n");
                        $write("\n");
                        oaddr <= do;
                        oaddr <= do;
                        obyte <= (adler2 >>> 8);
                        obyte <= (adler2 >>> 8);
                        do <= (do + 1);
                        do <= (do + 1);
 
                        o_oprogress <= (do + 1);
                    end
                    end
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 4))) begin
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 4))) begin
                        $write("c2");
                        $write("c2");
                        $write("\n");
                        $write("\n");
                        oaddr <= do;
                        oaddr <= do;
                        obyte <= (adler2 & 255);
                        obyte <= (adler2 & 255);
                        do <= (do + 1);
                        do <= (do + 1);
 
                        o_oprogress <= (do + 1);
                    end
                    end
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 5))) begin
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 5))) begin
                        $write("c3");
                        $write("c3");
                        $write("\n");
                        $write("\n");
                        oaddr <= do;
                        oaddr <= do;
                        obyte <= (adler1 >>> 8);
                        obyte <= (adler1 >>> 8);
                        do <= (do + 1);
                        do <= (do + 1);
 
                        o_oprogress <= (do + 1);
                    end
                    end
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 6))) begin
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 6))) begin
                        $write("c4");
                        $write("c4");
                        $write("\n");
                        $write("\n");
                        oaddr <= do;
                        oaddr <= do;
                        obyte <= (adler1 & 255);
                        obyte <= (adler1 & 255);
 
                        o_oprogress <= (do + 1);
                    end
                    end
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 7))) begin
                    else if ((($signed({1'b0, cur_cstatic}) - 3) == (isize + 7))) begin
                        $write("EOF finish");
                        $write("EOF finish");
                        $write(" ");
                        $write(" ");
                        $write("%h", do);
                        $write("%h", do);
                        $write("\n");
                        $write("\n");
                        o_done <= 1'b1;
                        o_done <= 1'b1;
                        o_oprogress <= (do + 1);
 
                        state <= 5'b00000;
                        state <= 5'b00000;
                    end
                    end
                    else begin
                    else begin
                        $write("%h", cur_cstatic);
                        $write("%h", cur_cstatic);
                        $write(" ");
                        $write(" ");
Line 1369... Line 1697...
                        $write("\n");
                        $write("\n");
                        $finish;
                        $finish;
                    end
                    end
                end
                end
                else begin
                else begin
                    bdata = iram[di];
                    bdata = iram[(di & 63)];
 
                    o_iprogress <= di;
                    adler1_next = ((adler1 + bdata) % 65521);
                    adler1_next = ((adler1 + bdata) % 65521);
                    adler1 <= adler1_next;
                    adler1 <= adler1_next;
                    adler2 <= ((adler2 + ladler1) % 65521);
                    adler2 <= ((adler2 + ladler1) % 65521);
                    ladler1 <= adler1_next;
                    ladler1 <= adler1_next;
                    state <= 5'b10111;
                    state <= 5'b10111;
Line 1381... Line 1710...
                end
                end
                if ((!no_adv)) begin
                if ((!no_adv)) begin
                    cur_cstatic <= (cur_cstatic + 1);
                    cur_cstatic <= (cur_cstatic + 1);
                end
                end
            end
            end
            5'b11000: begin
            5'b11001: begin
                if ((!1'b1)) begin
                if ((!1'b1)) begin
                    // pass
                    // pass
                end
                end
                else if (flush) begin
                else if (flush) begin
                    MYHDL15_do_flush;
                    MYHDL15_do_flush;
                end
                end
 
                else if ((cur_i == 1024)) begin
 
                    lencode = (length + 254);
 
                    outlen = codeLength[lencode];
 
                    case (lencode)
 
                        0: outbits = 12;
 
                        1: outbits = 140;
 
                        2: outbits = 76;
 
                        3: outbits = 204;
 
                        4: outbits = 44;
 
                        5: outbits = 172;
 
                        6: outbits = 108;
 
                        7: outbits = 236;
 
                        8: outbits = 28;
 
                        9: outbits = 156;
 
                        10: outbits = 92;
 
                        11: outbits = 220;
 
                        12: outbits = 60;
 
                        13: outbits = 188;
 
                        14: outbits = 124;
 
                        15: outbits = 252;
 
                        16: outbits = 2;
 
                        17: outbits = 130;
 
                        18: outbits = 66;
 
                        19: outbits = 194;
 
                        20: outbits = 34;
 
                        21: outbits = 162;
 
                        22: outbits = 98;
 
                        23: outbits = 226;
 
                        24: outbits = 18;
 
                        25: outbits = 146;
 
                        26: outbits = 82;
 
                        27: outbits = 210;
 
                        28: outbits = 50;
 
                        29: outbits = 178;
 
                        30: outbits = 114;
 
                        31: outbits = 242;
 
                        32: outbits = 10;
 
                        33: outbits = 138;
 
                        34: outbits = 74;
 
                        35: outbits = 202;
 
                        36: outbits = 42;
 
                        37: outbits = 170;
 
                        38: outbits = 106;
 
                        39: outbits = 234;
 
                        40: outbits = 26;
 
                        41: outbits = 154;
 
                        42: outbits = 90;
 
                        43: outbits = 218;
 
                        44: outbits = 58;
 
                        45: outbits = 186;
 
                        46: outbits = 122;
 
                        47: outbits = 250;
 
                        48: outbits = 6;
 
                        49: outbits = 134;
 
                        50: outbits = 70;
 
                        51: outbits = 198;
 
                        52: outbits = 38;
 
                        53: outbits = 166;
 
                        54: outbits = 102;
 
                        55: outbits = 230;
 
                        56: outbits = 22;
 
                        57: outbits = 150;
 
                        58: outbits = 86;
 
                        59: outbits = 214;
 
                        60: outbits = 54;
 
                        61: outbits = 182;
 
                        62: outbits = 118;
 
                        63: outbits = 246;
 
                        64: outbits = 14;
 
                        65: outbits = 142;
 
                        66: outbits = 78;
 
                        67: outbits = 206;
 
                        68: outbits = 46;
 
                        69: outbits = 174;
 
                        70: outbits = 110;
 
                        71: outbits = 238;
 
                        72: outbits = 30;
 
                        73: outbits = 158;
 
                        74: outbits = 94;
 
                        75: outbits = 222;
 
                        76: outbits = 62;
 
                        77: outbits = 190;
 
                        78: outbits = 126;
 
                        79: outbits = 254;
 
                        80: outbits = 1;
 
                        81: outbits = 129;
 
                        82: outbits = 65;
 
                        83: outbits = 193;
 
                        84: outbits = 33;
 
                        85: outbits = 161;
 
                        86: outbits = 97;
 
                        87: outbits = 225;
 
                        88: outbits = 17;
 
                        89: outbits = 145;
 
                        90: outbits = 81;
 
                        91: outbits = 209;
 
                        92: outbits = 49;
 
                        93: outbits = 177;
 
                        94: outbits = 113;
 
                        95: outbits = 241;
 
                        96: outbits = 9;
 
                        97: outbits = 137;
 
                        98: outbits = 73;
 
                        99: outbits = 201;
 
                        100: outbits = 41;
 
                        101: outbits = 169;
 
                        102: outbits = 105;
 
                        103: outbits = 233;
 
                        104: outbits = 25;
 
                        105: outbits = 153;
 
                        106: outbits = 89;
 
                        107: outbits = 217;
 
                        108: outbits = 57;
 
                        109: outbits = 185;
 
                        110: outbits = 121;
 
                        111: outbits = 249;
 
                        112: outbits = 5;
 
                        113: outbits = 133;
 
                        114: outbits = 69;
 
                        115: outbits = 197;
 
                        116: outbits = 37;
 
                        117: outbits = 165;
 
                        118: outbits = 101;
 
                        119: outbits = 229;
 
                        120: outbits = 21;
 
                        121: outbits = 149;
 
                        122: outbits = 85;
 
                        123: outbits = 213;
 
                        124: outbits = 53;
 
                        125: outbits = 181;
 
                        126: outbits = 117;
 
                        127: outbits = 245;
 
                        128: outbits = 13;
 
                        129: outbits = 141;
 
                        130: outbits = 77;
 
                        131: outbits = 205;
 
                        132: outbits = 45;
 
                        133: outbits = 173;
 
                        134: outbits = 109;
 
                        135: outbits = 237;
 
                        136: outbits = 29;
 
                        137: outbits = 157;
 
                        138: outbits = 93;
 
                        139: outbits = 221;
 
                        140: outbits = 61;
 
                        141: outbits = 189;
 
                        142: outbits = 125;
 
                        143: outbits = 253;
 
                        144: outbits = 19;
 
                        145: outbits = 275;
 
                        146: outbits = 147;
 
                        147: outbits = 403;
 
                        148: outbits = 83;
 
                        149: outbits = 339;
 
                        150: outbits = 211;
 
                        151: outbits = 467;
 
                        152: outbits = 51;
 
                        153: outbits = 307;
 
                        154: outbits = 179;
 
                        155: outbits = 435;
 
                        156: outbits = 115;
 
                        157: outbits = 371;
 
                        158: outbits = 243;
 
                        159: outbits = 499;
 
                        160: outbits = 11;
 
                        161: outbits = 267;
 
                        162: outbits = 139;
 
                        163: outbits = 395;
 
                        164: outbits = 75;
 
                        165: outbits = 331;
 
                        166: outbits = 203;
 
                        167: outbits = 459;
 
                        168: outbits = 43;
 
                        169: outbits = 299;
 
                        170: outbits = 171;
 
                        171: outbits = 427;
 
                        172: outbits = 107;
 
                        173: outbits = 363;
 
                        174: outbits = 235;
 
                        175: outbits = 491;
 
                        176: outbits = 27;
 
                        177: outbits = 283;
 
                        178: outbits = 155;
 
                        179: outbits = 411;
 
                        180: outbits = 91;
 
                        181: outbits = 347;
 
                        182: outbits = 219;
 
                        183: outbits = 475;
 
                        184: outbits = 59;
 
                        185: outbits = 315;
 
                        186: outbits = 187;
 
                        187: outbits = 443;
 
                        188: outbits = 123;
 
                        189: outbits = 379;
 
                        190: outbits = 251;
 
                        191: outbits = 507;
 
                        192: outbits = 7;
 
                        193: outbits = 263;
 
                        194: outbits = 135;
 
                        195: outbits = 391;
 
                        196: outbits = 71;
 
                        197: outbits = 327;
 
                        198: outbits = 199;
 
                        199: outbits = 455;
 
                        200: outbits = 39;
 
                        201: outbits = 295;
 
                        202: outbits = 167;
 
                        203: outbits = 423;
 
                        204: outbits = 103;
 
                        205: outbits = 359;
 
                        206: outbits = 231;
 
                        207: outbits = 487;
 
                        208: outbits = 23;
 
                        209: outbits = 279;
 
                        210: outbits = 151;
 
                        211: outbits = 407;
 
                        212: outbits = 87;
 
                        213: outbits = 343;
 
                        214: outbits = 215;
 
                        215: outbits = 471;
 
                        216: outbits = 55;
 
                        217: outbits = 311;
 
                        218: outbits = 183;
 
                        219: outbits = 439;
 
                        220: outbits = 119;
 
                        221: outbits = 375;
 
                        222: outbits = 247;
 
                        223: outbits = 503;
 
                        224: outbits = 15;
 
                        225: outbits = 271;
 
                        226: outbits = 143;
 
                        227: outbits = 399;
 
                        228: outbits = 79;
 
                        229: outbits = 335;
 
                        230: outbits = 207;
 
                        231: outbits = 463;
 
                        232: outbits = 47;
 
                        233: outbits = 303;
 
                        234: outbits = 175;
 
                        235: outbits = 431;
 
                        236: outbits = 111;
 
                        237: outbits = 367;
 
                        238: outbits = 239;
 
                        239: outbits = 495;
 
                        240: outbits = 31;
 
                        241: outbits = 287;
 
                        242: outbits = 159;
 
                        243: outbits = 415;
 
                        244: outbits = 95;
 
                        245: outbits = 351;
 
                        246: outbits = 223;
 
                        247: outbits = 479;
 
                        248: outbits = 63;
 
                        249: outbits = 319;
 
                        250: outbits = 191;
 
                        251: outbits = 447;
 
                        252: outbits = 127;
 
                        253: outbits = 383;
 
                        254: outbits = 255;
 
                        255: outbits = 511;
 
                        256: outbits = 0;
 
                        257: outbits = 64;
 
                        258: outbits = 32;
 
                        259: outbits = 96;
 
                        260: outbits = 16;
 
                        261: outbits = 80;
 
                        262: outbits = 48;
 
                        263: outbits = 112;
 
                        264: outbits = 8;
 
                        265: outbits = 72;
 
                        266: outbits = 40;
 
                        267: outbits = 104;
 
                        268: outbits = 24;
 
                        269: outbits = 88;
 
                        270: outbits = 56;
 
                        271: outbits = 120;
 
                        272: outbits = 4;
 
                        273: outbits = 68;
 
                        274: outbits = 36;
 
                        275: outbits = 100;
 
                        276: outbits = 20;
 
                        277: outbits = 84;
 
                        278: outbits = 52;
 
                        279: outbits = 116;
 
                        280: outbits = 3;
 
                        281: outbits = 131;
 
                        282: outbits = 67;
 
                        283: outbits = 195;
 
                        284: outbits = 35;
 
                        285: outbits = 163;
 
                        286: outbits = 99;
 
                        default: outbits = 227;
 
                    endcase
 
                    oaddr <= do;
 
                    obyte <= MYHDL16_put(outbits, outlen);
 
                    MYHDL17_put_adv(outbits, outlen);
 
                    cur_i <= 0;
 
                end
                else begin
                else begin
                    case ((cur_i + 1))
                    case ((cur_i + 1))
                        0: nextdist = 1;
                        0: nextdist = 1;
                        1: nextdist = 2;
                        1: nextdist = 2;
                        2: nextdist = 3;
                        2: nextdist = 3;
Line 1475... Line 2102...
                            default: extra_bits = 13;
                            default: extra_bits = 13;
                        endcase
                        endcase
                        if ((extra_dist > ((1 << extra_bits) - 1))) begin
                        if ((extra_dist > ((1 << extra_bits) - 1))) begin
                            $finish;
                            $finish;
                        end
                        end
                        outcode = (MYHDL16_rev_bits(cur_i, 5) | (extra_dist << 5));
                        outcode = (MYHDL18_rev_bits(cur_i, 5) | (extra_dist << 5));
                        oaddr <= do;
                        oaddr <= do;
                        obyte <= MYHDL17_put(outcode, (5 + extra_bits));
                        obyte <= MYHDL19_put(outcode, (5 + extra_bits));
                        MYHDL18_put_adv(outcode, (5 + extra_bits));
                        MYHDL20_put_adv(outcode, (5 + extra_bits));
                        cur_i <= (($signed({1'b0, di}) - $signed({1'b0, length})) + 1);
                        cur_i <= (($signed({1'b0, di}) - $signed({1'b0, length})) + 1);
                        state <= 5'b11001;
                        state <= 5'b11010;
                    end
                    end
                    else begin
                    else begin
                        cur_i <= (cur_i + 1);
                        cur_i <= (cur_i + 1);
                    end
                    end
                end
                end
            end
            end
            5'b11001: begin
            5'b11010: begin
                if ((!1'b1)) begin
                if ((!1'b1)) begin
                    // pass
                    // pass
                end
                end
                else if ((cur_i < di)) begin
                else if ((cur_i < di)) begin
                    bdata = iram[(cur_i & 127)];
                    bdata = iram[(cur_i & 63)];
                    adler1_next = ((adler1 + bdata) % 65521);
                    adler1_next = ((adler1 + bdata) % 65521);
                    adler1 <= adler1_next;
                    adler1 <= adler1_next;
                    adler2 <= ((adler2 + ladler1) % 65521);
                    adler2 <= ((adler2 + ladler1) % 65521);
                    ladler1 <= adler1_next;
                    ladler1 <= adler1_next;
                    cur_i <= (cur_i + 1);
                    cur_i <= (cur_i + 1);
                end
                end
                else begin
                else begin
                    state <= 5'b10110;
                    state <= 5'b10110;
                end
                end
            end
            end
            5'b10111: begin
            5'b11000: begin
                if ((!1'b1)) begin
                if ((1'b1 && 1'b1)) begin
                    // pass
                    lfmatch = length;
                end
                    distance = (lfmatch + 1);
                else if ((!filled)) begin
                    fmatch2 = (($signed({1'b0, di}) - $signed({1'b0, lfmatch})) + 2);
                    filled <= 1'b1;
 
                end
 
                else if ((nb < 4)) begin
 
                    // pass
 
                end
 
                else begin
 
                    if (((cur_search >= 0) && (cur_search >= ($signed({1'b0, di}) - 32)) && ($signed({1'b0, di}) < ($signed({1'b0, isize}) - 3)))) begin
 
                        //                         
 
                        if (1'b1) begin
 
                            found = 0;
 
                            fmatch = 0;
 
                            begin: MYHDL19_BREAK
 
                            for (si=0; si<32; si=si+1) begin
 
                                if (smatch[si]) begin
 
                                    $write("fmatch");
 
                                    $write(" ");
 
                                    $write("%0d", si);
 
                                    $write("\n");
 
                                    fmatch = si;
 
                                    found = 1;
 
                                    disable MYHDL19_BREAK;
 
                                end
 
                            end
 
                            end
 
                            if (((!found) || ((($signed({1'b0, di}) - fmatch) - 1) < 0))) begin
 
                                cur_search <= (-1);
 
                            end
 
                            else begin
 
                                distance = (fmatch + 1);
 
                                fmatch = (($signed({1'b0, di}) - fmatch) + 2);
 
                                lencode = 257;
                                lencode = 257;
                                match = 3;
                                match = 3;
                                if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 4)) && (iram[(fmatch & 127)] == b4))) begin
                    if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 4)) && (iram[(fmatch2 & 63)] == b4))) begin
                                    lencode = 258;
                                    lencode = 258;
                                    match = 4;
                                    match = 4;
                                    if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 5)) && (iram[((fmatch + 1) & 127)] == b5))) begin
                        if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 5)) && (iram[((fmatch2 + 1) & 63)] == b5))) begin
                                        lencode = 259;
                                        lencode = 259;
                                        match = 5;
                                        match = 5;
                                        if ((1'b1 && ($signed({1'b0, di}) < ($signed({1'b0, isize}) - 6)) && (iram[((fmatch + 2) & 127)] == b6))) begin
                            if ((1'b1 && ($signed({1'b0, di}) < ($signed({1'b0, isize}) - 6)) && (iram[((fmatch2 + 2) & 63)] == b6))) begin
                                            lencode = 260;
                                            lencode = 260;
                                            match = 6;
                                            match = 6;
                                            if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 7)) && (iram[((fmatch + 3) & 127)] == b7))) begin
                                if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 7)) && (iram[((fmatch2 + 3) & 63)] == b7))) begin
                                                lencode = 261;
                                                lencode = 261;
                                                match = 7;
                                                match = 7;
                                                if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 8)) && (iram[((fmatch + 4) & 127)] == b8))) begin
                                    if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 8)) && (iram[((fmatch2 + 4) & 63)] == b8))) begin
                                                    lencode = 262;
                                                    lencode = 262;
                                                    match = 8;
                                                    match = 8;
                                                    if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 9)) && (iram[((fmatch + 5) & 127)] == b9))) begin
                                        if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 9)) && (iram[((fmatch2 + 5) & 63)] == b9))) begin
                                                        lencode = 263;
                                                        lencode = 263;
                                                        match = 9;
                                                        match = 9;
                                                        if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 10)) && (iram[((fmatch + 6) & 127)] == b10))) begin
                                            if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 10)) && (iram[((fmatch2 + 6) & 63)] == b10))) begin
                                                            lencode = 264;
                                                            lencode = 264;
                                                            match = 10;
                                                            match = 10;
                                                        end
                                                        end
                                                    end
                                                    end
                                                end
                                                end
                                            end
                                            end
                                        end
                                        end
                                    end
                                    end
                                end
                                end
                                $write("fast:");
 
                                $write(" ");
 
                                $write("%0d", distance);
 
                                $write(" ");
 
                                $write("%h", di);
 
                                $write(" ");
 
                                $write("%h", isize);
 
                                $write(" ");
 
                                $write("%0d", match);
 
                                $write("\n");
 
                                outlen = codeLength[lencode];
 
                                outbits = code_bits[lencode];
 
                                oaddr <= do;
 
                                obyte <= MYHDL21_put(outbits, outlen);
 
                                MYHDL22_put_adv(outbits, outlen);
 
                                cur_dist <= distance;
                                cur_dist <= distance;
                                cur_i <= 0;
                    cur_i <= 1024;
                                di <= (di + match);
                                di <= (di + match);
                                cur_cstatic <= ((cur_cstatic + match) - 1);
                                cur_cstatic <= ((cur_cstatic + match) - 1);
                                length <= match;
                                length <= match;
 
                    state <= 5'b11001;
 
                end
 
            end
 
            5'b10111: begin
 
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((!filled)) begin
 
                    filled <= 1'b1;
 
                end
 
                else if ((nb < 4)) begin
 
                    // pass
 
                end
 
                else begin
 
                    if (((cur_search >= 0) && (cur_search >= ($signed({1'b0, di}) - 32)) && ($signed({1'b0, di}) < ($signed({1'b0, isize}) - 3)))) begin
 
                        if (1'b1) begin
 
                            found = 0;
 
                            fmatch = 0;
 
                            begin: MYHDL21_BREAK
 
                            for (si=0; si<32; si=si+1) begin
 
                                if (smatch[si]) begin
 
                                    fmatch = si;
 
                                    found = 1;
 
                                    disable MYHDL21_BREAK;
 
                                end
 
                            end
 
                            end
 
                            if (((!found) || ((($signed({1'b0, di}) - fmatch) - 1) < 0))) begin
 
                                cur_search <= (-1);
 
                            end
 
                            else begin
 
                                length <= fmatch;
                                state <= 5'b11000;
                                state <= 5'b11000;
                            end
                            end
                        end
                        end
                        else if (((iram[(cur_search & 127)] == b1) && (iram[((cur_search + 1) & 127)] == b2) && (iram[((cur_search + 2) & 127)] == b3))) begin
                        else if (((!1'b1) && (iram[(cur_search & 63)] == b1) && (iram[((cur_search + 1) & 63)] == b2) && (iram[((cur_search + 2) & 63)] == b3))) begin
                            lencode = 257;
                            lencode = 257;
                            match = 3;
                            match = 3;
                            if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 4)) && (iram[((cur_search + 3) & 127)] == b4))) begin
                            if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 4)) && (iram[((cur_search + 3) & 63)] == b4))) begin
                                lencode = 258;
                                lencode = 258;
                                match = 4;
                                match = 4;
                                if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 5)) && (iram[((cur_search + 4) & 127)] == iram[((di + 4) & 127)]))) begin
                                if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 5)) && (iram[((cur_search + 4) & 63)] == b5))) begin
                                    lencode = 259;
                                    lencode = 259;
                                    match = 5;
                                    match = 5;
                                    if ((1'b1 && ($signed({1'b0, di}) < ($signed({1'b0, isize}) - 6)) && (iram[((cur_search + 5) & 127)] == iram[((di + 5) & 127)]))) begin
                                    if ((1'b1 && ($signed({1'b0, di}) < ($signed({1'b0, isize}) - 6)) && (iram[((cur_search + 5) & 63)] == b6))) begin
                                        lencode = 260;
                                        lencode = 260;
                                        match = 6;
                                        match = 6;
                                        if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 7)) && (iram[((cur_search + 6) & 127)] == iram[((di + 6) & 127)]))) begin
                                        if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 7)) && (iram[((cur_search + 6) & 63)] == b7))) begin
                                            lencode = 261;
                                            lencode = 261;
                                            match = 7;
                                            match = 7;
                                            if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 8)) && (iram[((cur_search + 7) & 127)] == iram[((di + 7) & 127)]))) begin
                                            if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 8)) && (iram[((cur_search + 7) & 63)] == b8))) begin
                                                lencode = 262;
                                                lencode = 262;
                                                match = 8;
                                                match = 8;
                                                if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 9)) && (iram[((cur_search + 8) & 127)] == iram[((di + 8) & 127)]))) begin
                                                if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 9)) && (iram[((cur_search + 8) & 63)] == b9))) begin
                                                    lencode = 263;
                                                    lencode = 263;
                                                    match = 9;
                                                    match = 9;
                                                    if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 10)) && (iram[((cur_search + 9) & 127)] == iram[((di + 9) & 127)]))) begin
                                                    if ((($signed({1'b0, di}) < ($signed({1'b0, isize}) - 10)) && (iram[((cur_search + 9) & 63)] == b10))) begin
                                                        lencode = 264;
                                                        lencode = 264;
                                                        match = 10;
                                                        match = 10;
                                                    end
                                                    end
                                                end
                                                end
                                            end
                                            end
                                        end
                                        end
                                    end
                                    end
                                end
                                end
                            end
                            end
                            $write("found:");
 
                            $write(" ");
 
                            $write("%h", cur_search);
 
                            $write(" ");
 
                            $write("%h", di);
 
                            $write(" ");
 
                            $write("%h", isize);
 
                            $write(" ");
 
                            $write("%0d", match);
 
                            $write("\n");
 
                            outlen = codeLength[lencode];
 
                            outbits = code_bits[lencode];
 
                            oaddr <= do;
 
                            obyte <= MYHDL23_put(outbits, outlen);
 
                            MYHDL24_put_adv(outbits, outlen);
 
                            distance = ($signed({1'b0, di}) - cur_search);
                            distance = ($signed({1'b0, di}) - cur_search);
                            cur_dist <= distance;
                            cur_dist <= distance;
                            cur_i <= 0;
                            cur_i <= 1024;
                            di <= (di + match);
                            di <= (di + match);
                            cur_cstatic <= ((cur_cstatic + match) - 1);
                            cur_cstatic <= ((cur_cstatic + match) - 1);
                            length <= match;
                            length <= match;
                            state <= 5'b11000;
                            state <= 5'b11001;
                        end
                        end
                        else begin
                        else begin
                            cur_search <= (cur_search - 1);
                            cur_search <= (cur_search - 1);
                        end
                        end
                    end
                    end
                    else begin
                    else begin
                        bdata = iram[di];
                        bdata = b1;
                        di <= (di + 1);
                        di <= (di + 1);
                        outlen = codeLength[bdata];
                        outlen = codeLength[bdata];
                        outbits = code_bits[bdata];
                        case (bdata)
 
                            0: outbits = 12;
 
                            1: outbits = 140;
 
                            2: outbits = 76;
 
                            3: outbits = 204;
 
                            4: outbits = 44;
 
                            5: outbits = 172;
 
                            6: outbits = 108;
 
                            7: outbits = 236;
 
                            8: outbits = 28;
 
                            9: outbits = 156;
 
                            10: outbits = 92;
 
                            11: outbits = 220;
 
                            12: outbits = 60;
 
                            13: outbits = 188;
 
                            14: outbits = 124;
 
                            15: outbits = 252;
 
                            16: outbits = 2;
 
                            17: outbits = 130;
 
                            18: outbits = 66;
 
                            19: outbits = 194;
 
                            20: outbits = 34;
 
                            21: outbits = 162;
 
                            22: outbits = 98;
 
                            23: outbits = 226;
 
                            24: outbits = 18;
 
                            25: outbits = 146;
 
                            26: outbits = 82;
 
                            27: outbits = 210;
 
                            28: outbits = 50;
 
                            29: outbits = 178;
 
                            30: outbits = 114;
 
                            31: outbits = 242;
 
                            32: outbits = 10;
 
                            33: outbits = 138;
 
                            34: outbits = 74;
 
                            35: outbits = 202;
 
                            36: outbits = 42;
 
                            37: outbits = 170;
 
                            38: outbits = 106;
 
                            39: outbits = 234;
 
                            40: outbits = 26;
 
                            41: outbits = 154;
 
                            42: outbits = 90;
 
                            43: outbits = 218;
 
                            44: outbits = 58;
 
                            45: outbits = 186;
 
                            46: outbits = 122;
 
                            47: outbits = 250;
 
                            48: outbits = 6;
 
                            49: outbits = 134;
 
                            50: outbits = 70;
 
                            51: outbits = 198;
 
                            52: outbits = 38;
 
                            53: outbits = 166;
 
                            54: outbits = 102;
 
                            55: outbits = 230;
 
                            56: outbits = 22;
 
                            57: outbits = 150;
 
                            58: outbits = 86;
 
                            59: outbits = 214;
 
                            60: outbits = 54;
 
                            61: outbits = 182;
 
                            62: outbits = 118;
 
                            63: outbits = 246;
 
                            64: outbits = 14;
 
                            65: outbits = 142;
 
                            66: outbits = 78;
 
                            67: outbits = 206;
 
                            68: outbits = 46;
 
                            69: outbits = 174;
 
                            70: outbits = 110;
 
                            71: outbits = 238;
 
                            72: outbits = 30;
 
                            73: outbits = 158;
 
                            74: outbits = 94;
 
                            75: outbits = 222;
 
                            76: outbits = 62;
 
                            77: outbits = 190;
 
                            78: outbits = 126;
 
                            79: outbits = 254;
 
                            80: outbits = 1;
 
                            81: outbits = 129;
 
                            82: outbits = 65;
 
                            83: outbits = 193;
 
                            84: outbits = 33;
 
                            85: outbits = 161;
 
                            86: outbits = 97;
 
                            87: outbits = 225;
 
                            88: outbits = 17;
 
                            89: outbits = 145;
 
                            90: outbits = 81;
 
                            91: outbits = 209;
 
                            92: outbits = 49;
 
                            93: outbits = 177;
 
                            94: outbits = 113;
 
                            95: outbits = 241;
 
                            96: outbits = 9;
 
                            97: outbits = 137;
 
                            98: outbits = 73;
 
                            99: outbits = 201;
 
                            100: outbits = 41;
 
                            101: outbits = 169;
 
                            102: outbits = 105;
 
                            103: outbits = 233;
 
                            104: outbits = 25;
 
                            105: outbits = 153;
 
                            106: outbits = 89;
 
                            107: outbits = 217;
 
                            108: outbits = 57;
 
                            109: outbits = 185;
 
                            110: outbits = 121;
 
                            111: outbits = 249;
 
                            112: outbits = 5;
 
                            113: outbits = 133;
 
                            114: outbits = 69;
 
                            115: outbits = 197;
 
                            116: outbits = 37;
 
                            117: outbits = 165;
 
                            118: outbits = 101;
 
                            119: outbits = 229;
 
                            120: outbits = 21;
 
                            121: outbits = 149;
 
                            122: outbits = 85;
 
                            123: outbits = 213;
 
                            124: outbits = 53;
 
                            125: outbits = 181;
 
                            126: outbits = 117;
 
                            127: outbits = 245;
 
                            128: outbits = 13;
 
                            129: outbits = 141;
 
                            130: outbits = 77;
 
                            131: outbits = 205;
 
                            132: outbits = 45;
 
                            133: outbits = 173;
 
                            134: outbits = 109;
 
                            135: outbits = 237;
 
                            136: outbits = 29;
 
                            137: outbits = 157;
 
                            138: outbits = 93;
 
                            139: outbits = 221;
 
                            140: outbits = 61;
 
                            141: outbits = 189;
 
                            142: outbits = 125;
 
                            143: outbits = 253;
 
                            144: outbits = 19;
 
                            145: outbits = 275;
 
                            146: outbits = 147;
 
                            147: outbits = 403;
 
                            148: outbits = 83;
 
                            149: outbits = 339;
 
                            150: outbits = 211;
 
                            151: outbits = 467;
 
                            152: outbits = 51;
 
                            153: outbits = 307;
 
                            154: outbits = 179;
 
                            155: outbits = 435;
 
                            156: outbits = 115;
 
                            157: outbits = 371;
 
                            158: outbits = 243;
 
                            159: outbits = 499;
 
                            160: outbits = 11;
 
                            161: outbits = 267;
 
                            162: outbits = 139;
 
                            163: outbits = 395;
 
                            164: outbits = 75;
 
                            165: outbits = 331;
 
                            166: outbits = 203;
 
                            167: outbits = 459;
 
                            168: outbits = 43;
 
                            169: outbits = 299;
 
                            170: outbits = 171;
 
                            171: outbits = 427;
 
                            172: outbits = 107;
 
                            173: outbits = 363;
 
                            174: outbits = 235;
 
                            175: outbits = 491;
 
                            176: outbits = 27;
 
                            177: outbits = 283;
 
                            178: outbits = 155;
 
                            179: outbits = 411;
 
                            180: outbits = 91;
 
                            181: outbits = 347;
 
                            182: outbits = 219;
 
                            183: outbits = 475;
 
                            184: outbits = 59;
 
                            185: outbits = 315;
 
                            186: outbits = 187;
 
                            187: outbits = 443;
 
                            188: outbits = 123;
 
                            189: outbits = 379;
 
                            190: outbits = 251;
 
                            191: outbits = 507;
 
                            192: outbits = 7;
 
                            193: outbits = 263;
 
                            194: outbits = 135;
 
                            195: outbits = 391;
 
                            196: outbits = 71;
 
                            197: outbits = 327;
 
                            198: outbits = 199;
 
                            199: outbits = 455;
 
                            200: outbits = 39;
 
                            201: outbits = 295;
 
                            202: outbits = 167;
 
                            203: outbits = 423;
 
                            204: outbits = 103;
 
                            205: outbits = 359;
 
                            206: outbits = 231;
 
                            207: outbits = 487;
 
                            208: outbits = 23;
 
                            209: outbits = 279;
 
                            210: outbits = 151;
 
                            211: outbits = 407;
 
                            212: outbits = 87;
 
                            213: outbits = 343;
 
                            214: outbits = 215;
 
                            215: outbits = 471;
 
                            216: outbits = 55;
 
                            217: outbits = 311;
 
                            218: outbits = 183;
 
                            219: outbits = 439;
 
                            220: outbits = 119;
 
                            221: outbits = 375;
 
                            222: outbits = 247;
 
                            223: outbits = 503;
 
                            224: outbits = 15;
 
                            225: outbits = 271;
 
                            226: outbits = 143;
 
                            227: outbits = 399;
 
                            228: outbits = 79;
 
                            229: outbits = 335;
 
                            230: outbits = 207;
 
                            231: outbits = 463;
 
                            232: outbits = 47;
 
                            233: outbits = 303;
 
                            234: outbits = 175;
 
                            235: outbits = 431;
 
                            236: outbits = 111;
 
                            237: outbits = 367;
 
                            238: outbits = 239;
 
                            239: outbits = 495;
 
                            240: outbits = 31;
 
                            241: outbits = 287;
 
                            242: outbits = 159;
 
                            243: outbits = 415;
 
                            244: outbits = 95;
 
                            245: outbits = 351;
 
                            246: outbits = 223;
 
                            247: outbits = 479;
 
                            248: outbits = 63;
 
                            249: outbits = 319;
 
                            250: outbits = 191;
 
                            251: outbits = 447;
 
                            252: outbits = 127;
 
                            253: outbits = 383;
 
                            254: outbits = 255;
 
                            255: outbits = 511;
 
                            256: outbits = 0;
 
                            257: outbits = 64;
 
                            258: outbits = 32;
 
                            259: outbits = 96;
 
                            260: outbits = 16;
 
                            261: outbits = 80;
 
                            262: outbits = 48;
 
                            263: outbits = 112;
 
                            264: outbits = 8;
 
                            265: outbits = 72;
 
                            266: outbits = 40;
 
                            267: outbits = 104;
 
                            268: outbits = 24;
 
                            269: outbits = 88;
 
                            270: outbits = 56;
 
                            271: outbits = 120;
 
                            272: outbits = 4;
 
                            273: outbits = 68;
 
                            274: outbits = 36;
 
                            275: outbits = 100;
 
                            276: outbits = 20;
 
                            277: outbits = 84;
 
                            278: outbits = 52;
 
                            279: outbits = 116;
 
                            280: outbits = 3;
 
                            281: outbits = 131;
 
                            282: outbits = 67;
 
                            283: outbits = 195;
 
                            284: outbits = 35;
 
                            285: outbits = 163;
 
                            286: outbits = 99;
 
                            default: outbits = 227;
 
                        endcase
                        oaddr <= do;
                        oaddr <= do;
                        obyte <= MYHDL25_put(outbits, outlen);
                        obyte <= MYHDL23_put(outbits, outlen);
                        MYHDL26_put_adv(outbits, outlen);
                        MYHDL24_put_adv(outbits, outlen);
                        state <= 5'b10110;
                        state <= 5'b10110;
                    end
                    end
                end
                end
            end
            end
            5'b01110: begin
            5'b01110: begin
Line 1675... Line 2563...
                end
                end
                for (stat_i=280; stat_i<288; stat_i=stat_i+1) begin
                for (stat_i=280; stat_i<288; stat_i=stat_i+1) begin
                    codeLength[stat_i] <= 8;
                    codeLength[stat_i] <= 8;
                end
                end
                numCodeLength <= 288;
                numCodeLength <= 288;
 
                if (do_compress) begin
 
                    state <= 5'b10110;
 
                end
 
                else begin
                cur_HF1 <= 0;
                cur_HF1 <= 0;
                state <= 5'b00111;
                state <= 5'b00111;
                // if cur_static < 288:
                end
                //     if cur_static < 144:
 
                //         codeLength[cur_static].next = 8
 
                //     elif cur_static < 256:
 
                //         codeLength[cur_static].next = 9
 
                //     elif cur_static < 280:
 
                //         codeLength[cur_static].next = 7
 
                //     else:
 
                //         codeLength[cur_static].next = 8
 
                //     cur_static.next = cur_static + 1
 
                // else:
 
                //     numCodeLength.next = 288
 
                //     cur_HF1.next = 0
 
                //     state.next = d_state.HF1
 
            end
            end
            5'b00010: begin
            5'b00010: begin
                if ((!filled)) begin
                if (((!1'b1) || (!1'b0))) begin
 
                    // pass
 
                end
 
                else if ((!filled)) begin
                    filled <= 1'b1;
                    filled <= 1'b1;
                end
                end
                else if ((nb < 4)) begin
                else if ((nb < 4)) begin
                    // pass
                    // pass
                end
                end
                else if ((numLiterals == 0)) begin
                else if ((numLiterals == 0)) begin
                    numLiterals <= (257 + MYHDL35_get4(0, 5));
                    $write("%h", di);
 
                    $write(" ");
 
                    $write("%h", isize);
 
                    $write("\n");
 
                    numLiterals <= (257 + MYHDL33_get4(0, 5));
                    $write("NL:");
                    $write("NL:");
                    $write(" ");
                    $write(" ");
                    $write("%0d", (257 + MYHDL36_get4(0, 5)));
                    $write("%0d", (257 + MYHDL34_get4(0, 5)));
                    $write("\n");
                    $write("\n");
                    numDistance <= (1 + MYHDL37_get4(5, 5));
                    numDistance <= (1 + MYHDL35_get4(5, 5));
                    $write("ND:");
                    $write("ND:");
                    $write(" ");
                    $write(" ");
                    $write("%0d", (1 + MYHDL38_get4(5, 5)));
                    $write("%0d", (1 + MYHDL36_get4(5, 5)));
                    $write("\n");
                    $write("\n");
                    b_numCodeLength <= (4 + MYHDL39_get4(10, 4));
                    b_numCodeLength <= (4 + MYHDL37_get4(10, 4));
                    $write("NCL:");
                    $write("NCL:");
                    $write(" ");
                    $write(" ");
                    $write("%0d", (4 + MYHDL40_get4(10, 4)));
                    $write("%0d", (4 + MYHDL38_get4(10, 4)));
                    $write("\n");
                    $write("\n");
                    numCodeLength <= 0;
                    numCodeLength <= 0;
                    MYHDL41_adv(14);
                    MYHDL39_adv(14);
                end
                end
                else begin
                else begin
                    if ((numCodeLength < 19)) begin
                    if ((numCodeLength < 19)) begin
                        case (numCodeLength)
                        case (numCodeLength)
                            0: clo_i = 16;
                            0: clo_i = 16;
Line 1742... Line 2628...
                            16: clo_i = 14;
                            16: clo_i = 14;
                            17: clo_i = 1;
                            17: clo_i = 1;
                            default: clo_i = 15;
                            default: clo_i = 15;
                        endcase
                        endcase
                        if ((numCodeLength < b_numCodeLength)) begin
                        if ((numCodeLength < b_numCodeLength)) begin
                            codeLength[clo_i] <= MYHDL42_get4(0, 3);
                            codeLength[clo_i] <= MYHDL40_get4(0, 3);
                            MYHDL43_adv(3);
                            MYHDL41_adv(3);
                        end
                        end
                        else begin
                        else begin
                            codeLength[clo_i] <= 0;
                            codeLength[clo_i] <= 0;
                        end
                        end
                        numCodeLength <= (numCodeLength + 1);
                        numCodeLength <= (numCodeLength + 1);
Line 1758... Line 2644...
                        state <= 5'b00111;
                        state <= 5'b00111;
                    end
                    end
                end
                end
            end
            end
            5'b00011: begin
            5'b00011: begin
                if ((!filled)) begin
                if (((!1'b1) || (!1'b0))) begin
 
                    // pass
 
                end
 
                else if ((!filled)) begin
                    filled <= 1'b1;
                    filled <= 1'b1;
                end
                end
                else if ((nb < 4)) begin
                else if ((nb < 4)) begin
                    // pass
                    // pass
                end
                end
Line 1771... Line 2660...
                    if ((code < 16)) begin
                    if ((code < 16)) begin
                        howOften <= 1;
                        howOften <= 1;
                        lastToken <= code;
                        lastToken <= code;
                    end
                    end
                    else if ((code == 16)) begin
                    else if ((code == 16)) begin
                        howOften <= (3 + MYHDL44_get4(0, 2));
                        howOften <= (3 + MYHDL42_get4(0, 2));
                        n_adv = 2;
                        n_adv = 2;
                    end
                    end
                    else if ((code == 17)) begin
                    else if ((code == 17)) begin
                        howOften <= (3 + MYHDL45_get4(0, 3));
                        howOften <= (3 + MYHDL43_get4(0, 3));
                        lastToken <= 0;
                        lastToken <= 0;
                        n_adv = 3;
                        n_adv = 3;
                    end
                    end
                    else if ((code == 18)) begin
                    else if ((code == 18)) begin
                        howOften <= (11 + MYHDL46_get4(0, 7));
                        howOften <= (11 + MYHDL44_get4(0, 7));
                        lastToken <= 0;
                        lastToken <= 0;
                        n_adv = 7;
                        n_adv = 7;
                    end
                    end
                    else begin
                    else begin
                        $finish;
                        $finish;
                    end
                    end
                    if ((n_adv != 0)) begin
                    if ((n_adv != 0)) begin
                        MYHDL47_adv(n_adv);
                        MYHDL45_adv(n_adv);
                    end
                    end
                    state <= 5'b00100;
                    state <= 5'b00100;
                end
                end
                else begin
                else begin
                    $write("FILL UP");
                    $write("FILL UP");
Line 1806... Line 2695...
                    end
                    end
                    cur_i <= numLiterals;
                    cur_i <= numLiterals;
                    state <= 5'b00110;
                    state <= 5'b00110;
                end
                end
            end
            end
            default: begin
            5'b00110: begin
                if ((state == 5'b00110)) begin
                if ((!1'b1)) begin
                    if ((cur_i < 288)) begin
                    // pass
 
                end
 
                else if ((cur_i < 320)) begin
                        codeLength[cur_i] <= 0;
                        codeLength[cur_i] <= 0;
                        cur_i <= (cur_i + 1);
                        cur_i <= (cur_i + 1);
                    end
                    end
                    else begin
                    else begin
                        numCodeLength <= 288;
 
                        method <= 3;
                        method <= 3;
                        cur_HF1 <= 0;
                        cur_HF1 <= 0;
                        state <= 5'b00111;
                        state <= 5'b00111;
                    end
                    end
                end
                end
                else begin
 
                    case (state)
 
                        5'b00101: begin
                        5'b00101: begin
 
                if ((1'b1 && 1'b0)) begin
                            $write("DISTTREE");
                            $write("DISTTREE");
                            $write("\n");
                            $write("\n");
                            for (dist_i=0; dist_i<32; dist_i=dist_i+1) begin
                            for (dist_i=0; dist_i<32; dist_i=dist_i+1) begin
                                codeLength[dist_i] <= distanceLength[dist_i];
                                codeLength[dist_i] <= distanceLength[dist_i];
                            end
                            end
                            numCodeLength <= 32;
                            numCodeLength <= 32;
                            method <= 4;
                            method <= 4;
                            cur_HF1 <= 0;
                            cur_HF1 <= 0;
                            state <= 5'b00111;
                            state <= 5'b00111;
                        end
                        end
 
            end
                        5'b00100: begin
                        5'b00100: begin
                            if ((howOften != 0)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((howOften != 0)) begin
                                codeLength[numCodeLength] <= lastToken;
                                codeLength[numCodeLength] <= lastToken;
                                howOften <= (howOften - 1);
                                howOften <= (howOften - 1);
                                numCodeLength <= (numCodeLength + 1);
                                numCodeLength <= (numCodeLength + 1);
                            end
                            end
                            else if ((numCodeLength < (numLiterals + numDistance))) begin
                            else if ((numCodeLength < (numLiterals + numDistance))) begin
Line 1847... Line 2740...
                            else begin
                            else begin
                                state <= 5'b00011;
                                state <= 5'b00011;
                            end
                            end
                        end
                        end
                        5'b00111: begin
                        5'b00111: begin
 
                if (1'b1) begin
                            if ((cur_HF1 < 16)) begin
                            if ((cur_HF1 < 16)) begin
                                bitLengthCount[cur_HF1] <= 0;
                                bitLengthCount[cur_HF1] <= 0;
                            end
                            end
                            if ((cur_HF1 < 128)) begin
                    if (((cur_HF1 < 1) && 1'b0)) begin
                                d_leaves[cur_HF1] <= 0;
                                d_leaves[cur_HF1] <= 0;
                            end
                            end
                            if (((method != 4) && (cur_HF1 < 512))) begin
                            if (((method != 4) && (cur_HF1 < 512))) begin
                                lwaddr <= cur_HF1;
                                lwaddr <= cur_HF1;
                                wleaf <= 0;
                                wleaf <= 0;
                            end
                            end
                            limit = 512;
                            limit = 512;
                            if ((method == 4)) begin
                    if (((method == 4) && 1'b0)) begin
                                limit = 128;
                        limit = 1;
                            end
                            end
                            if ((cur_HF1 < limit)) begin
                            if ((cur_HF1 < limit)) begin
                                cur_HF1 <= (cur_HF1 + 1);
                                cur_HF1 <= (cur_HF1 + 1);
                            end
                            end
                            else begin
                            else begin
Line 1871... Line 2765...
                                $write("\n");
                                $write("\n");
                                cur_i <= 0;
                                cur_i <= 0;
                                state <= 5'b01000;
                                state <= 5'b01000;
                            end
                            end
                        end
                        end
 
            end
                        5'b01000: begin
                        5'b01000: begin
                            if ((cur_i < numCodeLength)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((cur_i < numCodeLength)) begin
                                j = codeLength[cur_i];
                                j = codeLength[cur_i];
                                bitLengthCount[j] <= (bitLengthCount[j] + 1);
                                bitLengthCount[j] <= (bitLengthCount[j] + 1);
                                cur_i <= (cur_i + 1);
                                cur_i <= (cur_i + 1);
                            end
                            end
                            else begin
                            else begin
Line 1891... Line 2789...
                                end
                                end
                                minBits <= 15;
                                minBits <= 15;
                            end
                            end
                        end
                        end
                        5'b01001: begin
                        5'b01001: begin
                            if ((cur_i <= 15)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((cur_i <= 15)) begin
                                if ((bitLengthCount[cur_i] != 0)) begin
                                if ((bitLengthCount[cur_i] != 0)) begin
                                    if ((cur_i < minBits)) begin
                                    if ((cur_i < minBits)) begin
                                        minBits <= cur_i;
                                        minBits <= cur_i;
                                    end
                                    end
                                    if ((method == 4)) begin
                                    if ((method == 4)) begin
Line 1915... Line 2816...
                                $write("%h", minBits);
                                $write("%h", minBits);
                                $write(" ");
                                $write(" ");
                                $write("%h", maxBits);
                                $write("%h", maxBits);
                                $write("\n");
                                $write("\n");
                                t = 10;
                                t = 10;
                                if ((method == 4)) begin
                    if (((method == 4) && 1'b0)) begin
                                    if ((t > d_maxBits)) begin
                                    if ((t > d_maxBits)) begin
                                        t = d_maxBits;
                                        t = d_maxBits;
                                    end
                                    end
                                    d_instantMaxBit <= t;
                                    d_instantMaxBit <= t;
                                    d_instantMask <= ((1 << t) - 1);
                                    d_instantMask <= ((1 << t) - 1);
Line 1934... Line 2835...
                                $write("%0d", ((1 << t) - 1));
                                $write("%0d", ((1 << t) - 1));
                                $write("\n");
                                $write("\n");
                                state <= 5'b01010;
                                state <= 5'b01010;
                                cur_i <= minBits;
                                cur_i <= minBits;
                                code <= 0;
                                code <= 0;
                                for (hf2_i=0; hf2_i<15; hf2_i=hf2_i+1) begin
                    for (hf2_i=0; hf2_i<16; hf2_i=hf2_i+1) begin
                                    nextCode[hf2_i] <= 0;
                                    nextCode[hf2_i] <= 0;
                                end
                                end
                                $write("to HF3");
                                $write("to HF3");
                                $write("\n");
                                $write("\n");
                            end
                            end
                        end
                        end
                        5'b01010: begin
                        5'b01010: begin
 
                if (1'b1) begin
                            amb = maxBits;
                            amb = maxBits;
                            if ((method == 4)) begin
                    if (((method == 4) && 1'b0)) begin
                                amb = d_maxBits;
                                amb = d_maxBits;
                            end
                            end
                            if ((cur_i <= amb)) begin
                            if ((cur_i <= amb)) begin
                                ncode = ((code + bitLengthCount[($signed({1'b0, cur_i}) - 1)]) << 1);
                                ncode = ((code + bitLengthCount[($signed({1'b0, cur_i}) - 1)]) << 1);
                                code <= ncode;
                                code <= ncode;
Line 1960... Line 2862...
                                spread_i <= 0;
                                spread_i <= 0;
                                $write("to HF4");
                                $write("to HF4");
                                $write("\n");
                                $write("\n");
                            end
                            end
                        end
                        end
 
            end
                        5'b01100: begin
                        5'b01100: begin
 
                if (1'b1) begin
                            canonical = nextCode[bits];
                            canonical = nextCode[bits];
                            nextCode[bits] <= (nextCode[bits] + 1);
                            nextCode[bits] <= (nextCode[bits] + 1);
                            if ((bits > 15)) begin
                            if ((bits > 15)) begin
                                $finish;
                                $finish;
                            end
                            end
                            reverse <= MYHDL54_rev_bits(canonical, bits);
                    reverse <= MYHDL52_rev_bits(canonical, bits);
                            leaf <= MYHDL55_makeLeaf(spread_i, bits);
                    leaf <= MYHDL53_makeLeaf(spread_i, bits);
                            state <= 5'b01101;
                            state <= 5'b01101;
                        end
                        end
 
            end
                        5'b01101: begin
                        5'b01101: begin
                            if ((method == 4)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if (((method == 4) && 1'b0)) begin
                                d_leaves[reverse] <= leaf;
                                d_leaves[reverse] <= leaf;
                                if ((bits <= d_instantMaxBit)) begin
                                if ((bits <= d_instantMaxBit)) begin
                                    if (((reverse + (1 << bits)) <= d_instantMask)) begin
                                    if (((reverse + (1 << bits)) <= d_instantMask)) begin
                                        step <= (1 << bits);
                                        step <= (1 << bits);
                                        spread <= (reverse + (1 << bits));
                                        spread <= (reverse + (1 << bits));
Line 1992... Line 2900...
                                end
                                end
                            end
                            end
                            else begin
                            else begin
                                wleaf <= leaf;
                                wleaf <= leaf;
                                lwaddr <= reverse;
                                lwaddr <= reverse;
                                code_bits[spread_i] <= reverse;
 
                                if ((bits <= instantMaxBit)) begin
                                if ((bits <= instantMaxBit)) begin
                                    if (((reverse + (1 << bits)) <= instantMask)) begin
                                    if (((reverse + (1 << bits)) <= instantMask)) begin
                                        step <= (1 << bits);
                                        step <= (1 << bits);
                                        spread <= (reverse + (1 << bits));
                                        spread <= (reverse + (1 << bits));
                                        state <= 5'b10010;
                                        state <= 5'b10010;
Line 2011... Line 2918...
                                    state <= 5'b01011;
                                    state <= 5'b01011;
                                end
                                end
                            end
                            end
                        end
                        end
                        5'b01011: begin
                        5'b01011: begin
                            if ((spread_i < numCodeLength)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((spread_i < numCodeLength)) begin
                                bits_next = codeLength[spread_i];
                                bits_next = codeLength[spread_i];
                                if ((bits_next != 0)) begin
                                if ((bits_next != 0)) begin
                                    bits <= bits_next;
                                    bits <= bits_next;
                                    state <= 5'b01100;
                                    state <= 5'b01100;
                                end
                                end
Line 2026... Line 2936...
                            else begin
                            else begin
                                if (do_compress) begin
                                if (do_compress) begin
                                    state <= 5'b10110;
                                    state <= 5'b10110;
                                    cur_cstatic <= 0;
                                    cur_cstatic <= 0;
                                end
                                end
                                else if ((method == 3)) begin
                    else if (((method == 3) && 1'b0)) begin
                                    state <= 5'b00101;
                                    state <= 5'b00101;
                                end
                                end
                                else if ((method == 4)) begin
                    else if (((method == 4) && 1'b0)) begin
                                    $write("DEFLATE m2!");
                                    $write("DEFLATE m2!");
                                    $write("\n");
                                    $write("\n");
                                    state <= 5'b10011;
                                    state <= 5'b10011;
                                end
                                end
                                else if ((method == 2)) begin
                    else if (((method == 2) && 1'b0)) begin
                                    numCodeLength <= 0;
                                    numCodeLength <= 0;
                                    state <= 5'b10011;
                                    state <= 5'b10011;
                                end
                                end
                                else begin
                                else begin
                                    state <= 5'b10011;
                                    state <= 5'b10011;
Line 2046... Line 2956...
                                cur_next <= 0;
                                cur_next <= 0;
                                cur_i <= 0;
                                cur_i <= 0;
                            end
                            end
                        end
                        end
                        5'b10010: begin
                        5'b10010: begin
                            if ((method == 4)) begin
                if (1'b1) begin
                                d_leaves[spread] <= MYHDL56_makeLeaf(spread_i, codeLength[spread_i]);
                    if (((method == 4) && 1'b0)) begin
 
                        d_leaves[spread] <= MYHDL54_makeLeaf(spread_i, codeLength[spread_i]);
                            end
                            end
                            else begin
                            else begin
                                lwaddr <= spread;
                                lwaddr <= spread;
                                wleaf <= MYHDL57_makeLeaf(spread_i, codeLength[spread_i]);
                        wleaf <= MYHDL55_makeLeaf(spread_i, codeLength[spread_i]);
                            end
                            end
                            aim = instantMask;
                            aim = instantMask;
                            if ((method == 4)) begin
                    if (((method == 4) && 1'b0)) begin
                                aim = d_instantMask;
                                aim = d_instantMask;
                            end
                            end
                            if (($signed({1'b0, spread}) > ($signed({1'b0, aim}) - $signed({1'b0, step})))) begin
                            if (($signed({1'b0, spread}) > ($signed({1'b0, aim}) - $signed({1'b0, step})))) begin
                                spread_i <= (spread_i + 1);
                                spread_i <= (spread_i + 1);
                                state <= 5'b01011;
                                state <= 5'b01011;
                            end
                            end
                            else begin
                            else begin
                                spread <= (spread + step);
                                spread <= (spread + step);
                            end
                            end
                        end
                        end
 
            end
                        5'b10011: begin
                        5'b10011: begin
                            if ((!filled)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((!filled)) begin
                                filled <= 1'b1;
                                filled <= 1'b1;
                            end
                            end
                            else if ((nb < 4)) begin
                            else if ((nb < 4)) begin
                                // pass
                                // pass
                            end
                            end
                            else if ((cur_next == 0)) begin
                            else if ((cur_next == 0)) begin
                                cto = MYHDL58_get4(0, maxBits);
                    cto = MYHDL56_get4(0, maxBits);
                                cur_next <= 1;
 
                                mask = ((1 << instantMaxBit) - 1);
                                mask = ((1 << instantMaxBit) - 1);
                                leaf <= leaves[(cto & mask)];
                    lraddr <= (cto & mask);
 
                    filled <= 1'b0;
 
                    cur_next <= (instantMaxBit + 1);
 
                end
 
                else if ((MYHDL57_get_bits(rleaf) >= cur_next)) begin
 
                    $write("CACHE MISS");
 
                    $write(" ");
 
                    $write("%h", cur_next);
 
                    $write("\n");
 
                    cto = MYHDL58_get4(0, maxBits);
 
                    mask = ((1 << cur_next) - 1);
 
                    lraddr <= (cto & mask);
 
                    filled <= 1'b0;
 
                    cur_next <= (cur_next + 1);
                            end
                            end
                            else begin
                            else begin
                                if ((MYHDL59_get_bits(leaf) < 1)) begin
                    if ((MYHDL59_get_bits(rleaf) < 1)) begin
                                    $write("< 1 bits: ");
                                    $write("< 1 bits: ");
                                    $write("\n");
                                    $write("\n");
                                    $finish;
                                    $finish;
                                end
                                end
                                MYHDL61_adv(MYHDL60_get_bits(leaf));
                    MYHDL61_adv(MYHDL60_get_bits(rleaf));
                                if ((MYHDL62_get_code(leaf) == 0)) begin
                    // if get_code(leaf) == 0:
                                    $write("leaf 0");
                    //     print("leaf 0", di, isize)
                                    $write("\n");
                    code <= MYHDL62_get_code(rleaf);
                                end
                    if (((method == 2) && 1'b0)) begin
                                code <= MYHDL63_get_code(leaf);
 
                                if ((method == 2)) begin
 
                                    state <= 5'b00011;
                                    state <= 5'b00011;
                                end
                                end
                                else begin
                                else begin
                                    state <= 5'b10100;
                                    state <= 5'b10100;
                                end
                                end
                            end
                            end
                        end
                        end
                        5'b01111: begin
                        5'b01111: begin
                            if ((!filled)) begin
                if (((!1'b1) || (!1'b0))) begin
 
                    // pass
 
                end
 
                else if ((!filled)) begin
                                filled <= 1'b1;
                                filled <= 1'b1;
                            end
                            end
                            else if ((nb < 4)) begin
                            else if ((nb < 4)) begin
                                // pass
                                // pass
                            end
                            end
                            else begin
                else if ((cur_next == 0)) begin
 
                    if ((d_instantMaxBit > 10)) begin
 
                        $finish;
 
                    end
                                token = (code - 257);
                                token = (code - 257);
                                case (token)
                                case (token)
                                    0: extraLength = 0;
                                    0: extraLength = 0;
                                    1: extraLength = 0;
                                    1: extraLength = 0;
                                    2: extraLength = 0;
                                    2: extraLength = 0;
Line 2138... Line 3069...
                                    25: extraLength = 5;
                                    25: extraLength = 5;
                                    26: extraLength = 5;
                                    26: extraLength = 5;
                                    27: extraLength = 5;
                                    27: extraLength = 5;
                                    default: extraLength = 0;
                                    default: extraLength = 0;
                                endcase
                                endcase
                                cto = MYHDL64_get4(extraLength, d_maxBits);
                    cto = MYHDL63_get4(extraLength, d_maxBits);
                                mask = ((1 << d_instantMaxBit) - 1);
                                mask = ((1 << d_instantMaxBit) - 1);
                                leaf <= d_leaves[(cto & mask)];
                                leaf <= d_leaves[(cto & mask)];
 
                    cur_next <= (instantMaxBit + 1);
 
                end
 
                else if ((MYHDL64_get_bits(leaf) >= cur_next)) begin
 
                    $write("DCACHE MISS");
 
                    $write(" ");
 
                    $write("%h", cur_next);
 
                    $write("\n");
 
                    token = (code - 257);
 
                    case (token)
 
                        0: extraLength = 0;
 
                        1: extraLength = 0;
 
                        2: extraLength = 0;
 
                        3: extraLength = 0;
 
                        4: extraLength = 0;
 
                        5: extraLength = 0;
 
                        6: extraLength = 0;
 
                        7: extraLength = 0;
 
                        8: extraLength = 1;
 
                        9: extraLength = 1;
 
                        10: extraLength = 1;
 
                        11: extraLength = 1;
 
                        12: extraLength = 2;
 
                        13: extraLength = 2;
 
                        14: extraLength = 2;
 
                        15: extraLength = 2;
 
                        16: extraLength = 3;
 
                        17: extraLength = 3;
 
                        18: extraLength = 3;
 
                        19: extraLength = 3;
 
                        20: extraLength = 4;
 
                        21: extraLength = 4;
 
                        22: extraLength = 4;
 
                        23: extraLength = 4;
 
                        24: extraLength = 5;
 
                        25: extraLength = 5;
 
                        26: extraLength = 5;
 
                        27: extraLength = 5;
 
                        default: extraLength = 0;
 
                    endcase
 
                    cto = MYHDL65_get4(extraLength, d_maxBits);
 
                    mask = ((1 << cur_next) - 1);
 
                    leaf <= d_leaves[(cto & mask)];
 
                    cur_next <= (cur_next + 1);
 
                end
 
                else begin
                                state <= 5'b10000;
                                state <= 5'b10000;
                            end
                            end
                        end
                        end
                        5'b10000: begin
                        5'b10000: begin
                            if ((MYHDL65_get_bits(leaf) == 0)) begin
                if ((1'b1 && 1'b0)) begin
 
                    if ((MYHDL66_get_bits(leaf) == 0)) begin
                                $finish;
                                $finish;
                            end
                            end
                            token = (code - 257);
                            token = (code - 257);
                            case (token)
                            case (token)
                                0: tlength = 3;
                                0: tlength = 3;
Line 2211... Line 3188...
                                25: extraLength = 5;
                                25: extraLength = 5;
                                26: extraLength = 5;
                                26: extraLength = 5;
                                27: extraLength = 5;
                                27: extraLength = 5;
                                default: extraLength = 0;
                                default: extraLength = 0;
                            endcase
                            endcase
                            tlength = tlength + MYHDL66_get4(0, extraLength);
                    tlength = tlength + MYHDL67_get4(0, extraLength);
                            distanceCode = MYHDL67_get_code(leaf);
                    distanceCode = MYHDL68_get_code(leaf);
                            case (distanceCode)
                            case (distanceCode)
                                0: distance = 1;
                                0: distance = 1;
                                1: distance = 2;
                                1: distance = 2;
                                2: distance = 3;
                                2: distance = 3;
                                3: distance = 4;
                                3: distance = 4;
Line 2262... Line 3239...
                                11: moreBits = 10;
                                11: moreBits = 10;
                                12: moreBits = 11;
                                12: moreBits = 11;
                                13: moreBits = 12;
                                13: moreBits = 12;
                                default: moreBits = 13;
                                default: moreBits = 13;
                            endcase
                            endcase
                            mored = MYHDL69_get4((extraLength + MYHDL68_get_bits(leaf)), moreBits);
                    mored = MYHDL70_get4((extraLength + MYHDL69_get_bits(leaf)), moreBits);
                            distance = distance + mored;
                            distance = distance + mored;
                            MYHDL71_adv(((moreBits + extraLength) + MYHDL70_get_bits(leaf)));
                    if ((distance > $signed({1'b0, do}))) begin
                            offset <= ($signed({1'b0, do}) - distance);
                        $write("%0d", distance);
 
                        $write(" ");
 
                        $write("%h", do);
 
                        $write("\n");
 
                        $finish;
 
                    end
 
                    MYHDL72_adv(((moreBits + extraLength) + MYHDL71_get_bits(leaf)));
 
                    offset <= (($signed({1'b0, do}) - distance) & 32767);
                            length <= tlength;
                            length <= tlength;
                            cur_i <= 0;
                            cur_i <= 0;
                            oraddr <= ($signed({1'b0, do}) - distance);
                            oraddr <= ($signed({1'b0, do}) - distance);
                            state <= 5'b10101;
                            state <= 5'b10101;
                        end
                        end
                        default: begin
            end
                            if ((state == 5'b10100)) begin
            5'b10100: begin
                                if ((!filled)) begin
                if ((!1'b1)) begin
 
                    // pass
 
                end
 
                else if ((!filled)) begin
                                    filled <= 1'b1;
                                    filled <= 1'b1;
                                end
                                end
                                else if ((nb < 4)) begin
                                else if ((nb < 4)) begin
                                    // pass
                                    // pass
                                end
                                end
                                else if ((di > isize)) begin
                else if ((($signed({1'b0, di}) >= ($signed({1'b0, isize}) - 4)) && (!(i_mode == 0)))) begin
 
                    // pass
 
                end
 
                else if ((do >= (i_raddr + 32768))) begin
 
                    // pass
 
                end
 
                else if (($signed({1'b0, di}) > ($signed({1'b0, isize}) - 3))) begin
                                    state <= 5'b00000;
                                    state <= 5'b00000;
                                    o_done <= 1'b1;
                                    o_done <= 1'b1;
                                    $write("NO EOF ");
                                    $write("NO EOF ");
                                    $write(" ");
                                    $write(" ");
                                    $write("%h", di);
                                    $write("%h", di);
Line 2297... Line 3290...
                                    $write(" ");
                                    $write(" ");
                                    $write("%h", do);
                                    $write("%h", do);
                                    $write("\n");
                                    $write("\n");
                                    if ((!final)) begin
                                    if ((!final)) begin
                                        state <= 5'b00001;
                                        state <= 5'b00001;
 
                        filled <= 1'b0;
 
                        $write("New Block!");
 
                        $write("\n");
                                    end
                                    end
                                    else begin
                                    else begin
                                        o_done <= 1'b1;
                                        o_done <= 1'b1;
                                        o_oprogress <= do;
 
                                        state <= 5'b00000;
                                        state <= 5'b00000;
                                    end
                                    end
                                end
                                end
                                else begin
                                else begin
                                    if ((code < 256)) begin
                                    if ((code < 256)) begin
Line 2381... Line 3376...
                                                25: extraLength = 5;
                                                25: extraLength = 5;
                                                26: extraLength = 5;
                                                26: extraLength = 5;
                                                27: extraLength = 5;
                                                27: extraLength = 5;
                                                default: extraLength = 0;
                                                default: extraLength = 0;
                                            endcase
                                            endcase
                                            tlength = tlength + MYHDL72_get4(0, extraLength);
                            tlength = tlength + MYHDL73_get4(0, extraLength);
                                            t = MYHDL73_get4(extraLength, 5);
                            t = MYHDL74_get4(extraLength, 5);
                                            distanceCode = MYHDL74_rev_bits(t, 5);
                            distanceCode = MYHDL75_rev_bits(t, 5);
                                            case (distanceCode)
                                            case (distanceCode)
                                                0: distance = 1;
                                                0: distance = 1;
                                                1: distance = 2;
                                                1: distance = 2;
                                                2: distance = 3;
                                                2: distance = 3;
                                                3: distance = 4;
                                                3: distance = 4;
Line 2433... Line 3428...
                                                11: moreBits = 10;
                                                11: moreBits = 10;
                                                12: moreBits = 11;
                                                12: moreBits = 11;
                                                13: moreBits = 12;
                                                13: moreBits = 12;
                                                default: moreBits = 13;
                                                default: moreBits = 13;
                                            endcase
                                            endcase
                                            distance = distance + MYHDL75_get4((extraLength + 5), moreBits);
                            distance = distance + MYHDL76_get4((extraLength + 5), moreBits);
                                            MYHDL76_adv(((extraLength + 5) + moreBits));
                            MYHDL77_adv(((extraLength + 5) + moreBits));
                                            offset <= ($signed({1'b0, do}) - distance);
                                            offset <= ($signed({1'b0, do}) - distance);
                                            length <= tlength;
                                            length <= tlength;
                                            cur_i <= 0;
                                            cur_i <= 0;
                                            oraddr <= ($signed({1'b0, do}) - distance);
                                            oraddr <= ($signed({1'b0, do}) - distance);
                                            state <= 5'b10101;
                                            state <= 5'b10101;
                                        end
                                        end
                                        else begin
                                        else begin
 
                            if ((!1'b0)) begin
 
                                $write("DYNAMIC mode disabled");
 
                                $write("\n");
 
                                $finish;
 
                            end
                                            state <= 5'b01111;
                                            state <= 5'b01111;
                                        end
                                        end
                                    end
                                    end
                                    cur_next <= 0;
                                    cur_next <= 0;
                                end
                                end
                            end
                            end
                            else begin
            5'b10101: begin
                                if ((state == 5'b10101)) begin
                if ((!1'b1)) begin
                                    if ((!filled)) begin
                    // pass
 
                end
 
                else if ((!filled)) begin
                                        filled <= 1'b1;
                                        filled <= 1'b1;
                                    end
                                    end
                                    else if ((nb < 4)) begin
                                    else if ((nb < 4)) begin
                                        // pass
                                        // pass
                                    end
                                    end
 
                else if (((cur_i == 0) && ((do + length) >= (i_raddr + 32768)))) begin
 
                    // pass
 
                end
 
                else if (($signed({1'b0, di}) >= ($signed({1'b0, isize}) - 2))) begin
 
                    // pass
 
                end
                                    else if ((method == 0)) begin
                                    else if ((method == 0)) begin
                                        if ((cur_i < length)) begin
                                        if ((cur_i < length)) begin
                                            oaddr <= do;
                                            oaddr <= do;
                                            obyte <= b3;
                                            obyte <= b3;
                                            MYHDL77_adv(8);
                        MYHDL78_adv(8);
                                            cur_i <= (cur_i + 1);
                                            cur_i <= (cur_i + 1);
                                            do <= (do + 1);
                                            do <= (do + 1);
                                            o_oprogress <= (do + 1);
                                            o_oprogress <= (do + 1);
                                        end
                                        end
                                        else if ((!final)) begin
                                        else if ((!final)) begin
 
                        MYHDL79_adv(16);
                                            state <= 5'b00001;
                                            state <= 5'b00001;
 
                        filled <= 1'b0;
 
                        $write("new block");
 
                        $write("\n");
                                        end
                                        end
                                        else begin
                                        else begin
                                            o_oprogress <= do;
 
                                            o_done <= 1'b1;
                                            o_done <= 1'b1;
                                            state <= 5'b00000;
                                            state <= 5'b00000;
                                        end
                                        end
                                    end
                                    end
                                    else if ((cur_i < (length + 2))) begin
                                    else if ((cur_i < (length + 2))) begin
Line 2483... Line 3494...
                                        end
                                        end
                                        if ((cur_i == 3)) begin
                                        if ((cur_i == 3)) begin
                                            copy2 <= orbyte;
                                            copy2 <= orbyte;
                                        end
                                        end
                                        if ((cur_i > 1)) begin
                                        if ((cur_i > 1)) begin
                                            if (((offset + cur_i) == (do + 1))) begin
                        if ((((offset + cur_i) & 32767) == ((do + 1) & 32767))) begin
                                                obyte <= copy1;
                                                obyte <= copy1;
                                            end
                                            end
                                            else begin
                        else if (((cur_i == 3) || (((offset + cur_i) & 32767) != (do & 32767)))) begin
                                                if (((cur_i == 3) || ((offset + cur_i) != do))) begin
 
                                                    obyte <= orbyte;
                                                    obyte <= orbyte;
                                                end
                                                end
                                                else begin
                        else if ((cur_i > 2)) begin
                                                    if ((cur_i > 2)) begin
 
                                                        if ((cur_i & 1)) begin
                                                        if ((cur_i & 1)) begin
                                                            obyte <= copy2;
                                                            obyte <= copy2;
                                                        end
                                                        end
                                                        else begin
                                                        else begin
                                                            obyte <= copy1;
                                                            obyte <= copy1;
                                                        end
                                                        end
                                                    end
                                                    end
                                                    else begin
                                                    else begin
                                                        obyte <= copy1;
                                                        obyte <= copy1;
                                                    end
                                                    end
                                                end
 
                                            end
 
                                            oaddr <= do;
                                            oaddr <= do;
                                            o_oprogress <= (do + 1);
                                            o_oprogress <= (do + 1);
                                            do <= (do + 1);
                                            do <= (do + 1);
                                        end
                                        end
                                        cur_i <= (cur_i + 1);
                                        cur_i <= (cur_i + 1);
Line 2515... Line 3522...
                                    else begin
                                    else begin
                                        cur_next <= 0;
                                        cur_next <= 0;
                                        state <= 5'b10011;
                                        state <= 5'b10011;
                                    end
                                    end
                                end
                                end
                                else begin
            default: begin
                                    $write("unknown state?!");
                                    $write("unknown state?!");
                                    $write("\n");
                                    $write("\n");
                                    state <= 5'b00000;
                                    state <= 5'b00000;
                                end
                                end
                            end
 
                        end
 
                    endcase
 
                end
 
            end
 
        endcase
        endcase
    end
    end
end
end
 
 
 
 
Line 2544... Line 3546...
        b4 <= 0;
        b4 <= 0;
        old_di <= 0;
        old_di <= 0;
    end
    end
    else begin
    else begin
        if ((isize < 4)) begin
        if ((isize < 4)) begin
            // pass
            nb <= 0;
 
            old_di <= 0;
        end
        end
        else if (((i_mode == 4) || (i_mode == 5))) begin
        else if (((i_mode == 4) || (i_mode == 5))) begin
            nb <= 0;
            nb <= 0;
            old_di <= 0;
            old_di <= 0;
        end
        end
Line 2557... Line 3560...
            //     print("FILL", di, old_di, nb, b1, b2, b3, b4)
            //     print("FILL", di, old_di, nb, b1, b2, b3, b4)
            if (1'b1) begin
            if (1'b1) begin
                shift = (($signed({1'b0, di}) - $signed({1'b0, old_di})) * 8);
                shift = (($signed({1'b0, di}) - $signed({1'b0, old_di})) * 8);
                // if shift != 0:
                // if shift != 0:
                //     print("shift", shift, cwindow, b1, b2, b3, b4)
                //     print("shift", shift, cwindow, b1, b2, b3, b4)
                if ((shift <= 32)) begin
                if (1'b1) begin
                    cwindow <= (($signed({1'b0, cwindow}) << shift) | $signed($signed({1'b0, b14}) >>> (32 - shift)));
 
                end
 
                else if ((shift == 40)) begin
 
                    cwindow <= ((($signed({1'b0, cwindow}) << shift) | (b14 << 8)) | b5);
 
                end
 
                else if (1'b1) begin
 
                    cwindow <= (($signed({1'b0, cwindow}) << shift) | $signed($signed({1'b0, b110}) >>> (80 - shift)));
                    cwindow <= (($signed({1'b0, cwindow}) << shift) | $signed($signed({1'b0, b110}) >>> (80 - shift)));
                end
                end
 
                else begin
 
                    cwindow <= (($signed({1'b0, cwindow}) << shift) | $signed($signed({1'b0, b15}) >>> (40 - shift)));
 
                end
            end
            end
            if ((old_di == di)) begin
            if ((old_di == di)) begin
                nb <= 4;
                nb <= 4;
            end
            end
            old_di <= di;
            old_di <= di;
            b1 <= iram[(di & 127)];
            b1 <= iram[(di & 63)];
            b2 <= iram[((di + 1) & 127)];
            b2 <= iram[((di + 1) & 63)];
            b3 <= iram[((di + 2) & 127)];
            b3 <= iram[((di + 2) & 63)];
            b4 <= iram[((di + 3) & 127)];
            b4 <= iram[((di + 3) & 63)];
            b5 <= iram[((di + 4) & 127)];
            b5 <= iram[((di + 4) & 63)];
            if (1'b1) begin
            if (1'b1) begin
                b6 <= iram[((di + 5) & 127)];
                b6 <= iram[((di + 5) & 63)];
                b7 <= iram[((di + 6) & 127)];
                b7 <= iram[((di + 6) & 63)];
                b8 <= iram[((di + 7) & 127)];
                b8 <= iram[((di + 7) & 63)];
                b9 <= iram[((di + 8) & 127)];
                b9 <= iram[((di + 8) & 63)];
                b10 <= iram[((di + 9) & 127)];
                b10 <= iram[((di + 9) & 63)];
            end
            end
        end
        end
    end
    end
end
end
 
 
Line 2596... Line 3596...
end
end
 
 
 
 
always @(posedge clk) begin: DEFLATE_ORAMREAD
always @(posedge clk) begin: DEFLATE_ORAMREAD
    orbyte <= oram[oraddr];
    orbyte <= oram[oraddr];
 
    rleaf <= leaves[lraddr];
end
end
 
 
 
 
 
 
assign smatch[0] = ((({cwindow, b1, b2} >>> (8 * 0)) & 16777215) == (b14 >>> 8));
assign smatch[0] = ((({cwindow, b1, b2} >>> (8 * 0)) & 16777215) == (b14 >>> 8));

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.