blob: ec449c450a2bbb36b0d00329865b6c15fc43af2b [file] [log] [blame]
// File: test_deflate_bench.v
// Generated by MyHDL 0.10
// Date: Sun Jan 6 10:46:55 2019
`timescale 1ns/10ps
module test_deflate_bench (
i_clk,
o_led,
led0_g,
led1_b,
led2_r
);
input i_clk;
output [3:0] o_led;
reg [3:0] o_led;
output led0_g;
reg led0_g;
output led1_b;
reg led1_b;
output led2_r;
reg led2_r;
reg [23:0] o_iprogress;
reg [23:0] resultlen;
reg reset;
reg [23:0] o_oprogress;
reg o_done;
reg [7:0] o_byte;
reg [23:0] i_waddr;
reg [23:0] i_raddr;
reg [2:0] i_mode;
reg [7:0] i_data;
reg [21:0] scounter;
reg [15:0] counter;
reg [4:0] tstate;
reg [14:0] tbi;
reg wtick;
reg [5:0] resume;
reg [7:0] copy;
reg [18:0] deflate0_wleaf;
reg [9:0] deflate0_step;
reg deflate0_static;
reg [4:0] deflate0_state;
reg [8:0] deflate0_spread_i;
reg [9:0] deflate0_spread;
reg [18:0] deflate0_rleaf;
reg [14:0] deflate0_reverse;
reg [1:0] deflate0_prev_method;
reg [3:0] deflate0_outcarrybits;
reg [8:0] deflate0_outcarry;
reg [7:0] deflate0_orbyte;
reg [12:0] deflate0_oraddr;
reg [23:0] deflate0_old_di;
reg [12:0] deflate0_offset;
reg [7:0] deflate0_obyte;
reg [7:0] deflate0_ob1;
reg [12:0] deflate0_oaddr;
reg [8:0] deflate0_numLiterals;
reg [5:0] deflate0_numDistance;
reg [8:0] deflate0_numCodeLength;
reg deflate0_nb;
reg [3:0] deflate0_more;
reg [3:0] deflate0_mlength;
reg [4:0] deflate0_minBits;
reg [2:0] deflate0_method;
reg [4:0] deflate0_maxBits;
reg [14:0] deflate0_lwaddr;
reg [14:0] deflate0_lraddr;
reg [12:0] deflate0_length;
reg [18:0] deflate0_leaf;
reg [14:0] deflate0_lastToken;
reg [15:0] deflate0_ladler1;
reg [23:0] deflate0_isize;
reg [9:0] deflate0_instantMaxBit;
reg [14:0] deflate0_instantMask;
reg [8:0] deflate0_howOften;
reg deflate0_flush;
reg deflate0_first_block;
reg deflate0_final;
reg deflate0_filled;
reg [3:0] deflate0_fcount;
reg [18:0] deflate0_dwleaf;
reg [18:0] deflate0_drleaf;
reg [2:0] deflate0_doo;
reg deflate0_do_init;
reg deflate0_do_compress;
reg [23:0] deflate0_do;
reg [14:0] deflate0_dlwaddr;
reg [14:0] deflate0_dlraddr;
reg [9:0] deflate0_dlength;
reg [2:0] deflate0_dio;
reg [23:0] deflate0_di;
reg [4:0] deflate0_d_maxBits;
reg [9:0] deflate0_d_instantMaxBit;
reg [14:0] deflate0_d_instantMask;
reg [8:0] deflate0_cur_static;
reg signed [24:0] deflate0_cur_search;
reg [4:0] deflate0_cur_next;
reg [23:0] deflate0_cur_i;
reg signed [9:0] deflate0_cur_dist;
reg [23:0] deflate0_cur_cstatic;
reg [15:0] deflate0_cur_HF1;
reg [7:0] deflate0_copy2;
reg [7:0] deflate0_copy1;
reg [14:0] deflate0_code;
reg [3:0] deflate0_bits;
reg [8:0] deflate0_b_numCodeLength;
reg [7:0] deflate0_b9;
reg [7:0] deflate0_b8;
reg [7:0] deflate0_b7;
reg [7:0] deflate0_b6;
reg [7:0] deflate0_b5;
wire [31:0] deflate0_b41;
reg [7:0] deflate0_b4;
reg [7:0] deflate0_b3;
reg [7:0] deflate0_b2;
wire [39:0] deflate0_b15;
wire [79:0] deflate0_b110;
reg [7:0] deflate0_b10;
reg [7:0] deflate0_b1;
reg [15:0] deflate0_adler2;
reg [15:0] deflate0_adler1;
reg deflate0_cwindow;
reg [7:0] deflate0_oram [0:8192-1];
reg [15:0] deflate0_nextCode [0:16-1];
reg deflate0_leaves [0:1-1];
reg [7:0] deflate0_iram [0:512-1];
reg [3:0] deflate0_distanceLength [0:32-1];
reg deflate0_d_leaves [0:1-1];
reg [3:0] deflate0_codeLength [0:320-1];
reg [8:0] deflate0_bitLengthCount [0:16-1];
wire deflate0_smatch [0:1-1];
assign deflate0_b41[32-1:24] = deflate0_b4;
assign deflate0_b41[24-1:16] = deflate0_b3;
assign deflate0_b41[16-1:8] = deflate0_b2;
assign deflate0_b41[8-1:0] = deflate0_b1;
assign deflate0_b15[40-1:32] = deflate0_b1;
assign deflate0_b15[32-1:24] = deflate0_b2;
assign deflate0_b15[24-1:16] = deflate0_b3;
assign deflate0_b15[16-1:8] = deflate0_b4;
assign deflate0_b15[8-1:0] = deflate0_b5;
assign deflate0_b110[80-1:72] = deflate0_b1;
assign deflate0_b110[72-1:64] = deflate0_b2;
assign deflate0_b110[64-1:56] = deflate0_b3;
assign deflate0_b110[56-1:48] = deflate0_b4;
assign deflate0_b110[48-1:40] = deflate0_b5;
assign deflate0_b110[40-1:32] = deflate0_b6;
assign deflate0_b110[32-1:24] = deflate0_b7;
assign deflate0_b110[24-1:16] = deflate0_b8;
assign deflate0_b110[16-1:8] = deflate0_b9;
assign deflate0_b110[8-1:0] = deflate0_b10;
task MYHDL3_adv;
input width;
integer width;
integer nshift;
begin: MYHDL82_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
function integer MYHDL4_get4;
input boffset;
input width;
begin: MYHDL83_RETURN
MYHDL4_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL5_get4;
input boffset;
input width;
integer width;
begin: MYHDL84_RETURN
MYHDL5_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
task MYHDL6_adv;
input width;
integer width;
integer nshift;
begin: MYHDL85_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
task MYHDL7_adv;
input width;
integer width;
integer nshift;
begin: MYHDL86_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
function integer MYHDL8_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL87_RETURN
MYHDL8_get4 = ($signed($signed({1'b0, deflate0_b41}) >>> ($signed({1'b0, deflate0_dio}) + boffset)) & ((1 << width) - 1));
end
endfunction
task MYHDL9_adv;
input width;
integer width;
integer nshift;
begin: MYHDL88_RETURN
nshift = $signed(($signed({1'b0, deflate0_dio}) + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= (($signed({1'b0, deflate0_dio}) + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
task MYHDL10_put;
input d;
integer d;
input width;
integer width;
reg pshift;
integer carry;
integer doo_next;
begin: MYHDL89_RETURN
deflate0_obyte <= ((deflate0_ob1 | (d << deflate0_doo)) & 255);
deflate0_oaddr <= deflate0_do;
pshift = ((deflate0_doo + width) > 8);
if (pshift) begin
carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, deflate0_doo})));
deflate0_ob1 <= $signed($signed({1'b0, d}) >>> ($signed({1'b0, width}) - carry));
end
else begin
deflate0_ob1 <= (deflate0_ob1 | (d << deflate0_doo));
end
deflate0_do <= (deflate0_do + pshift);
o_oprogress <= (deflate0_do + pshift);
doo_next = ((deflate0_doo + width) & 7);
if ((doo_next == 0)) begin
deflate0_flush <= 1'b1;
end
deflate0_doo <= doo_next;
end
endtask
task MYHDL11_do_flush;
begin: MYHDL90_RETURN
deflate0_flush <= 1'b0;
deflate0_ob1 <= 0;
o_oprogress <= (deflate0_do + 1);
deflate0_do <= (deflate0_do + 1);
end
endtask
task MYHDL12_put;
input d;
integer d;
input [4-1:0] width;
reg pshift;
integer carry;
integer doo_next;
begin: MYHDL91_RETURN
deflate0_obyte <= (($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo}))) & 255);
deflate0_oaddr <= deflate0_do;
pshift = ((deflate0_doo + width) > 8);
if (pshift) begin
carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, deflate0_doo})));
deflate0_ob1 <= $signed(d >>> ($signed({1'b0, width}) - carry));
end
else begin
deflate0_ob1 <= ($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo})));
end
deflate0_do <= (deflate0_do + pshift);
o_oprogress <= (deflate0_do + pshift);
doo_next = ((deflate0_doo + width) & 7);
if ((doo_next == 0)) begin
deflate0_flush <= 1'b1;
end
deflate0_doo <= doo_next;
end
endtask
task MYHDL13_do_flush;
begin: MYHDL92_RETURN
deflate0_flush <= 1'b0;
deflate0_ob1 <= 0;
o_oprogress <= (deflate0_do + 1);
deflate0_do <= (deflate0_do + 1);
end
endtask
task MYHDL14_put;
input d;
integer d;
input [4-1:0] width;
reg pshift;
integer carry;
integer doo_next;
begin: MYHDL93_RETURN
deflate0_obyte <= (($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo}))) & 255);
deflate0_oaddr <= deflate0_do;
pshift = ((deflate0_doo + width) > 8);
if (pshift) begin
carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, deflate0_doo})));
deflate0_ob1 <= $signed(d >>> ($signed({1'b0, width}) - carry));
end
else begin
deflate0_ob1 <= ($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo})));
end
deflate0_do <= (deflate0_do + pshift);
o_oprogress <= (deflate0_do + pshift);
doo_next = ((deflate0_doo + width) & 7);
if ((doo_next == 0)) begin
deflate0_flush <= 1'b1;
end
deflate0_doo <= doo_next;
end
endtask
task MYHDL15_put;
input [9-1:0] d;
input [4-1:0] width;
reg pshift;
integer carry;
integer doo_next;
begin: MYHDL94_RETURN
deflate0_obyte <= ((deflate0_ob1 | (d << deflate0_doo)) & 255);
deflate0_oaddr <= deflate0_do;
pshift = ((deflate0_doo + width) > 8);
if (pshift) begin
carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, deflate0_doo})));
deflate0_ob1 <= $signed($signed({1'b0, d}) >>> ($signed({1'b0, width}) - carry));
end
else begin
deflate0_ob1 <= (deflate0_ob1 | (d << deflate0_doo));
end
deflate0_do <= (deflate0_do + pshift);
o_oprogress <= (deflate0_do + pshift);
doo_next = ((deflate0_doo + width) & 7);
if ((doo_next == 0)) begin
deflate0_flush <= 1'b1;
end
deflate0_doo <= doo_next;
end
endtask
function integer MYHDL16_rev_bits;
input [24-1:0] b;
input nb;
integer nb;
integer r;
begin: MYHDL95_RETURN
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;
end
endfunction
task MYHDL17_put;
input d;
integer d;
input width;
integer width;
reg pshift;
integer carry;
integer doo_next;
begin: MYHDL96_RETURN
deflate0_obyte <= (($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo}))) & 255);
deflate0_oaddr <= deflate0_do;
pshift = (($signed({1'b0, deflate0_doo}) + width) > 8);
if (pshift) begin
carry = (width - (8 - $signed({1'b0, deflate0_doo})));
deflate0_ob1 <= $signed(d >>> (width - carry));
end
else begin
deflate0_ob1 <= ($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo})));
end
deflate0_do <= (deflate0_do + pshift);
o_oprogress <= (deflate0_do + pshift);
doo_next = (($signed({1'b0, deflate0_doo}) + width) & 7);
if ((doo_next == 0)) begin
deflate0_flush <= 1'b1;
end
deflate0_doo <= doo_next;
end
endtask
task MYHDL18_put;
input d;
integer d;
input width;
integer width;
reg pshift;
integer carry;
integer doo_next;
begin: MYHDL97_RETURN
deflate0_obyte <= (($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo}))) & 255);
deflate0_oaddr <= deflate0_do;
pshift = ((deflate0_doo + width) > 8);
if (pshift) begin
carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, deflate0_doo})));
deflate0_ob1 <= $signed(d >>> ($signed({1'b0, width}) - carry));
end
else begin
deflate0_ob1 <= ($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo})));
end
deflate0_do <= (deflate0_do + pshift);
o_oprogress <= (deflate0_do + pshift);
doo_next = ((deflate0_doo + width) & 7);
if ((doo_next == 0)) begin
deflate0_flush <= 1'b1;
end
deflate0_doo <= doo_next;
end
endtask
task MYHDL21_put;
input d;
integer d;
input [4-1:0] width;
reg pshift;
integer carry;
integer doo_next;
begin: MYHDL98_RETURN
deflate0_obyte <= (($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo}))) & 255);
deflate0_oaddr <= deflate0_do;
pshift = ((deflate0_doo + width) > 8);
if (pshift) begin
carry = ($signed({1'b0, width}) - (8 - $signed({1'b0, deflate0_doo})));
deflate0_ob1 <= $signed(d >>> ($signed({1'b0, width}) - carry));
end
else begin
deflate0_ob1 <= ($signed({1'b0, deflate0_ob1}) | (d << $signed({1'b0, deflate0_doo})));
end
deflate0_do <= (deflate0_do + pshift);
o_oprogress <= (deflate0_do + pshift);
doo_next = ((deflate0_doo + width) & 7);
if ((doo_next == 0)) begin
deflate0_flush <= 1'b1;
end
deflate0_doo <= doo_next;
end
endtask
function integer MYHDL30_get4;
input boffset;
input width;
integer width;
begin: MYHDL99_RETURN
MYHDL30_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL31_get4;
input boffset;
input width;
integer width;
begin: MYHDL100_RETURN
MYHDL31_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL32_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL101_RETURN
MYHDL32_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL33_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL102_RETURN
MYHDL33_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL34_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL103_RETURN
MYHDL34_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL35_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL104_RETURN
MYHDL35_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
task MYHDL36_adv;
input width;
integer width;
integer nshift;
begin: MYHDL105_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
function integer MYHDL37_get4;
input boffset;
input width;
integer width;
begin: MYHDL106_RETURN
MYHDL37_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
task MYHDL38_adv;
input width;
integer width;
integer nshift;
begin: MYHDL107_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
function integer MYHDL39_get4;
input boffset;
input width;
integer width;
begin: MYHDL108_RETURN
MYHDL39_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL40_get4;
input boffset;
input width;
integer width;
begin: MYHDL109_RETURN
MYHDL40_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL41_get4;
input boffset;
input width;
integer width;
begin: MYHDL110_RETURN
MYHDL41_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
task MYHDL42_adv;
input width;
integer width;
integer nshift;
begin: MYHDL111_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
function integer MYHDL49_rev_bits;
input [16-1:0] b;
input [4-1:0] nb;
integer r;
begin: MYHDL112_RETURN
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}));
MYHDL49_rev_bits = r;
end
endfunction
function integer MYHDL50_makeLeaf;
input [9-1:0] lcode;
input [4-1:0] lbits;
begin: MYHDL113_RETURN
MYHDL50_makeLeaf = ((lcode << 4) | lbits);
end
endfunction
function integer MYHDL51_makeLeaf;
input [9-1:0] lcode;
input [4-1:0] lbits;
begin: MYHDL114_RETURN
MYHDL51_makeLeaf = ((lcode << 4) | lbits);
end
endfunction
function integer MYHDL52_makeLeaf;
input [9-1:0] lcode;
input [4-1:0] lbits;
begin: MYHDL115_RETURN
MYHDL52_makeLeaf = ((lcode << 4) | lbits);
end
endfunction
function integer MYHDL53_get4;
input boffset;
input [5-1:0] width;
begin: MYHDL116_RETURN
MYHDL53_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL54_get_bits;
input [19-1:0] aleaf;
begin: MYHDL117_RETURN
MYHDL54_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
end
endfunction
function integer MYHDL55_get4;
input boffset;
input [5-1:0] width;
begin: MYHDL118_RETURN
MYHDL55_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL56_get_bits;
input [19-1:0] aleaf;
begin: MYHDL119_RETURN
MYHDL56_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
end
endfunction
function integer MYHDL57_get_bits;
input [19-1:0] aleaf;
begin: MYHDL120_RETURN
MYHDL57_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
end
endfunction
task MYHDL58_adv;
input width;
integer width;
integer nshift;
begin: MYHDL121_RETURN
nshift = $signed(($signed({1'b0, deflate0_dio}) + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= (($signed({1'b0, deflate0_dio}) + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
function integer MYHDL59_get_code;
input [19-1:0] aleaf;
begin: MYHDL122_RETURN
MYHDL59_get_code = (aleaf >>> 4);
end
endfunction
function integer MYHDL60_get4;
input boffset;
integer boffset;
input [5-1:0] width;
begin: MYHDL123_RETURN
MYHDL60_get4 = ($signed($signed({1'b0, deflate0_b41}) >>> ($signed({1'b0, deflate0_dio}) + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL61_get_bits;
input [19-1:0] aleaf;
begin: MYHDL124_RETURN
MYHDL61_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
end
endfunction
function integer MYHDL62_get4;
input boffset;
integer boffset;
input [5-1:0] width;
begin: MYHDL125_RETURN
MYHDL62_get4 = ($signed($signed({1'b0, deflate0_b41}) >>> ($signed({1'b0, deflate0_dio}) + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL63_get_bits;
input [19-1:0] aleaf;
begin: MYHDL126_RETURN
MYHDL63_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
end
endfunction
function integer MYHDL64_get4;
input boffset;
input width;
integer width;
begin: MYHDL127_RETURN
MYHDL64_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL65_get_code;
input [19-1:0] aleaf;
begin: MYHDL128_RETURN
MYHDL65_get_code = (aleaf >>> 4);
end
endfunction
function integer MYHDL66_get_bits;
input [19-1:0] aleaf;
begin: MYHDL129_RETURN
MYHDL66_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
end
endfunction
function integer MYHDL67_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL130_RETURN
MYHDL67_get4 = ($signed($signed({1'b0, deflate0_b41}) >>> ($signed({1'b0, deflate0_dio}) + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL68_get_bits;
input [19-1:0] aleaf;
begin: MYHDL131_RETURN
MYHDL68_get_bits = ($signed({1'b0, aleaf}) & ((1 << 4) - 1));
end
endfunction
task MYHDL69_adv;
input width;
integer width;
integer nshift;
begin: MYHDL132_RETURN
nshift = $signed(($signed({1'b0, deflate0_dio}) + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= (($signed({1'b0, deflate0_dio}) + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
function integer MYHDL70_get4;
input boffset;
input width;
integer width;
begin: MYHDL133_RETURN
MYHDL70_get4 = ((deflate0_b41 >>> (deflate0_dio + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL71_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL134_RETURN
MYHDL71_get4 = ($signed($signed({1'b0, deflate0_b41}) >>> ($signed({1'b0, deflate0_dio}) + boffset)) & ((1 << width) - 1));
end
endfunction
function integer MYHDL72_rev_bits;
input b;
integer b;
input nb;
integer nb;
integer r;
begin: MYHDL135_RETURN
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}));
MYHDL72_rev_bits = r;
end
endfunction
function integer MYHDL73_get4;
input boffset;
integer boffset;
input width;
integer width;
begin: MYHDL136_RETURN
MYHDL73_get4 = ($signed($signed({1'b0, deflate0_b41}) >>> ($signed({1'b0, deflate0_dio}) + boffset)) & ((1 << width) - 1));
end
endfunction
task MYHDL74_adv;
input width;
integer width;
integer nshift;
begin: MYHDL137_RETURN
nshift = $signed(($signed({1'b0, deflate0_dio}) + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= (($signed({1'b0, deflate0_dio}) + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
task MYHDL75_adv;
input width;
integer width;
integer nshift;
begin: MYHDL138_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
task MYHDL76_adv;
input width;
integer width;
integer nshift;
begin: MYHDL139_RETURN
nshift = ((deflate0_dio + width) >>> 3);
o_iprogress <= deflate0_di;
deflate0_dio <= ((deflate0_dio + width) & 7);
deflate0_di <= ($signed({1'b0, deflate0_di}) + nshift);
if ((nshift != 0)) begin
deflate0_filled <= 1'b0;
end
end
endtask
always @(posedge i_clk) begin: TEST_DEFLATE_BENCH_DEFLATE0_IO_LOGIC
o_byte <= deflate0_oram[(i_raddr & 8191)];
if ((i_mode == 2)) begin
deflate0_iram[(i_waddr & 511)] <= i_data;
deflate0_isize <= i_waddr;
end
end
always @(posedge i_clk) begin: TEST_DEFLATE_BENCH_DEFLATE0_LOGIC
integer hm;
integer skip;
reg no_adv;
integer cs_i;
reg [4-1:0] outlen;
integer outbits;
reg [8-1:0] bdata;
integer adler1_next;
integer lencode;
integer nextdist;
integer copydist;
integer extra_dist;
integer extra_bits;
integer outcode;
reg [10-1:0] lfmatch;
integer distance;
integer fmatch2;
integer match;
reg mdone;
reg found;
integer fmatch;
integer si;
integer limit;
reg [8-1:0] cbyte;
integer stat_i;
integer clo_i;
integer n_adv;
integer dbl_i;
integer dbl;
integer dist_i;
reg [4-1:0] j;
integer t;
integer hf2_i;
reg [5-1:0] amb;
integer ncode;
reg [16-1:0] canonical;
reg [4-1:0] bits_next;
reg [15-1:0] aim;
integer cto;
integer mask;
integer token;
integer extraLength;
integer tlength;
integer distanceCode;
integer moreBits;
integer mored;
if ((!reset)) begin
$write("DEFLATE RESET");
$write("\n");
deflate0_state <= 5'b00000;
o_done <= 1'b0;
deflate0_prev_method <= 3;
end
else begin
case (deflate0_state)
5'b00000: begin
if ((1'b1 && (i_mode == 4))) begin
$write("STARTC");
$write("\n");
deflate0_do_compress <= 1'b1;
o_done <= 1'b0;
o_iprogress <= 0;
o_oprogress <= 0;
deflate0_di <= 0;
deflate0_dio <= 0;
deflate0_do <= 0;
deflate0_doo <= 0;
deflate0_filled <= 1'b1;
deflate0_cur_static <= 0;
deflate0_cur_cstatic <= 0;
deflate0_state <= 5'b01110;
end
else if ((1'b0 && (i_mode == 5))) begin
deflate0_do_compress <= 1'b0;
o_done <= 1'b0;
o_iprogress <= 0;
o_oprogress <= 0;
deflate0_di <= 0;
deflate0_dio <= 0;
deflate0_do <= 0;
deflate0_doo <= 0;
deflate0_filled <= 1'b1;
deflate0_first_block <= 1'b1;
deflate0_state <= 5'b00001;
end
else begin
// pass
end
end
5'b00001: begin
if ((!1'b0)) begin
// pass
end
else if ((!deflate0_filled)) begin
deflate0_filled <= 1'b1;
end
else if ((!deflate0_nb)) begin
// pass
end
else if (deflate0_first_block) begin
deflate0_first_block <= 1'b0;
if ((deflate0_b1 == 120)) begin
$write("deflate mode");
$write("\n");
end
else begin
$write("%h", deflate0_di);
$write(" ");
$write("%h", deflate0_dio);
$write(" ");
$write("%h", deflate0_nb);
$write(" ");
$write("%h", deflate0_b1);
$write(" ");
$write("%h", deflate0_b2);
$write(" ");
$write("%h", deflate0_b3);
$write(" ");
$write("%h", deflate0_b4);
$write(" ");
$write("%h", deflate0_isize);
$write("\n");
o_done <= 1'b1;
deflate0_state <= 5'b00000;
end
MYHDL3_adv(16);
end
else begin
if (MYHDL4_get4(0, 1)) begin
$write("final");
$write("\n");
deflate0_final <= 1'b1;
end
hm = MYHDL5_get4(1, 2);
deflate0_method <= hm;
$write("method");
$write(" ");
$write("%0d", hm);
$write("\n");
case (hm)
'h2: begin
if ((!1'b1)) begin
$write("dynamic tree mode disabled");
$write("\n");
end
deflate0_state <= 5'b00010;
deflate0_numCodeLength <= 0;
deflate0_numLiterals <= 0;
deflate0_static <= 1'b0;
MYHDL6_adv(3);
end
'h1: begin
deflate0_static <= 1'b1;
deflate0_cur_static <= 0;
$write("prev method is");
$write(" ");
$write("%h", deflate0_prev_method);
$write("\n");
if ((deflate0_prev_method == 1)) begin
$write("skip HF init");
$write("\n");
deflate0_state <= 5'b10011;
deflate0_cur_next <= 0;
end
else begin
deflate0_state <= 5'b01110;
end
MYHDL7_adv(3);
end
'h0: begin
deflate0_state <= 5'b10101;
skip = (8 - deflate0_dio);
if ((skip <= 2)) begin
skip = (16 - deflate0_dio);
end
deflate0_length <= MYHDL8_get4(skip, 16);
MYHDL9_adv((skip + 16));
deflate0_cur_i <= 0;
deflate0_offset <= 7;
end
default: begin
deflate0_state <= 5'b00000;
$write("Bad method");
$write("\n");
end
endcase
deflate0_prev_method <= hm;
$write("set prev");
$write(" ");
$write("%0d", hm);
$write("\n");
end
end
5'b10110: begin
no_adv = 0;
if ((!1'b1)) begin
// pass
end
else if ((!deflate0_nb)) begin
no_adv = 1;
end
else if ((deflate0_cur_cstatic == 0)) begin
deflate0_flush <= 1'b0;
deflate0_ob1 <= 0;
deflate0_adler1 <= 1;
deflate0_adler2 <= 0;
deflate0_ladler1 <= 0;
deflate0_oaddr <= 0;
deflate0_obyte <= 120;
end
else if ((deflate0_cur_cstatic == 1)) begin
deflate0_oaddr <= 1;
deflate0_obyte <= 156;
deflate0_do <= 2;
end
else if ((deflate0_cur_cstatic == 2)) begin
MYHDL10_put(3, 3);
end
else if (deflate0_flush) begin
no_adv = 1;
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= deflate0_ob1;
MYHDL11_do_flush;
end
else if ((($signed({1'b0, deflate0_cur_cstatic}) >= ($signed({1'b0, deflate0_isize}) - 10)) && (i_mode != 0))) begin
$write("P");
$write(" ");
$write("%h", deflate0_cur_cstatic);
$write(" ");
$write("%h", deflate0_isize);
$write("\n");
no_adv = 1;
end
else if ((deflate0_cur_cstatic > (deflate0_isize + 3))) begin
if ((deflate0_cur_cstatic == (deflate0_isize + 4))) begin
$write("Put EOF");
$write(" ");
$write("%h", deflate0_do);
$write("\n");
cs_i = 256;
outlen = deflate0_codeLength[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(" ");
$write("%0d", cs_i);
$write(" ");
$write("%h", outlen);
$write(" ");
$write("%0d", outbits);
$write("\n");
MYHDL12_put(outbits, outlen);
end
else if ((deflate0_cur_cstatic == (deflate0_isize + 5))) begin
$write("calc end adler");
$write("\n");
deflate0_adler2 <= ((deflate0_adler2 + deflate0_ladler1) % 65521);
if ((deflate0_doo != 0)) begin
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= deflate0_ob1;
deflate0_do <= (deflate0_do + 1);
end
end
else if ((deflate0_cur_cstatic == (deflate0_isize + 6))) begin
$write("c1");
$write("\n");
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= (deflate0_adler2 >>> 8);
deflate0_do <= (deflate0_do + 1);
o_oprogress <= (deflate0_do + 1);
end
else if ((deflate0_cur_cstatic == (deflate0_isize + 7))) begin
$write("c2");
$write("\n");
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= (deflate0_adler2 & 255);
deflate0_do <= (deflate0_do + 1);
o_oprogress <= (deflate0_do + 1);
end
else if ((deflate0_cur_cstatic == (deflate0_isize + 8))) begin
$write("c3");
$write("\n");
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= (deflate0_adler1 >>> 8);
deflate0_do <= (deflate0_do + 1);
o_oprogress <= (deflate0_do + 1);
end
else if ((deflate0_cur_cstatic == (deflate0_isize + 9))) begin
$write("c4");
$write("\n");
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= (deflate0_adler1 & 255);
o_oprogress <= (deflate0_do + 1);
end
else if ((deflate0_cur_cstatic == (deflate0_isize + 10))) begin
$write("EOF finish");
$write(" ");
$write("%h", deflate0_do);
$write("\n");
o_done <= 1'b1;
deflate0_state <= 5'b00000;
end
else begin
$write("%h", deflate0_cur_cstatic);
$write(" ");
$write("%h", deflate0_isize);
$write("\n");
end
end
else begin
bdata = deflate0_iram[(deflate0_di & 511)];
o_iprogress <= deflate0_di;
adler1_next = ((deflate0_adler1 + bdata) % 65521);
deflate0_adler1 <= adler1_next;
deflate0_adler2 <= ((deflate0_adler2 + deflate0_ladler1) % 65521);
deflate0_ladler1 <= adler1_next;
deflate0_state <= 5'b10111;
deflate0_cur_search <= (deflate0_di - 1);
end
if ((!no_adv)) begin
deflate0_cur_cstatic <= (deflate0_cur_cstatic + 1);
end
end
5'b11010: begin
if ((!1'b1)) begin
// pass
end
else if (deflate0_flush) begin
MYHDL13_do_flush;
end
else if (deflate0_do_init) begin
deflate0_do_init <= 1'b0;
deflate0_cur_cstatic <= ((deflate0_cur_cstatic + deflate0_mlength) - 1);
deflate0_outcarrybits <= 0;
// Crash
lencode = (deflate0_mlength + 254);
outlen = deflate0_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
MYHDL14_put(outbits, outlen);
deflate0_cur_i <= 0;
end
else if (deflate0_outcarrybits) begin
MYHDL15_put(deflate0_outcarry, deflate0_outcarrybits);
deflate0_state <= 5'b11011;
end
else begin
case ((deflate0_cur_i + 1))
0: nextdist = 1;
1: nextdist = 2;
2: nextdist = 3;
3: nextdist = 4;
4: nextdist = 5;
5: nextdist = 7;
6: nextdist = 9;
7: nextdist = 13;
8: nextdist = 17;
9: nextdist = 25;
10: nextdist = 33;
11: nextdist = 49;
12: nextdist = 65;
13: nextdist = 97;
14: nextdist = 129;
15: nextdist = 193;
16: nextdist = 257;
17: nextdist = 385;
18: nextdist = 513;
19: nextdist = 769;
20: nextdist = 1025;
21: nextdist = 1537;
22: nextdist = 2049;
23: nextdist = 3073;
24: nextdist = 4097;
25: nextdist = 6145;
26: nextdist = 8193;
27: nextdist = 12289;
28: nextdist = 16385;
default: nextdist = 24577;
endcase
if ((nextdist > deflate0_cur_dist)) begin
case (deflate0_cur_i)
0: copydist = 1;
1: copydist = 2;
2: copydist = 3;
3: copydist = 4;
4: copydist = 5;
5: copydist = 7;
6: copydist = 9;
7: copydist = 13;
8: copydist = 17;
9: copydist = 25;
10: copydist = 33;
11: copydist = 49;
12: copydist = 65;
13: copydist = 97;
14: copydist = 129;
15: copydist = 193;
16: copydist = 257;
17: copydist = 385;
18: copydist = 513;
19: copydist = 769;
20: copydist = 1025;
21: copydist = 1537;
22: copydist = 2049;
23: copydist = 3073;
24: copydist = 4097;
25: copydist = 6145;
26: copydist = 8193;
27: copydist = 12289;
28: copydist = 16385;
default: copydist = 24577;
endcase
extra_dist = (deflate0_cur_dist - copydist);
case ((deflate0_cur_i / 2))
0: extra_bits = 0;
1: extra_bits = 0;
2: extra_bits = 1;
3: extra_bits = 2;
4: extra_bits = 3;
5: extra_bits = 4;
6: extra_bits = 5;
7: extra_bits = 6;
8: extra_bits = 7;
9: extra_bits = 8;
10: extra_bits = 9;
11: extra_bits = 10;
12: extra_bits = 11;
13: extra_bits = 12;
default: extra_bits = 13;
endcase
deflate0_cur_i <= (($signed({1'b0, deflate0_di}) - $signed({1'b0, deflate0_mlength})) + 1);
outcode = (MYHDL16_rev_bits(deflate0_cur_i, 5) | (extra_dist << 5));
if ((extra_bits <= 4)) begin
MYHDL17_put(outcode, (5 + extra_bits));
deflate0_state <= 5'b11011;
end
else begin
deflate0_outcarry <= $signed(outcode >>> 8);
deflate0_outcarrybits <= (extra_bits - 3);
outcode = (outcode & 255);
MYHDL18_put(outcode, 8);
end
end
else begin
deflate0_cur_i <= (deflate0_cur_i + 1);
end
end
end
5'b11011: begin
if ((!1'b1)) begin
// pass
end
else if ((deflate0_cur_i < deflate0_di)) begin
bdata = deflate0_iram[(deflate0_cur_i & 511)];
adler1_next = ((deflate0_adler1 + bdata) % 65521);
deflate0_adler1 <= adler1_next;
deflate0_adler2 <= ((deflate0_adler2 + deflate0_ladler1) % 65521);
deflate0_ladler1 <= adler1_next;
deflate0_cur_i <= (deflate0_cur_i + 1);
end
else begin
deflate0_state <= 5'b10110;
end
end
5'b11001: begin
if ((1'b0 && 1'b1)) begin
lfmatch = deflate0_dlength;
distance = (lfmatch + 1);
fmatch2 = (($signed({1'b0, deflate0_di}) - $signed({1'b0, lfmatch})) + 2);
match = 3;
mdone = 1'b1;
if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 4)) && (deflate0_iram[(fmatch2 & 511)] == deflate0_b4))) begin
match = 4;
if ((deflate0_fcount < 5)) begin
mdone = 1'b0;
end
else if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 5)) && (deflate0_iram[((fmatch2 + 1) & 511)] == deflate0_b5))) begin
match = 5;
if (1'b1) begin
if ((deflate0_fcount < 6)) begin
mdone = 1'b0;
end
else begin
if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 6)) && (deflate0_iram[((fmatch2 + 2) & 511)] == deflate0_b6))) begin
match = 6;
if ((deflate0_fcount < 7)) begin
mdone = 1'b0;
end
else if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 7)) && (deflate0_iram[((fmatch2 + 3) & 511)] == deflate0_b7))) begin
match = 7;
if ((deflate0_fcount < 8)) begin
mdone = 1'b0;
end
else if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 8)) && (deflate0_iram[((fmatch2 + 4) & 511)] == deflate0_b8))) begin
match = 8;
if ((deflate0_fcount < 9)) begin
mdone = 1'b0;
end
else if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 9)) && (deflate0_iram[((fmatch2 + 5) & 511)] == deflate0_b9))) begin
match = 9;
if ((deflate0_fcount < 10)) begin
mdone = 1'b0;
end
else if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 10)) && (deflate0_iram[((fmatch2 + 6) & 511)] == deflate0_b10))) begin
match = 10;
end
end
end
end
end
end
end
end
end
if (mdone) begin
deflate0_cur_dist <= distance;
deflate0_do_init <= 1'b1;
deflate0_di <= (deflate0_di + match);
deflate0_mlength <= match;
deflate0_state <= 5'b11010;
end
end
end
5'b10111: begin
if ((!1'b1)) begin
// pass
end
else begin
if (((deflate0_cur_search >= 0) && (deflate0_cur_search >= ($signed({1'b0, deflate0_di}) - 256)) && ($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - 3)))) begin
if (1'b0) begin
found = 0;
fmatch = 0;
begin: MYHDL19_BREAK
for (si=0; si<256; si=si+1) begin
if (deflate0_smatch[si]) begin
fmatch = si;
found = 1;
end
end
end
if (((!found) || ((($signed({1'b0, deflate0_di}) - fmatch) - 1) < 0))) begin
deflate0_cur_search <= (-1);
end
else begin
deflate0_dlength <= fmatch;
deflate0_state <= 5'b11001;
end
end
else begin
if (((!1'b0) && (deflate0_iram[(deflate0_cur_search & 511)] == deflate0_b1) && (deflate0_iram[((deflate0_cur_search + 1) & 511)] == deflate0_b2) && (deflate0_iram[((deflate0_cur_search + 2) & 511)] == deflate0_b3))) begin
deflate0_more <= 4;
deflate0_state <= 5'b11000;
end
else begin
deflate0_cur_search <= (deflate0_cur_search - 1);
end
end
end
else begin
bdata = deflate0_b1;
deflate0_di <= (deflate0_di + 1);
outlen = deflate0_codeLength[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
MYHDL21_put(outbits, outlen);
deflate0_state <= 5'b10110;
end
end
end
5'b11000: begin
mdone = 1'b1;
limit = 5;
if (1'b1) begin
limit = 10;
end
if ((deflate0_more <= limit)) begin
cbyte = deflate0_b4;
case (deflate0_more)
'h5: begin
cbyte = deflate0_b5;
end
'h6: begin
cbyte = deflate0_b6;
end
'h7: begin
cbyte = deflate0_b7;
end
'h8: begin
cbyte = deflate0_b8;
end
'h9: begin
cbyte = deflate0_b9;
end
'ha: begin
cbyte = deflate0_b10;
end
endcase
if ((($signed({1'b0, deflate0_di}) < ($signed({1'b0, deflate0_isize}) - $signed({1'b0, deflate0_more}))) && (deflate0_iram[(((deflate0_cur_search + $signed({1'b0, deflate0_more})) - 1) & 511)] == cbyte))) begin
deflate0_more <= (deflate0_more + 1);
mdone = 1'b0;
end
end
if (mdone) begin
match = (deflate0_more - 1);
distance = ($signed({1'b0, deflate0_di}) - deflate0_cur_search);
deflate0_cur_dist <= distance;
deflate0_do_init <= 1'b1;
deflate0_di <= (deflate0_di + match);
deflate0_mlength <= match;
deflate0_state <= 5'b11010;
end
end
5'b01110: begin
for (stat_i=0; stat_i<144; stat_i=stat_i+1) begin
deflate0_codeLength[stat_i] <= 8;
end
for (stat_i=144; stat_i<256; stat_i=stat_i+1) begin
deflate0_codeLength[stat_i] <= 9;
end
for (stat_i=256; stat_i<280; stat_i=stat_i+1) begin
deflate0_codeLength[stat_i] <= 7;
end
for (stat_i=280; stat_i<288; stat_i=stat_i+1) begin
deflate0_codeLength[stat_i] <= 8;
end
deflate0_numCodeLength <= 288;
if (deflate0_do_compress) begin
deflate0_state <= 5'b10110;
end
else begin
deflate0_cur_HF1 <= 0;
deflate0_state <= 5'b00111;
end
end
5'b00010: begin
if (((!1'b0) || (!1'b1))) begin
// pass
end
else if ((!deflate0_filled)) begin
deflate0_filled <= 1'b1;
end
else if ((deflate0_numLiterals == 0)) begin
$write("%h", deflate0_di);
$write(" ");
$write("%h", deflate0_isize);
$write("\n");
deflate0_numLiterals <= (257 + MYHDL30_get4(0, 5));
$write("NL:");
$write(" ");
$write("%0d", (257 + MYHDL31_get4(0, 5)));
$write("\n");
deflate0_numDistance <= (1 + MYHDL32_get4(5, 5));
$write("ND:");
$write(" ");
$write("%0d", (1 + MYHDL33_get4(5, 5)));
$write("\n");
deflate0_b_numCodeLength <= (4 + MYHDL34_get4(10, 4));
$write("NCL:");
$write(" ");
$write("%0d", (4 + MYHDL35_get4(10, 4)));
$write("\n");
deflate0_numCodeLength <= 0;
MYHDL36_adv(14);
end
else begin
if ((deflate0_numCodeLength < 19)) begin
case (deflate0_numCodeLength)
0: clo_i = 16;
1: clo_i = 17;
2: clo_i = 18;
3: clo_i = 0;
4: clo_i = 8;
5: clo_i = 7;
6: clo_i = 9;
7: clo_i = 6;
8: clo_i = 10;
9: clo_i = 5;
10: clo_i = 11;
11: clo_i = 4;
12: clo_i = 12;
13: clo_i = 3;
14: clo_i = 13;
15: clo_i = 2;
16: clo_i = 14;
17: clo_i = 1;
default: clo_i = 15;
endcase
if ((deflate0_numCodeLength < deflate0_b_numCodeLength)) begin
deflate0_codeLength[clo_i] <= MYHDL37_get4(0, 3);
MYHDL38_adv(3);
end
else begin
deflate0_codeLength[clo_i] <= 0;
end
deflate0_numCodeLength <= (deflate0_numCodeLength + 1);
end
else begin
deflate0_numCodeLength <= 19;
deflate0_cur_HF1 <= 0;
deflate0_state <= 5'b00111;
end
end
end
5'b00011: begin
if (((!1'b0) || (!1'b1))) begin
// pass
end
else if ((!deflate0_filled)) begin
deflate0_filled <= 1'b1;
end
else if ((deflate0_numCodeLength < (deflate0_numLiterals + deflate0_numDistance))) begin
n_adv = 0;
if ((deflate0_code < 16)) begin
deflate0_howOften <= 1;
deflate0_lastToken <= deflate0_code;
end
else if ((deflate0_code == 16)) begin
deflate0_howOften <= (3 + MYHDL39_get4(0, 2));
n_adv = 2;
end
else if ((deflate0_code == 17)) begin
deflate0_howOften <= (3 + MYHDL40_get4(0, 3));
deflate0_lastToken <= 0;
n_adv = 3;
end
else if ((deflate0_code == 18)) begin
deflate0_howOften <= (11 + MYHDL41_get4(0, 7));
deflate0_lastToken <= 0;
n_adv = 7;
end
else begin
end
if ((n_adv != 0)) begin
MYHDL42_adv(n_adv);
end
deflate0_state <= 5'b00100;
end
else begin
$write("FILL UP");
$write("\n");
for (dbl_i=0; dbl_i<32; dbl_i=dbl_i+1) begin
dbl = 0;
if (((dbl_i + $signed({1'b0, deflate0_numLiterals})) < deflate0_numCodeLength)) begin
dbl = deflate0_codeLength[(dbl_i + $signed({1'b0, deflate0_numLiterals}))];
end
deflate0_distanceLength[dbl_i] <= dbl;
end
deflate0_cur_i <= deflate0_numLiterals;
deflate0_state <= 5'b00110;
end
end
5'b00110: begin
if ((!1'b0)) begin
// pass
end
else if ((deflate0_cur_i < 320)) begin
deflate0_codeLength[deflate0_cur_i] <= 0;
deflate0_cur_i <= (deflate0_cur_i + 1);
end
else begin
deflate0_method <= 3;
deflate0_cur_HF1 <= 0;
deflate0_state <= 5'b00111;
end
end
5'b00101: begin
if ((1'b0 && 1'b1)) begin
$write("DISTTREE");
$write("\n");
for (dist_i=0; dist_i<32; dist_i=dist_i+1) begin
deflate0_codeLength[dist_i] <= deflate0_distanceLength[dist_i];
end
deflate0_numCodeLength <= 32;
deflate0_method <= 4;
deflate0_cur_HF1 <= 0;
deflate0_state <= 5'b00111;
end
end
5'b00100: begin
if ((!1'b0)) begin
// pass
end
else if ((deflate0_howOften != 0)) begin
deflate0_codeLength[deflate0_numCodeLength] <= deflate0_lastToken;
deflate0_howOften <= (deflate0_howOften - 1);
deflate0_numCodeLength <= (deflate0_numCodeLength + 1);
end
else if ((deflate0_numCodeLength < (deflate0_numLiterals + deflate0_numDistance))) begin
deflate0_cur_next <= 0;
deflate0_state <= 5'b10011;
end
else begin
deflate0_state <= 5'b00011;
end
end
5'b00111: begin
if (1'b0) begin
if ((deflate0_cur_HF1 < 16)) begin
deflate0_bitLengthCount[deflate0_cur_HF1] <= 0;
end
if (((deflate0_cur_HF1 < 1) && 1'b1)) begin
deflate0_dlwaddr <= deflate0_cur_HF1;
deflate0_dwleaf <= 0;
end
if (((deflate0_method != 4) && (deflate0_cur_HF1 < 1))) begin
deflate0_lwaddr <= deflate0_cur_HF1;
deflate0_wleaf <= 0;
end
limit = 1;
if (((deflate0_method == 4) && 1'b1)) begin
limit = 1;
end
if ((deflate0_cur_HF1 < limit)) begin
deflate0_cur_HF1 <= (deflate0_cur_HF1 + 1);
end
else begin
$write("DID HF1 INIT");
$write("\n");
deflate0_cur_i <= 0;
deflate0_state <= 5'b01000;
end
end
end
5'b01000: begin
if ((!1'b0)) begin
// pass
end
else if ((deflate0_cur_i < deflate0_numCodeLength)) begin
j = deflate0_codeLength[deflate0_cur_i];
deflate0_bitLengthCount[j] <= (deflate0_bitLengthCount[j] + 1);
deflate0_cur_i <= (deflate0_cur_i + 1);
end
else begin
deflate0_bitLengthCount[0] <= 0;
deflate0_state <= 5'b01001;
deflate0_cur_i <= 1;
if ((deflate0_method == 4)) begin
deflate0_d_maxBits <= 0;
end
else begin
deflate0_maxBits <= 0;
end
deflate0_minBits <= 15;
end
end
5'b01001: begin
if ((!1'b0)) begin
// pass
end
else if ((deflate0_cur_i <= 15)) begin
if ((deflate0_bitLengthCount[deflate0_cur_i] != 0)) begin
if ((deflate0_cur_i < deflate0_minBits)) begin
deflate0_minBits <= deflate0_cur_i;
end
if ((deflate0_method == 4)) begin
if ((deflate0_cur_i > deflate0_d_maxBits)) begin
deflate0_d_maxBits <= deflate0_cur_i;
end
end
else begin
if ((deflate0_cur_i > deflate0_maxBits)) begin
deflate0_maxBits <= deflate0_cur_i;
end
end
end
deflate0_cur_i <= (deflate0_cur_i + 1);
end
else begin
$write("%h", deflate0_minBits);
$write(" ");
$write("%h", deflate0_maxBits);
$write("\n");
t = 10;
if (((deflate0_method == 4) && 1'b1)) begin
if ((t > deflate0_d_maxBits)) begin
t = deflate0_d_maxBits;
end
deflate0_d_instantMaxBit <= t;
deflate0_d_instantMask <= ((1 << t) - 1);
end
else begin
if ((t > deflate0_maxBits)) begin
t = deflate0_maxBits;
end
deflate0_instantMaxBit <= t;
deflate0_instantMask <= ((1 << t) - 1);
end
$write("%0d", ((1 << t) - 1));
$write("\n");
deflate0_state <= 5'b01010;
deflate0_cur_i <= deflate0_minBits;
deflate0_code <= 0;
for (hf2_i=0; hf2_i<16; hf2_i=hf2_i+1) begin
deflate0_nextCode[hf2_i] <= 0;
end
$write("to HF3");
$write("\n");
end
end
5'b01010: begin
if (1'b0) begin
amb = deflate0_maxBits;
if (((deflate0_method == 4) && 1'b1)) begin
amb = deflate0_d_maxBits;
end
if ((deflate0_cur_i <= amb)) begin
ncode = ((deflate0_code + deflate0_bitLengthCount[($signed({1'b0, deflate0_cur_i}) - 1)]) << 1);
deflate0_code <= ncode;
deflate0_nextCode[deflate0_cur_i] <= ncode;
deflate0_cur_i <= (deflate0_cur_i + 1);
end
else begin
deflate0_state <= 5'b01011;
deflate0_cur_i <= 0;
deflate0_spread_i <= 0;
$write("to HF4");
$write("\n");
end
end
end
5'b01100: begin
if (1'b0) begin
canonical = deflate0_nextCode[deflate0_bits];
deflate0_nextCode[deflate0_bits] <= (deflate0_nextCode[deflate0_bits] + 1);
deflate0_reverse <= MYHDL49_rev_bits(canonical, deflate0_bits);
deflate0_leaf <= MYHDL50_makeLeaf(deflate0_spread_i, deflate0_bits);
deflate0_state <= 5'b01101;
end
end
5'b01101: begin
if ((!1'b0)) begin
// pass
end
else if (((deflate0_method == 4) && 1'b1)) begin
deflate0_dwleaf <= deflate0_leaf;
deflate0_dlwaddr <= deflate0_reverse;
if ((deflate0_bits <= deflate0_d_instantMaxBit)) begin
if (((deflate0_reverse + (1 << deflate0_bits)) <= deflate0_d_instantMask)) begin
deflate0_step <= (1 << deflate0_bits);
deflate0_spread <= (deflate0_reverse + (1 << deflate0_bits));
deflate0_state <= 5'b10010;
end
else begin
deflate0_spread_i <= (deflate0_spread_i + 1);
deflate0_state <= 5'b01011;
end
end
else begin
deflate0_state <= 5'b01011;
deflate0_spread_i <= (deflate0_spread_i + 1);
end
end
else begin
deflate0_wleaf <= deflate0_leaf;
deflate0_lwaddr <= deflate0_reverse;
if ((deflate0_bits <= deflate0_instantMaxBit)) begin
if (((deflate0_reverse + (1 << deflate0_bits)) <= deflate0_instantMask)) begin
deflate0_step <= (1 << deflate0_bits);
deflate0_spread <= (deflate0_reverse + (1 << deflate0_bits));
deflate0_state <= 5'b10010;
end
else begin
deflate0_spread_i <= (deflate0_spread_i + 1);
deflate0_state <= 5'b01011;
end
end
else begin
deflate0_spread_i <= (deflate0_spread_i + 1);
deflate0_state <= 5'b01011;
end
end
end
5'b01011: begin
if ((!1'b0)) begin
// pass
end
else if ((deflate0_spread_i < deflate0_numCodeLength)) begin
bits_next = deflate0_codeLength[deflate0_spread_i];
if ((bits_next != 0)) begin
deflate0_bits <= bits_next;
deflate0_state <= 5'b01100;
end
else begin
deflate0_spread_i <= (deflate0_spread_i + 1);
end
end
else begin
if (deflate0_do_compress) begin
deflate0_state <= 5'b10110;
deflate0_cur_cstatic <= 0;
end
else if (((deflate0_method == 3) && 1'b1)) begin
deflate0_state <= 5'b00101;
end
else if (((deflate0_method == 4) && 1'b1)) begin
$write("DEFLATE m2!");
$write("\n");
deflate0_state <= 5'b10011;
end
else if (((deflate0_method == 2) && 1'b1)) begin
deflate0_numCodeLength <= 0;
deflate0_state <= 5'b10011;
end
else begin
deflate0_state <= 5'b10011;
end
deflate0_cur_next <= 0;
deflate0_cur_i <= 0;
end
end
5'b10010: begin
if (1'b0) begin
if (((deflate0_method == 4) && 1'b1)) begin
deflate0_dlwaddr <= deflate0_spread;
deflate0_dwleaf <= MYHDL51_makeLeaf(deflate0_spread_i, deflate0_codeLength[deflate0_spread_i]);
end
else begin
deflate0_lwaddr <= deflate0_spread;
deflate0_wleaf <= MYHDL52_makeLeaf(deflate0_spread_i, deflate0_codeLength[deflate0_spread_i]);
end
aim = deflate0_instantMask;
if (((deflate0_method == 4) && 1'b1)) begin
aim = deflate0_d_instantMask;
end
if (($signed({1'b0, deflate0_spread}) > ($signed({1'b0, aim}) - $signed({1'b0, deflate0_step})))) begin
deflate0_spread_i <= (deflate0_spread_i + 1);
deflate0_state <= 5'b01011;
end
else begin
deflate0_spread <= (deflate0_spread + deflate0_step);
end
end
end
5'b10011: begin
if ((!1'b0)) begin
// pass
end
else if ((!deflate0_filled)) begin
deflate0_filled <= 1'b1;
end
else if ((deflate0_cur_next == 0)) begin
cto = MYHDL53_get4(0, deflate0_maxBits);
mask = ((1 << deflate0_instantMaxBit) - 1);
deflate0_lraddr <= (cto & mask);
deflate0_filled <= 1'b0;
deflate0_cur_next <= (deflate0_instantMaxBit + 1);
end
else if ((1'b1 && (MYHDL54_get_bits(deflate0_rleaf) >= deflate0_cur_next))) begin
$write("CACHE MISS");
$write(" ");
$write("%h", deflate0_cur_next);
$write("\n");
cto = MYHDL55_get4(0, deflate0_maxBits);
mask = ((1 << deflate0_cur_next) - 1);
deflate0_lraddr <= (cto & mask);
deflate0_filled <= 1'b0;
deflate0_cur_next <= (deflate0_cur_next + 1);
end
else begin
MYHDL58_adv(MYHDL57_get_bits(deflate0_rleaf));
// if get_code(leaf) == 0:
// print("leaf 0", di, isize)
deflate0_code <= MYHDL59_get_code(deflate0_rleaf);
if (((deflate0_method == 2) && 1'b1)) begin
deflate0_state <= 5'b00011;
end
else begin
deflate0_state <= 5'b10100;
end
end
end
5'b01111: begin
if (((!1'b0) || (!1'b1))) begin
// pass
end
else if ((!deflate0_filled)) begin
deflate0_filled <= 1'b1;
end
else if ((deflate0_cur_next == 0)) begin
token = (deflate0_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 = MYHDL60_get4(extraLength, deflate0_d_maxBits);
mask = ((1 << deflate0_d_instantMaxBit) - 1);
deflate0_dlraddr <= (cto & mask);
deflate0_filled <= 1'b0;
deflate0_cur_next <= (deflate0_instantMaxBit + 1);
end
else if ((MYHDL61_get_bits(deflate0_drleaf) >= deflate0_cur_next)) begin
$write("DCACHE MISS");
$write(" ");
$write("%h", deflate0_cur_next);
$write("\n");
token = (deflate0_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 = MYHDL62_get4(extraLength, deflate0_d_maxBits);
mask = ((1 << deflate0_cur_next) - 1);
deflate0_dlraddr <= (cto & mask);
deflate0_filled <= 1'b0;
deflate0_cur_next <= (deflate0_cur_next + 1);
end
else begin
deflate0_state <= 5'b10000;
end
end
5'b10000: begin
if ((1'b0 && 1'b1)) begin
token = (deflate0_code - 257);
case (token)
0: tlength = 3;
1: tlength = 4;
2: tlength = 5;
3: tlength = 6;
4: tlength = 7;
5: tlength = 8;
6: tlength = 9;
7: tlength = 10;
8: tlength = 11;
9: tlength = 13;
10: tlength = 15;
11: tlength = 17;
12: tlength = 19;
13: tlength = 23;
14: tlength = 27;
15: tlength = 31;
16: tlength = 35;
17: tlength = 43;
18: tlength = 51;
19: tlength = 59;
20: tlength = 67;
21: tlength = 83;
22: tlength = 99;
23: tlength = 115;
24: tlength = 131;
25: tlength = 163;
26: tlength = 195;
27: tlength = 227;
default: tlength = 258;
endcase
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
tlength = tlength + MYHDL64_get4(0, extraLength);
distanceCode = MYHDL65_get_code(deflate0_drleaf);
case (distanceCode)
0: distance = 1;
1: distance = 2;
2: distance = 3;
3: distance = 4;
4: distance = 5;
5: distance = 7;
6: distance = 9;
7: distance = 13;
8: distance = 17;
9: distance = 25;
10: distance = 33;
11: distance = 49;
12: distance = 65;
13: distance = 97;
14: distance = 129;
15: distance = 193;
16: distance = 257;
17: distance = 385;
18: distance = 513;
19: distance = 769;
20: distance = 1025;
21: distance = 1537;
22: distance = 2049;
23: distance = 3073;
24: distance = 4097;
25: distance = 6145;
26: distance = 8193;
27: distance = 12289;
28: distance = 16385;
default: distance = 24577;
endcase
case ($signed(distanceCode >>> 1))
0: moreBits = 0;
1: moreBits = 0;
2: moreBits = 1;
3: moreBits = 2;
4: moreBits = 3;
5: moreBits = 4;
6: moreBits = 5;
7: moreBits = 6;
8: moreBits = 7;
9: moreBits = 8;
10: moreBits = 9;
11: moreBits = 10;
12: moreBits = 11;
13: moreBits = 12;
default: moreBits = 13;
endcase
mored = MYHDL67_get4((extraLength + MYHDL66_get_bits(deflate0_drleaf)), moreBits);
distance = distance + mored;
MYHDL69_adv(((moreBits + extraLength) + MYHDL68_get_bits(deflate0_drleaf)));
deflate0_offset <= (($signed({1'b0, deflate0_do}) - distance) & 8191);
deflate0_length <= tlength;
deflate0_cur_i <= 0;
deflate0_oraddr <= ($signed({1'b0, deflate0_do}) - distance);
deflate0_state <= 5'b10101;
end
end
5'b10100: begin
if ((!1'b0)) begin
// pass
end
else if (((deflate0_method == 1) && (!deflate0_filled))) begin
deflate0_filled <= 1'b1;
end
else if ((($signed({1'b0, deflate0_di}) >= ($signed({1'b0, deflate0_isize}) - 4)) && (!(i_mode == 0)))) begin
// pass
end
else if ((deflate0_do >= (i_raddr + 8192))) begin
// pass
end
else if (($signed({1'b0, deflate0_di}) > ($signed({1'b0, deflate0_isize}) - 3))) begin
deflate0_state <= 5'b00000;
o_done <= 1'b1;
$write("NO EOF ");
$write(" ");
$write("%h", deflate0_di);
$write("\n");
end
else if ((deflate0_code == 256)) begin
$write("EOF:");
$write(" ");
$write("%h", deflate0_di);
$write(" ");
$write("%h", deflate0_do);
$write("\n");
if ((!deflate0_final)) begin
deflate0_state <= 5'b00001;
deflate0_filled <= 1'b0;
$write("New Block!");
$write("\n");
end
else begin
o_done <= 1'b1;
deflate0_state <= 5'b00000;
end
end
else begin
if ((deflate0_code < 256)) begin
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= deflate0_code;
o_oprogress <= (deflate0_do + 1);
deflate0_do <= (deflate0_do + 1);
deflate0_cur_next <= 0;
deflate0_state <= 5'b10011;
end
else if ((deflate0_code == 300)) begin
end
else begin
if (deflate0_static) begin
token = (deflate0_code - 257);
case (token)
0: tlength = 3;
1: tlength = 4;
2: tlength = 5;
3: tlength = 6;
4: tlength = 7;
5: tlength = 8;
6: tlength = 9;
7: tlength = 10;
8: tlength = 11;
9: tlength = 13;
10: tlength = 15;
11: tlength = 17;
12: tlength = 19;
13: tlength = 23;
14: tlength = 27;
15: tlength = 31;
16: tlength = 35;
17: tlength = 43;
18: tlength = 51;
19: tlength = 59;
20: tlength = 67;
21: tlength = 83;
22: tlength = 99;
23: tlength = 115;
24: tlength = 131;
25: tlength = 163;
26: tlength = 195;
27: tlength = 227;
default: tlength = 258;
endcase
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
tlength = tlength + MYHDL70_get4(0, extraLength);
t = MYHDL71_get4(extraLength, 5);
distanceCode = MYHDL72_rev_bits(t, 5);
case (distanceCode)
0: distance = 1;
1: distance = 2;
2: distance = 3;
3: distance = 4;
4: distance = 5;
5: distance = 7;
6: distance = 9;
7: distance = 13;
8: distance = 17;
9: distance = 25;
10: distance = 33;
11: distance = 49;
12: distance = 65;
13: distance = 97;
14: distance = 129;
15: distance = 193;
16: distance = 257;
17: distance = 385;
18: distance = 513;
19: distance = 769;
20: distance = 1025;
21: distance = 1537;
22: distance = 2049;
23: distance = 3073;
24: distance = 4097;
25: distance = 6145;
26: distance = 8193;
27: distance = 12289;
28: distance = 16385;
default: distance = 24577;
endcase
case ($signed(distanceCode >>> 1))
0: moreBits = 0;
1: moreBits = 0;
2: moreBits = 1;
3: moreBits = 2;
4: moreBits = 3;
5: moreBits = 4;
6: moreBits = 5;
7: moreBits = 6;
8: moreBits = 7;
9: moreBits = 8;
10: moreBits = 9;
11: moreBits = 10;
12: moreBits = 11;
13: moreBits = 12;
default: moreBits = 13;
endcase
distance = distance + MYHDL73_get4((extraLength + 5), moreBits);
MYHDL74_adv(((extraLength + 5) + moreBits));
deflate0_offset <= ($signed({1'b0, deflate0_do}) - distance);
deflate0_length <= tlength;
deflate0_cur_i <= 0;
deflate0_oraddr <= ($signed({1'b0, deflate0_do}) - distance);
deflate0_state <= 5'b10101;
end
else begin
if ((!1'b1)) begin
$write("DYNAMIC mode disabled");
$write("\n");
end
deflate0_state <= 5'b01111;
end
end
deflate0_cur_next <= 0;
end
end
5'b10101: begin
if ((!1'b0)) begin
// pass
end
else if (((deflate0_cur_i == 0) && ((deflate0_do + deflate0_length) >= (i_raddr + 8192)))) begin
// pass
end
else if (($signed({1'b0, deflate0_di}) >= ($signed({1'b0, deflate0_isize}) - 2))) begin
// pass
end
else if ((deflate0_method == 0)) begin
if ((!deflate0_filled)) begin
deflate0_filled <= 1'b1;
end
else if ((deflate0_cur_i < deflate0_length)) begin
deflate0_oaddr <= deflate0_do;
deflate0_obyte <= deflate0_b3;
MYHDL75_adv(8);
deflate0_cur_i <= (deflate0_cur_i + 1);
deflate0_do <= (deflate0_do + 1);
o_oprogress <= (deflate0_do + 1);
end
else if ((!deflate0_final)) begin
MYHDL76_adv(16);
deflate0_state <= 5'b00001;
deflate0_filled <= 1'b0;
$write("new block");
$write("\n");
end
else begin
o_done <= 1'b1;
deflate0_state <= 5'b00000;
end
end
else if ((deflate0_cur_i < (deflate0_length + 2))) begin
deflate0_oraddr <= (deflate0_offset + deflate0_cur_i);
if ((deflate0_cur_i == 1)) begin
deflate0_copy1 <= deflate0_orbyte;
end
if ((deflate0_cur_i == 3)) begin
deflate0_copy2 <= deflate0_orbyte;
end
if ((deflate0_cur_i > 1)) begin
if ((((deflate0_offset + deflate0_cur_i) & 8191) == ((deflate0_do + 1) & 8191))) begin
deflate0_obyte <= deflate0_copy1;
end
else if (((deflate0_cur_i == 3) || (((deflate0_offset + deflate0_cur_i) & 8191) != (deflate0_do & 8191)))) begin
deflate0_obyte <= deflate0_orbyte;
end
else if ((deflate0_cur_i > 2)) begin
if ((deflate0_cur_i & 1)) begin
deflate0_obyte <= deflate0_copy2;
end
else begin
deflate0_obyte <= deflate0_copy1;
end
end
else begin
deflate0_obyte <= deflate0_copy1;
end
deflate0_oaddr <= deflate0_do;
o_oprogress <= (deflate0_do + 1);
deflate0_do <= (deflate0_do + 1);
end
deflate0_cur_i <= (deflate0_cur_i + 1);
end
else begin
deflate0_cur_next <= 0;
deflate0_state <= 5'b10011;
end
end
default: begin
$write("unknown state?!");
$write("\n");
deflate0_state <= 5'b00000;
end
endcase
end
end
always @(posedge i_clk) begin: TEST_DEFLATE_BENCH_DEFLATE0_FILL_BUF
integer shift;
reg [8-1:0] rb;
if ((!reset)) begin
$write("FILL RESET");
$write("\n");
deflate0_nb <= 0;
end
else begin
if ((deflate0_isize < 4)) begin
deflate0_nb <= 0;
deflate0_old_di <= 0;
end
else if (((i_mode == 4) || (i_mode == 5))) begin
deflate0_nb <= 0;
deflate0_old_di <= 0;
end
else begin
// if do_compress:
// print("FILL", di, old_di, nb, b1, b2, b3, b4)
if (1'b0) begin
shift = (($signed({1'b0, deflate0_di}) - $signed({1'b0, deflate0_old_di})) * 8);
// if shift != 0:
// print("shift", shift, cwindow, b1, b2, b3, b4)
if (1'b1) begin
deflate0_cwindow <= (($signed({1'b0, deflate0_cwindow}) << shift) | $signed($signed({1'b0, deflate0_b110}) >>> (80 - shift)));
end
else begin
deflate0_cwindow <= (($signed({1'b0, deflate0_cwindow}) << shift) | $signed($signed({1'b0, deflate0_b15}) >>> (40 - shift)));
end
end
deflate0_b1 <= deflate0_iram[(deflate0_di & 511)];
deflate0_b2 <= deflate0_iram[((deflate0_di + 1) & 511)];
deflate0_b3 <= deflate0_iram[((deflate0_di + 2) & 511)];
if ((deflate0_old_di == deflate0_di)) begin
// if fcount < 9:
// print("fcount", fcount)
deflate0_nb <= 1'b1;
rb = deflate0_iram[((deflate0_di + deflate0_fcount) & 511)];
if ((deflate0_fcount == 4)) begin
deflate0_b5 <= rb;
deflate0_fcount <= 5;
end
else if (1'b1) begin
case (deflate0_fcount)
'h5: begin
deflate0_b6 <= rb;
end
'h6: begin
deflate0_b7 <= rb;
end
'h7: begin
deflate0_b8 <= rb;
end
'h8: begin
deflate0_b9 <= rb;
end
'h9: begin
deflate0_b10 <= rb;
end
endcase
if ((deflate0_fcount < 10)) begin
deflate0_fcount <= (deflate0_fcount + 1);
end
end
end
else begin
deflate0_fcount <= 4;
deflate0_b4 <= deflate0_iram[((deflate0_di + 3) & 511)];
end
deflate0_old_di <= deflate0_di;
end
end
end
always @(posedge i_clk) begin: TEST_DEFLATE_BENCH_DEFLATE0_BRAMWRITE
deflate0_oram[deflate0_oaddr] <= deflate0_obyte;
deflate0_leaves[deflate0_lwaddr] <= deflate0_wleaf;
deflate0_d_leaves[deflate0_dlwaddr] <= deflate0_dwleaf;
end
always @(posedge i_clk) begin: TEST_DEFLATE_BENCH_DEFLATE0_BRAMREAD
deflate0_orbyte <= deflate0_oram[deflate0_oraddr];
deflate0_rleaf <= deflate0_leaves[deflate0_lraddr];
deflate0_drleaf <= deflate0_d_leaves[deflate0_dlraddr];
end
always @(posedge i_clk) begin: TEST_DEFLATE_BENCH_COUNT
if ((scounter == 0)) begin
counter <= (counter + 1);
end
scounter <= (scounter + 1);
end
always @(posedge i_clk) begin: TEST_DEFLATE_BENCH_LOGIC
integer ud1;
integer ud2;
if ((tstate == 5'b00000)) begin
$write("RESET");
$write(" ");
$write("%h", counter);
$write("\n");
reset <= 0;
led0_g <= 0;
led1_b <= 0;
led2_r <= 0;
tbi <= 0;
tstate <= 5'b00001;
end
else if (((22 > 2) && (scounter != 0))) begin
// pass
end
else if ((tstate == 5'b00001)) begin
if ((tbi < 1)) begin
tbi <= (tbi + 1);
end
else begin
reset <= 1;
if (1'b0) begin
tstate <= 5'b00010;
end
else begin
tstate <= 5'b00111;
end
tbi <= 0;
end
end
else if ((tstate == 5'b10001)) begin
led0_g <= 1;
led2_r <= 0;
led1_b <= 0;
end
else if ((tstate == 5'b10000)) begin
led0_g <= (!led0_g);
led2_r <= (!led2_r);
led1_b <= o_done;
end
else if ((tstate == 5'b00010)) begin
if ((tbi < 88)) begin
o_led <= tbi;
led1_b <= o_done;
led2_r <= (!led2_r);
i_mode <= 2;
case (tbi)
0: i_data <= 120;
1: i_data <= 156;
2: i_data <= 117;
3: i_data <= 207;
4: i_data <= 187;
5: i_data <= 9;
6: i_data <= 128;
7: i_data <= 64;
8: i_data <= 0;
9: i_data <= 4;
10: i_data <= 209;
11: i_data <= 86;
12: i_data <= 214;
13: i_data <= 14;
14: i_data <= 220;
15: i_data <= 243;
16: i_data <= 223;
17: i_data <= 129;
18: i_data <= 29;
19: i_data <= 216;
20: i_data <= 128;
21: i_data <= 102;
22: i_data <= 7;
23: i_data <= 7;
24: i_data <= 246;
25: i_data <= 31;
26: i_data <= 24;
27: i_data <= 9;
28: i_data <= 10;
29: i_data <= 59;
30: i_data <= 19;
31: i_data <= 78;
32: i_data <= 246;
33: i_data <= 36;
34: i_data <= 237;
35: i_data <= 87;
36: i_data <= 173;
37: i_data <= 77;
38: i_data <= 71;
39: i_data <= 187;
40: i_data <= 235;
41: i_data <= 217;
42: i_data <= 169;
43: i_data <= 215;
44: i_data <= 219;
45: i_data <= 111;
46: i_data <= 59;
47: i_data <= 239;
48: i_data <= 146;
49: i_data <= 247;
50: i_data <= 144;
51: i_data <= 247;
52: i_data <= 152;
53: i_data <= 247;
54: i_data <= 148;
55: i_data <= 247;
56: i_data <= 156;
57: i_data <= 247;
58: i_data <= 146;
59: i_data <= 247;
60: i_data <= 154;
61: i_data <= 247;
62: i_data <= 6;
63: i_data <= 28;
64: i_data <= 98;
65: i_data <= 130;
66: i_data <= 211;
67: i_data <= 0;
68: i_data <= 53;
69: i_data <= 72;
70: i_data <= 13;
71: i_data <= 84;
72: i_data <= 131;
73: i_data <= 213;
74: i_data <= 128;
75: i_data <= 53;
76: i_data <= 104;
77: i_data <= 13;
78: i_data <= 92;
79: i_data <= 131;
80: i_data <= 183;
81: i_data <= 124;
82: i_data <= 188;
83: i_data <= 15;
84: i_data <= 106;
85: i_data <= 67;
86: i_data <= 122;
default: i_data <= 80;
endcase
i_waddr <= tbi;
tbi <= (tbi + 1);
end
else begin
i_mode <= 0;
led2_r <= 0;
tstate <= 5'b00011;
end
end
else if ((tstate == 5'b00011)) begin
i_mode <= 5;
tstate <= 5'b00100;
end
else if ((tstate == 5'b00100)) begin
led1_b <= (!led1_b);
i_mode <= 0;
if (((i_mode == 0) && o_done)) begin
$write("result len");
$write(" ");
$write("%h", o_oprogress);
$write("\n");
resultlen <= o_oprogress;
tbi <= 0;
i_raddr <= 0;
i_mode <= 3;
wtick <= 1'b1;
tstate <= 5'b00101;
end
end
else if ((tstate == 5'b00101)) begin
led1_b <= 0;
o_led <= tbi;
// Note that the read can also be pipelined in a tight loop
// without the WTICK delay, but this will not work with
// SLOWDOWN > 1
if (wtick) begin
wtick <= 1'b0;
end
else if ((tbi < 498)) begin
led2_r <= (!led2_r);
case (tbi)
0: ud1 = 32;
1: ud1 = 32;
2: ud1 = 32;
3: ud1 = 72;
4: ud1 = 101;
5: ud1 = 108;
6: ud1 = 108;
7: ud1 = 111;
8: ud1 = 32;
9: ud1 = 87;
10: ud1 = 111;
11: ud1 = 114;
12: ud1 = 108;
13: ud1 = 100;
14: ud1 = 33;
15: ud1 = 32;
16: ud1 = 48;
17: ud1 = 32;
18: ud1 = 32;
19: ud1 = 32;
20: ud1 = 32;
21: ud1 = 32;
22: ud1 = 32;
23: ud1 = 32;
24: ud1 = 32;
25: ud1 = 32;
26: ud1 = 72;
27: ud1 = 101;
28: ud1 = 108;
29: ud1 = 108;
30: ud1 = 111;
31: ud1 = 32;
32: ud1 = 87;
33: ud1 = 111;
34: ud1 = 114;
35: ud1 = 108;
36: ud1 = 100;
37: ud1 = 33;
38: ud1 = 32;
39: ud1 = 49;
40: ud1 = 32;
41: ud1 = 32;
42: ud1 = 32;
43: ud1 = 32;
44: ud1 = 32;
45: ud1 = 32;
46: ud1 = 32;
47: ud1 = 32;
48: ud1 = 32;
49: ud1 = 72;
50: ud1 = 101;
51: ud1 = 108;
52: ud1 = 108;
53: ud1 = 111;
54: ud1 = 32;
55: ud1 = 87;
56: ud1 = 111;
57: ud1 = 114;
58: ud1 = 108;
59: ud1 = 100;
60: ud1 = 33;
61: ud1 = 32;
62: ud1 = 50;
63: ud1 = 32;
64: ud1 = 32;
65: ud1 = 32;
66: ud1 = 32;
67: ud1 = 32;
68: ud1 = 32;
69: ud1 = 32;
70: ud1 = 32;
71: ud1 = 32;
72: ud1 = 72;
73: ud1 = 101;
74: ud1 = 108;
75: ud1 = 108;
76: ud1 = 111;
77: ud1 = 32;
78: ud1 = 87;
79: ud1 = 111;
80: ud1 = 114;
81: ud1 = 108;
82: ud1 = 100;
83: ud1 = 33;
84: ud1 = 32;
85: ud1 = 51;
86: ud1 = 32;
87: ud1 = 32;
88: ud1 = 32;
89: ud1 = 32;
90: ud1 = 32;
91: ud1 = 32;
92: ud1 = 32;
93: ud1 = 32;
94: ud1 = 32;
95: ud1 = 72;
96: ud1 = 101;
97: ud1 = 108;
98: ud1 = 108;
99: ud1 = 111;
100: ud1 = 32;
101: ud1 = 87;
102: ud1 = 111;
103: ud1 = 114;
104: ud1 = 108;
105: ud1 = 100;
106: ud1 = 33;
107: ud1 = 32;
108: ud1 = 52;
109: ud1 = 32;
110: ud1 = 32;
111: ud1 = 32;
112: ud1 = 32;
113: ud1 = 32;
114: ud1 = 32;
115: ud1 = 32;
116: ud1 = 32;
117: ud1 = 32;
118: ud1 = 72;
119: ud1 = 101;
120: ud1 = 108;
121: ud1 = 108;
122: ud1 = 111;
123: ud1 = 32;
124: ud1 = 87;
125: ud1 = 111;
126: ud1 = 114;
127: ud1 = 108;
128: ud1 = 100;
129: ud1 = 33;
130: ud1 = 32;
131: ud1 = 53;
132: ud1 = 32;
133: ud1 = 32;
134: ud1 = 32;
135: ud1 = 32;
136: ud1 = 32;
137: ud1 = 32;
138: ud1 = 32;
139: ud1 = 32;
140: ud1 = 32;
141: ud1 = 72;
142: ud1 = 101;
143: ud1 = 108;
144: ud1 = 108;
145: ud1 = 111;
146: ud1 = 32;
147: ud1 = 87;
148: ud1 = 111;
149: ud1 = 114;
150: ud1 = 108;
151: ud1 = 100;
152: ud1 = 33;
153: ud1 = 32;
154: ud1 = 54;
155: ud1 = 32;
156: ud1 = 32;
157: ud1 = 32;
158: ud1 = 32;
159: ud1 = 32;
160: ud1 = 32;
161: ud1 = 32;
162: ud1 = 32;
163: ud1 = 32;
164: ud1 = 72;
165: ud1 = 101;
166: ud1 = 108;
167: ud1 = 108;
168: ud1 = 111;
169: ud1 = 32;
170: ud1 = 87;
171: ud1 = 111;
172: ud1 = 114;
173: ud1 = 108;
174: ud1 = 100;
175: ud1 = 33;
176: ud1 = 32;
177: ud1 = 55;
178: ud1 = 32;
179: ud1 = 32;
180: ud1 = 32;
181: ud1 = 32;
182: ud1 = 32;
183: ud1 = 32;
184: ud1 = 32;
185: ud1 = 32;
186: ud1 = 32;
187: ud1 = 72;
188: ud1 = 101;
189: ud1 = 108;
190: ud1 = 108;
191: ud1 = 111;
192: ud1 = 32;
193: ud1 = 87;
194: ud1 = 111;
195: ud1 = 114;
196: ud1 = 108;
197: ud1 = 100;
198: ud1 = 33;
199: ud1 = 32;
200: ud1 = 56;
201: ud1 = 32;
202: ud1 = 32;
203: ud1 = 32;
204: ud1 = 32;
205: ud1 = 32;
206: ud1 = 32;
207: ud1 = 32;
208: ud1 = 32;
209: ud1 = 32;
210: ud1 = 72;
211: ud1 = 101;
212: ud1 = 108;
213: ud1 = 108;
214: ud1 = 111;
215: ud1 = 32;
216: ud1 = 87;
217: ud1 = 111;
218: ud1 = 114;
219: ud1 = 108;
220: ud1 = 100;
221: ud1 = 33;
222: ud1 = 32;
223: ud1 = 57;
224: ud1 = 32;
225: ud1 = 32;
226: ud1 = 32;
227: ud1 = 32;
228: ud1 = 32;
229: ud1 = 32;
230: ud1 = 32;
231: ud1 = 32;
232: ud1 = 32;
233: ud1 = 72;
234: ud1 = 101;
235: ud1 = 108;
236: ud1 = 108;
237: ud1 = 111;
238: ud1 = 32;
239: ud1 = 87;
240: ud1 = 111;
241: ud1 = 114;
242: ud1 = 108;
243: ud1 = 100;
244: ud1 = 33;
245: ud1 = 32;
246: ud1 = 49;
247: ud1 = 48;
248: ud1 = 32;
249: ud1 = 32;
250: ud1 = 32;
251: ud1 = 32;
252: ud1 = 32;
253: ud1 = 32;
254: ud1 = 32;
255: ud1 = 32;
256: ud1 = 32;
257: ud1 = 72;
258: ud1 = 101;
259: ud1 = 108;
260: ud1 = 108;
261: ud1 = 111;
262: ud1 = 32;
263: ud1 = 87;
264: ud1 = 111;
265: ud1 = 114;
266: ud1 = 108;
267: ud1 = 100;
268: ud1 = 33;
269: ud1 = 32;
270: ud1 = 49;
271: ud1 = 49;
272: ud1 = 32;
273: ud1 = 32;
274: ud1 = 32;
275: ud1 = 32;
276: ud1 = 32;
277: ud1 = 32;
278: ud1 = 32;
279: ud1 = 32;
280: ud1 = 32;
281: ud1 = 72;
282: ud1 = 101;
283: ud1 = 108;
284: ud1 = 108;
285: ud1 = 111;
286: ud1 = 32;
287: ud1 = 87;
288: ud1 = 111;
289: ud1 = 114;
290: ud1 = 108;
291: ud1 = 100;
292: ud1 = 33;
293: ud1 = 32;
294: ud1 = 49;
295: ud1 = 50;
296: ud1 = 32;
297: ud1 = 32;
298: ud1 = 32;
299: ud1 = 32;
300: ud1 = 32;
301: ud1 = 32;
302: ud1 = 32;
303: ud1 = 32;
304: ud1 = 32;
305: ud1 = 72;
306: ud1 = 101;
307: ud1 = 108;
308: ud1 = 108;
309: ud1 = 111;
310: ud1 = 32;
311: ud1 = 87;
312: ud1 = 111;
313: ud1 = 114;
314: ud1 = 108;
315: ud1 = 100;
316: ud1 = 33;
317: ud1 = 32;
318: ud1 = 49;
319: ud1 = 51;
320: ud1 = 32;
321: ud1 = 32;
322: ud1 = 32;
323: ud1 = 32;
324: ud1 = 32;
325: ud1 = 32;
326: ud1 = 32;
327: ud1 = 32;
328: ud1 = 32;
329: ud1 = 72;
330: ud1 = 101;
331: ud1 = 108;
332: ud1 = 108;
333: ud1 = 111;
334: ud1 = 32;
335: ud1 = 87;
336: ud1 = 111;
337: ud1 = 114;
338: ud1 = 108;
339: ud1 = 100;
340: ud1 = 33;
341: ud1 = 32;
342: ud1 = 49;
343: ud1 = 52;
344: ud1 = 32;
345: ud1 = 32;
346: ud1 = 32;
347: ud1 = 32;
348: ud1 = 32;
349: ud1 = 32;
350: ud1 = 32;
351: ud1 = 32;
352: ud1 = 32;
353: ud1 = 72;
354: ud1 = 101;
355: ud1 = 108;
356: ud1 = 108;
357: ud1 = 111;
358: ud1 = 32;
359: ud1 = 87;
360: ud1 = 111;
361: ud1 = 114;
362: ud1 = 108;
363: ud1 = 100;
364: ud1 = 33;
365: ud1 = 32;
366: ud1 = 49;
367: ud1 = 53;
368: ud1 = 32;
369: ud1 = 32;
370: ud1 = 32;
371: ud1 = 32;
372: ud1 = 32;
373: ud1 = 32;
374: ud1 = 32;
375: ud1 = 32;
376: ud1 = 32;
377: ud1 = 72;
378: ud1 = 101;
379: ud1 = 108;
380: ud1 = 108;
381: ud1 = 111;
382: ud1 = 32;
383: ud1 = 87;
384: ud1 = 111;
385: ud1 = 114;
386: ud1 = 108;
387: ud1 = 100;
388: ud1 = 33;
389: ud1 = 32;
390: ud1 = 49;
391: ud1 = 54;
392: ud1 = 32;
393: ud1 = 32;
394: ud1 = 32;
395: ud1 = 32;
396: ud1 = 32;
397: ud1 = 32;
398: ud1 = 32;
399: ud1 = 32;
400: ud1 = 32;
401: ud1 = 72;
402: ud1 = 101;
403: ud1 = 108;
404: ud1 = 108;
405: ud1 = 111;
406: ud1 = 32;
407: ud1 = 87;
408: ud1 = 111;
409: ud1 = 114;
410: ud1 = 108;
411: ud1 = 100;
412: ud1 = 33;
413: ud1 = 32;
414: ud1 = 49;
415: ud1 = 55;
416: ud1 = 32;
417: ud1 = 32;
418: ud1 = 32;
419: ud1 = 32;
420: ud1 = 32;
421: ud1 = 32;
422: ud1 = 32;
423: ud1 = 32;
424: ud1 = 32;
425: ud1 = 72;
426: ud1 = 101;
427: ud1 = 108;
428: ud1 = 108;
429: ud1 = 111;
430: ud1 = 32;
431: ud1 = 87;
432: ud1 = 111;
433: ud1 = 114;
434: ud1 = 108;
435: ud1 = 100;
436: ud1 = 33;
437: ud1 = 32;
438: ud1 = 49;
439: ud1 = 56;
440: ud1 = 32;
441: ud1 = 32;
442: ud1 = 32;
443: ud1 = 32;
444: ud1 = 32;
445: ud1 = 32;
446: ud1 = 32;
447: ud1 = 32;
448: ud1 = 32;
449: ud1 = 72;
450: ud1 = 101;
451: ud1 = 108;
452: ud1 = 108;
453: ud1 = 111;
454: ud1 = 32;
455: ud1 = 87;
456: ud1 = 111;
457: ud1 = 114;
458: ud1 = 108;
459: ud1 = 100;
460: ud1 = 33;
461: ud1 = 32;
462: ud1 = 49;
463: ud1 = 57;
464: ud1 = 32;
465: ud1 = 32;
466: ud1 = 32;
467: ud1 = 32;
468: ud1 = 32;
469: ud1 = 32;
470: ud1 = 32;
471: ud1 = 32;
472: ud1 = 32;
473: ud1 = 72;
474: ud1 = 101;
475: ud1 = 108;
476: ud1 = 108;
477: ud1 = 111;
478: ud1 = 32;
479: ud1 = 87;
480: ud1 = 111;
481: ud1 = 114;
482: ud1 = 108;
483: ud1 = 100;
484: ud1 = 33;
485: ud1 = 32;
486: ud1 = 50;
487: ud1 = 48;
488: ud1 = 32;
489: ud1 = 32;
490: ud1 = 32;
491: ud1 = 32;
492: ud1 = 32;
493: ud1 = 32;
494: ud1 = 32;
495: ud1 = 32;
496: ud1 = 32;
default: ud1 = 72;
endcase
if (($signed({1'b0, o_byte}) != ud1)) begin
i_mode <= 0;
$write("FAIL");
$write(" ");
$write("%0d", 498);
$write(" ");
$write("%h", tbi);
$write(" ");
$write("%h", o_byte);
$write(" ");
$write("%0d", ud1);
$write("\n");
tstate <= 5'b10000;
end
else begin
// pass
end
i_raddr <= (tbi + 1);
tbi <= (tbi + 1);
wtick <= 1'b1;
end
else begin
$write("%0d", 498);
$write("\n");
$write("DECOMPRESS test OK!, pausing");
$write(" ");
$write("%h", tbi);
$write("\n");
i_mode <= 0;
tbi <= 0;
if ((!1'b1)) begin
tstate <= 5'b01111;
end
else begin
tstate <= 5'b00110;
end
resume <= 1;
end
end
else if ((tstate == 5'b00110)) begin
led2_r <= 0;
if ((resume == 0)) begin
$write("--------------COMPRESS-------------");
$write("\n");
tbi <= 0;
led0_g <= 0;
tstate <= 5'b00111;
end
else begin
led2_r <= (!led2_r);
resume <= (resume + 1);
end
end
else if ((tstate == 5'b00111)) begin
o_led <= tbi;
if ((tbi < 498)) begin
led2_r <= 0;
led1_b <= (!led1_b);
i_mode <= 2;
case (tbi)
0: i_data <= 32;
1: i_data <= 32;
2: i_data <= 32;
3: i_data <= 72;
4: i_data <= 101;
5: i_data <= 108;
6: i_data <= 108;
7: i_data <= 111;
8: i_data <= 32;
9: i_data <= 87;
10: i_data <= 111;
11: i_data <= 114;
12: i_data <= 108;
13: i_data <= 100;
14: i_data <= 33;
15: i_data <= 32;
16: i_data <= 48;
17: i_data <= 32;
18: i_data <= 32;
19: i_data <= 32;
20: i_data <= 32;
21: i_data <= 32;
22: i_data <= 32;
23: i_data <= 32;
24: i_data <= 32;
25: i_data <= 32;
26: i_data <= 72;
27: i_data <= 101;
28: i_data <= 108;
29: i_data <= 108;
30: i_data <= 111;
31: i_data <= 32;
32: i_data <= 87;
33: i_data <= 111;
34: i_data <= 114;
35: i_data <= 108;
36: i_data <= 100;
37: i_data <= 33;
38: i_data <= 32;
39: i_data <= 49;
40: i_data <= 32;
41: i_data <= 32;
42: i_data <= 32;
43: i_data <= 32;
44: i_data <= 32;
45: i_data <= 32;
46: i_data <= 32;
47: i_data <= 32;
48: i_data <= 32;
49: i_data <= 72;
50: i_data <= 101;
51: i_data <= 108;
52: i_data <= 108;
53: i_data <= 111;
54: i_data <= 32;
55: i_data <= 87;
56: i_data <= 111;
57: i_data <= 114;
58: i_data <= 108;
59: i_data <= 100;
60: i_data <= 33;
61: i_data <= 32;
62: i_data <= 50;
63: i_data <= 32;
64: i_data <= 32;
65: i_data <= 32;
66: i_data <= 32;
67: i_data <= 32;
68: i_data <= 32;
69: i_data <= 32;
70: i_data <= 32;
71: i_data <= 32;
72: i_data <= 72;
73: i_data <= 101;
74: i_data <= 108;
75: i_data <= 108;
76: i_data <= 111;
77: i_data <= 32;
78: i_data <= 87;
79: i_data <= 111;
80: i_data <= 114;
81: i_data <= 108;
82: i_data <= 100;
83: i_data <= 33;
84: i_data <= 32;
85: i_data <= 51;
86: i_data <= 32;
87: i_data <= 32;
88: i_data <= 32;
89: i_data <= 32;
90: i_data <= 32;
91: i_data <= 32;
92: i_data <= 32;
93: i_data <= 32;
94: i_data <= 32;
95: i_data <= 72;
96: i_data <= 101;
97: i_data <= 108;
98: i_data <= 108;
99: i_data <= 111;
100: i_data <= 32;
101: i_data <= 87;
102: i_data <= 111;
103: i_data <= 114;
104: i_data <= 108;
105: i_data <= 100;
106: i_data <= 33;
107: i_data <= 32;
108: i_data <= 52;
109: i_data <= 32;
110: i_data <= 32;
111: i_data <= 32;
112: i_data <= 32;
113: i_data <= 32;
114: i_data <= 32;
115: i_data <= 32;
116: i_data <= 32;
117: i_data <= 32;
118: i_data <= 72;
119: i_data <= 101;
120: i_data <= 108;
121: i_data <= 108;
122: i_data <= 111;
123: i_data <= 32;
124: i_data <= 87;
125: i_data <= 111;
126: i_data <= 114;
127: i_data <= 108;
128: i_data <= 100;
129: i_data <= 33;
130: i_data <= 32;
131: i_data <= 53;
132: i_data <= 32;
133: i_data <= 32;
134: i_data <= 32;
135: i_data <= 32;
136: i_data <= 32;
137: i_data <= 32;
138: i_data <= 32;
139: i_data <= 32;
140: i_data <= 32;
141: i_data <= 72;
142: i_data <= 101;
143: i_data <= 108;
144: i_data <= 108;
145: i_data <= 111;
146: i_data <= 32;
147: i_data <= 87;
148: i_data <= 111;
149: i_data <= 114;
150: i_data <= 108;
151: i_data <= 100;
152: i_data <= 33;
153: i_data <= 32;
154: i_data <= 54;
155: i_data <= 32;
156: i_data <= 32;
157: i_data <= 32;
158: i_data <= 32;
159: i_data <= 32;
160: i_data <= 32;
161: i_data <= 32;
162: i_data <= 32;
163: i_data <= 32;
164: i_data <= 72;
165: i_data <= 101;
166: i_data <= 108;
167: i_data <= 108;
168: i_data <= 111;
169: i_data <= 32;
170: i_data <= 87;
171: i_data <= 111;
172: i_data <= 114;
173: i_data <= 108;
174: i_data <= 100;
175: i_data <= 33;
176: i_data <= 32;
177: i_data <= 55;
178: i_data <= 32;
179: i_data <= 32;
180: i_data <= 32;
181: i_data <= 32;
182: i_data <= 32;
183: i_data <= 32;
184: i_data <= 32;
185: i_data <= 32;
186: i_data <= 32;
187: i_data <= 72;
188: i_data <= 101;
189: i_data <= 108;
190: i_data <= 108;
191: i_data <= 111;
192: i_data <= 32;
193: i_data <= 87;
194: i_data <= 111;
195: i_data <= 114;
196: i_data <= 108;
197: i_data <= 100;
198: i_data <= 33;
199: i_data <= 32;
200: i_data <= 56;
201: i_data <= 32;
202: i_data <= 32;
203: i_data <= 32;
204: i_data <= 32;
205: i_data <= 32;
206: i_data <= 32;
207: i_data <= 32;
208: i_data <= 32;
209: i_data <= 32;
210: i_data <= 72;
211: i_data <= 101;
212: i_data <= 108;
213: i_data <= 108;
214: i_data <= 111;
215: i_data <= 32;
216: i_data <= 87;
217: i_data <= 111;
218: i_data <= 114;
219: i_data <= 108;
220: i_data <= 100;
221: i_data <= 33;
222: i_data <= 32;
223: i_data <= 57;
224: i_data <= 32;
225: i_data <= 32;
226: i_data <= 32;
227: i_data <= 32;
228: i_data <= 32;
229: i_data <= 32;
230: i_data <= 32;
231: i_data <= 32;
232: i_data <= 32;
233: i_data <= 72;
234: i_data <= 101;
235: i_data <= 108;
236: i_data <= 108;
237: i_data <= 111;
238: i_data <= 32;
239: i_data <= 87;
240: i_data <= 111;
241: i_data <= 114;
242: i_data <= 108;
243: i_data <= 100;
244: i_data <= 33;
245: i_data <= 32;
246: i_data <= 49;
247: i_data <= 48;
248: i_data <= 32;
249: i_data <= 32;
250: i_data <= 32;
251: i_data <= 32;
252: i_data <= 32;
253: i_data <= 32;
254: i_data <= 32;
255: i_data <= 32;
256: i_data <= 32;
257: i_data <= 72;
258: i_data <= 101;
259: i_data <= 108;
260: i_data <= 108;
261: i_data <= 111;
262: i_data <= 32;
263: i_data <= 87;
264: i_data <= 111;
265: i_data <= 114;
266: i_data <= 108;
267: i_data <= 100;
268: i_data <= 33;
269: i_data <= 32;
270: i_data <= 49;
271: i_data <= 49;
272: i_data <= 32;
273: i_data <= 32;
274: i_data <= 32;
275: i_data <= 32;
276: i_data <= 32;
277: i_data <= 32;
278: i_data <= 32;
279: i_data <= 32;
280: i_data <= 32;
281: i_data <= 72;
282: i_data <= 101;
283: i_data <= 108;
284: i_data <= 108;
285: i_data <= 111;
286: i_data <= 32;
287: i_data <= 87;
288: i_data <= 111;
289: i_data <= 114;
290: i_data <= 108;
291: i_data <= 100;
292: i_data <= 33;
293: i_data <= 32;
294: i_data <= 49;
295: i_data <= 50;
296: i_data <= 32;
297: i_data <= 32;
298: i_data <= 32;
299: i_data <= 32;
300: i_data <= 32;
301: i_data <= 32;
302: i_data <= 32;
303: i_data <= 32;
304: i_data <= 32;
305: i_data <= 72;
306: i_data <= 101;
307: i_data <= 108;
308: i_data <= 108;
309: i_data <= 111;
310: i_data <= 32;
311: i_data <= 87;
312: i_data <= 111;
313: i_data <= 114;
314: i_data <= 108;
315: i_data <= 100;
316: i_data <= 33;
317: i_data <= 32;
318: i_data <= 49;
319: i_data <= 51;
320: i_data <= 32;
321: i_data <= 32;
322: i_data <= 32;
323: i_data <= 32;
324: i_data <= 32;
325: i_data <= 32;
326: i_data <= 32;
327: i_data <= 32;
328: i_data <= 32;
329: i_data <= 72;
330: i_data <= 101;
331: i_data <= 108;
332: i_data <= 108;
333: i_data <= 111;
334: i_data <= 32;
335: i_data <= 87;
336: i_data <= 111;
337: i_data <= 114;
338: i_data <= 108;
339: i_data <= 100;
340: i_data <= 33;
341: i_data <= 32;
342: i_data <= 49;
343: i_data <= 52;
344: i_data <= 32;
345: i_data <= 32;
346: i_data <= 32;
347: i_data <= 32;
348: i_data <= 32;
349: i_data <= 32;
350: i_data <= 32;
351: i_data <= 32;
352: i_data <= 32;
353: i_data <= 72;
354: i_data <= 101;
355: i_data <= 108;
356: i_data <= 108;
357: i_data <= 111;
358: i_data <= 32;
359: i_data <= 87;
360: i_data <= 111;
361: i_data <= 114;
362: i_data <= 108;
363: i_data <= 100;
364: i_data <= 33;
365: i_data <= 32;
366: i_data <= 49;
367: i_data <= 53;
368: i_data <= 32;
369: i_data <= 32;
370: i_data <= 32;
371: i_data <= 32;
372: i_data <= 32;
373: i_data <= 32;
374: i_data <= 32;
375: i_data <= 32;
376: i_data <= 32;
377: i_data <= 72;
378: i_data <= 101;
379: i_data <= 108;
380: i_data <= 108;
381: i_data <= 111;
382: i_data <= 32;
383: i_data <= 87;
384: i_data <= 111;
385: i_data <= 114;
386: i_data <= 108;
387: i_data <= 100;
388: i_data <= 33;
389: i_data <= 32;
390: i_data <= 49;
391: i_data <= 54;
392: i_data <= 32;
393: i_data <= 32;
394: i_data <= 32;
395: i_data <= 32;
396: i_data <= 32;
397: i_data <= 32;
398: i_data <= 32;
399: i_data <= 32;
400: i_data <= 32;
401: i_data <= 72;
402: i_data <= 101;
403: i_data <= 108;
404: i_data <= 108;
405: i_data <= 111;
406: i_data <= 32;
407: i_data <= 87;
408: i_data <= 111;
409: i_data <= 114;
410: i_data <= 108;
411: i_data <= 100;
412: i_data <= 33;
413: i_data <= 32;
414: i_data <= 49;
415: i_data <= 55;
416: i_data <= 32;
417: i_data <= 32;
418: i_data <= 32;
419: i_data <= 32;
420: i_data <= 32;
421: i_data <= 32;
422: i_data <= 32;
423: i_data <= 32;
424: i_data <= 32;
425: i_data <= 72;
426: i_data <= 101;
427: i_data <= 108;
428: i_data <= 108;
429: i_data <= 111;
430: i_data <= 32;
431: i_data <= 87;
432: i_data <= 111;
433: i_data <= 114;
434: i_data <= 108;
435: i_data <= 100;
436: i_data <= 33;
437: i_data <= 32;
438: i_data <= 49;
439: i_data <= 56;
440: i_data <= 32;
441: i_data <= 32;
442: i_data <= 32;
443: i_data <= 32;
444: i_data <= 32;
445: i_data <= 32;
446: i_data <= 32;
447: i_data <= 32;
448: i_data <= 32;
449: i_data <= 72;
450: i_data <= 101;
451: i_data <= 108;
452: i_data <= 108;
453: i_data <= 111;
454: i_data <= 32;
455: i_data <= 87;
456: i_data <= 111;
457: i_data <= 114;
458: i_data <= 108;
459: i_data <= 100;
460: i_data <= 33;
461: i_data <= 32;
462: i_data <= 49;
463: i_data <= 57;
464: i_data <= 32;
465: i_data <= 32;
466: i_data <= 32;
467: i_data <= 32;
468: i_data <= 32;
469: i_data <= 32;
470: i_data <= 32;
471: i_data <= 32;
472: i_data <= 32;
473: i_data <= 72;
474: i_data <= 101;
475: i_data <= 108;
476: i_data <= 108;
477: i_data <= 111;
478: i_data <= 32;
479: i_data <= 87;
480: i_data <= 111;
481: i_data <= 114;
482: i_data <= 108;
483: i_data <= 100;
484: i_data <= 33;
485: i_data <= 32;
486: i_data <= 50;
487: i_data <= 48;
488: i_data <= 32;
489: i_data <= 32;
490: i_data <= 32;
491: i_data <= 32;
492: i_data <= 32;
493: i_data <= 32;
494: i_data <= 32;
495: i_data <= 32;
496: i_data <= 32;
default: i_data <= 72;
endcase
i_waddr <= tbi;
tbi <= (tbi + 1);
end
else begin
$write("wrote bytes to compress");
$write(" ");
$write("%h", tbi);
$write("\n");
i_mode <= 0;
tstate <= 5'b01000;
end
end
else if ((tstate == 5'b01000)) begin
i_mode <= 4;
tstate <= 5'b01001;
end
else if ((tstate == 5'b01001)) begin
led2_r <= (!led2_r);
if ((i_mode == 4)) begin
$write("WAIT COMPRESS");
$write("\n");
i_mode <= 0;
led1_b <= 0;
end
else if (o_done) begin
$write("result len");
$write(" ");
$write("%h", o_oprogress);
$write("\n");
resultlen <= o_oprogress;
tbi <= 0;
i_raddr <= 0;
i_mode <= 3;
if ((!1'b0)) begin
if ((o_oprogress == 38)) begin
tstate <= 5'b01111;
resume <= 1;
$write("compress OK!");
$write("\n");
end
else begin
$write("compress len FAILED");
$write(" ");
$write("%h", o_oprogress);
$write("\n");
tstate <= 5'b10000;
end
if ((22 <= 4)) begin
end
end
else begin
tstate <= 5'b01010;
wtick <= 1'b1;
end
end
end
else if ((tstate == 5'b01010)) begin
led2_r <= 0;
o_led <= tbi;
if (wtick) begin
if ((tbi > 0)) begin
i_mode <= 2;
i_data <= copy;
i_waddr <= (tbi - 1);
end
wtick <= 1'b0;
tbi <= (tbi + 1);
end
else if ((tbi < resultlen)) begin
i_mode <= 3;
led1_b <= (!led1_b);
i_raddr <= tbi;
copy <= o_byte;
wtick <= 1'b1;
end
else begin
$write("Compress output bytes copied to input");
$write(" ");
$write("%h", resultlen);
$write(" ");
$write("%0d", ($signed({1'b0, tbi}) - 1));
$write("\n");
i_mode <= 0;
tbi <= 0;
tstate <= 5'b01100;
end
end
else if ((tstate == 5'b01100)) begin
$write("start decompress of test compression");
$write("\n");
i_mode <= 5;
tstate <= 5'b01101;
end
else if ((tstate == 5'b01101)) begin
led2_r <= 0;
led1_b <= (!led1_b);
i_mode <= 0;
if (((i_mode == 0) && o_done)) begin
$write("DONE DECOMPRESS VERIFY");
$write(" ");
$write("%h", o_oprogress);
$write("\n");
tbi <= 0;
i_raddr <= 0;
i_mode <= 3;
wtick <= 1'b1;
tstate <= 5'b01110;
end
end
else if ((tstate == 5'b01110)) begin
led1_b <= 0;
led2_r <= (!led2_r);
o_led <= tbi;
if (wtick) begin
wtick <= 1'b0;
end
else if ((tbi < 498)) begin
case (tbi)
0: ud2 = 32;
1: ud2 = 32;
2: ud2 = 32;
3: ud2 = 72;
4: ud2 = 101;
5: ud2 = 108;
6: ud2 = 108;
7: ud2 = 111;
8: ud2 = 32;
9: ud2 = 87;
10: ud2 = 111;
11: ud2 = 114;
12: ud2 = 108;
13: ud2 = 100;
14: ud2 = 33;
15: ud2 = 32;
16: ud2 = 48;
17: ud2 = 32;
18: ud2 = 32;
19: ud2 = 32;
20: ud2 = 32;
21: ud2 = 32;
22: ud2 = 32;
23: ud2 = 32;
24: ud2 = 32;
25: ud2 = 32;
26: ud2 = 72;
27: ud2 = 101;
28: ud2 = 108;
29: ud2 = 108;
30: ud2 = 111;
31: ud2 = 32;
32: ud2 = 87;
33: ud2 = 111;
34: ud2 = 114;
35: ud2 = 108;
36: ud2 = 100;
37: ud2 = 33;
38: ud2 = 32;
39: ud2 = 49;
40: ud2 = 32;
41: ud2 = 32;
42: ud2 = 32;
43: ud2 = 32;
44: ud2 = 32;
45: ud2 = 32;
46: ud2 = 32;
47: ud2 = 32;
48: ud2 = 32;
49: ud2 = 72;
50: ud2 = 101;
51: ud2 = 108;
52: ud2 = 108;
53: ud2 = 111;
54: ud2 = 32;
55: ud2 = 87;
56: ud2 = 111;
57: ud2 = 114;
58: ud2 = 108;
59: ud2 = 100;
60: ud2 = 33;
61: ud2 = 32;
62: ud2 = 50;
63: ud2 = 32;
64: ud2 = 32;
65: ud2 = 32;
66: ud2 = 32;
67: ud2 = 32;
68: ud2 = 32;
69: ud2 = 32;
70: ud2 = 32;
71: ud2 = 32;
72: ud2 = 72;
73: ud2 = 101;
74: ud2 = 108;
75: ud2 = 108;
76: ud2 = 111;
77: ud2 = 32;
78: ud2 = 87;
79: ud2 = 111;
80: ud2 = 114;
81: ud2 = 108;
82: ud2 = 100;
83: ud2 = 33;
84: ud2 = 32;
85: ud2 = 51;
86: ud2 = 32;
87: ud2 = 32;
88: ud2 = 32;
89: ud2 = 32;
90: ud2 = 32;
91: ud2 = 32;
92: ud2 = 32;
93: ud2 = 32;
94: ud2 = 32;
95: ud2 = 72;
96: ud2 = 101;
97: ud2 = 108;
98: ud2 = 108;
99: ud2 = 111;
100: ud2 = 32;
101: ud2 = 87;
102: ud2 = 111;
103: ud2 = 114;
104: ud2 = 108;
105: ud2 = 100;
106: ud2 = 33;
107: ud2 = 32;
108: ud2 = 52;
109: ud2 = 32;
110: ud2 = 32;
111: ud2 = 32;
112: ud2 = 32;
113: ud2 = 32;
114: ud2 = 32;
115: ud2 = 32;
116: ud2 = 32;
117: ud2 = 32;
118: ud2 = 72;
119: ud2 = 101;
120: ud2 = 108;
121: ud2 = 108;
122: ud2 = 111;
123: ud2 = 32;
124: ud2 = 87;
125: ud2 = 111;
126: ud2 = 114;
127: ud2 = 108;
128: ud2 = 100;
129: ud2 = 33;
130: ud2 = 32;
131: ud2 = 53;
132: ud2 = 32;
133: ud2 = 32;
134: ud2 = 32;
135: ud2 = 32;
136: ud2 = 32;
137: ud2 = 32;
138: ud2 = 32;
139: ud2 = 32;
140: ud2 = 32;
141: ud2 = 72;
142: ud2 = 101;
143: ud2 = 108;
144: ud2 = 108;
145: ud2 = 111;
146: ud2 = 32;
147: ud2 = 87;
148: ud2 = 111;
149: ud2 = 114;
150: ud2 = 108;
151: ud2 = 100;
152: ud2 = 33;
153: ud2 = 32;
154: ud2 = 54;
155: ud2 = 32;
156: ud2 = 32;
157: ud2 = 32;
158: ud2 = 32;
159: ud2 = 32;
160: ud2 = 32;
161: ud2 = 32;
162: ud2 = 32;
163: ud2 = 32;
164: ud2 = 72;
165: ud2 = 101;
166: ud2 = 108;
167: ud2 = 108;
168: ud2 = 111;
169: ud2 = 32;
170: ud2 = 87;
171: ud2 = 111;
172: ud2 = 114;
173: ud2 = 108;
174: ud2 = 100;
175: ud2 = 33;
176: ud2 = 32;
177: ud2 = 55;
178: ud2 = 32;
179: ud2 = 32;
180: ud2 = 32;
181: ud2 = 32;
182: ud2 = 32;
183: ud2 = 32;
184: ud2 = 32;
185: ud2 = 32;
186: ud2 = 32;
187: ud2 = 72;
188: ud2 = 101;
189: ud2 = 108;
190: ud2 = 108;
191: ud2 = 111;
192: ud2 = 32;
193: ud2 = 87;
194: ud2 = 111;
195: ud2 = 114;
196: ud2 = 108;
197: ud2 = 100;
198: ud2 = 33;
199: ud2 = 32;
200: ud2 = 56;
201: ud2 = 32;
202: ud2 = 32;
203: ud2 = 32;
204: ud2 = 32;
205: ud2 = 32;
206: ud2 = 32;
207: ud2 = 32;
208: ud2 = 32;
209: ud2 = 32;
210: ud2 = 72;
211: ud2 = 101;
212: ud2 = 108;
213: ud2 = 108;
214: ud2 = 111;
215: ud2 = 32;
216: ud2 = 87;
217: ud2 = 111;
218: ud2 = 114;
219: ud2 = 108;
220: ud2 = 100;
221: ud2 = 33;
222: ud2 = 32;
223: ud2 = 57;
224: ud2 = 32;
225: ud2 = 32;
226: ud2 = 32;
227: ud2 = 32;
228: ud2 = 32;
229: ud2 = 32;
230: ud2 = 32;
231: ud2 = 32;
232: ud2 = 32;
233: ud2 = 72;
234: ud2 = 101;
235: ud2 = 108;
236: ud2 = 108;
237: ud2 = 111;
238: ud2 = 32;
239: ud2 = 87;
240: ud2 = 111;
241: ud2 = 114;
242: ud2 = 108;
243: ud2 = 100;
244: ud2 = 33;
245: ud2 = 32;
246: ud2 = 49;
247: ud2 = 48;
248: ud2 = 32;
249: ud2 = 32;
250: ud2 = 32;
251: ud2 = 32;
252: ud2 = 32;
253: ud2 = 32;
254: ud2 = 32;
255: ud2 = 32;
256: ud2 = 32;
257: ud2 = 72;
258: ud2 = 101;
259: ud2 = 108;
260: ud2 = 108;
261: ud2 = 111;
262: ud2 = 32;
263: ud2 = 87;
264: ud2 = 111;
265: ud2 = 114;
266: ud2 = 108;
267: ud2 = 100;
268: ud2 = 33;
269: ud2 = 32;
270: ud2 = 49;
271: ud2 = 49;
272: ud2 = 32;
273: ud2 = 32;
274: ud2 = 32;
275: ud2 = 32;
276: ud2 = 32;
277: ud2 = 32;
278: ud2 = 32;
279: ud2 = 32;
280: ud2 = 32;
281: ud2 = 72;
282: ud2 = 101;
283: ud2 = 108;
284: ud2 = 108;
285: ud2 = 111;
286: ud2 = 32;
287: ud2 = 87;
288: ud2 = 111;
289: ud2 = 114;
290: ud2 = 108;
291: ud2 = 100;
292: ud2 = 33;
293: ud2 = 32;
294: ud2 = 49;
295: ud2 = 50;
296: ud2 = 32;
297: ud2 = 32;
298: ud2 = 32;
299: ud2 = 32;
300: ud2 = 32;
301: ud2 = 32;
302: ud2 = 32;
303: ud2 = 32;
304: ud2 = 32;
305: ud2 = 72;
306: ud2 = 101;
307: ud2 = 108;
308: ud2 = 108;
309: ud2 = 111;
310: ud2 = 32;
311: ud2 = 87;
312: ud2 = 111;
313: ud2 = 114;
314: ud2 = 108;
315: ud2 = 100;
316: ud2 = 33;
317: ud2 = 32;
318: ud2 = 49;
319: ud2 = 51;
320: ud2 = 32;
321: ud2 = 32;
322: ud2 = 32;
323: ud2 = 32;
324: ud2 = 32;
325: ud2 = 32;
326: ud2 = 32;
327: ud2 = 32;
328: ud2 = 32;
329: ud2 = 72;
330: ud2 = 101;
331: ud2 = 108;
332: ud2 = 108;
333: ud2 = 111;
334: ud2 = 32;
335: ud2 = 87;
336: ud2 = 111;
337: ud2 = 114;
338: ud2 = 108;
339: ud2 = 100;
340: ud2 = 33;
341: ud2 = 32;
342: ud2 = 49;
343: ud2 = 52;
344: ud2 = 32;
345: ud2 = 32;
346: ud2 = 32;
347: ud2 = 32;
348: ud2 = 32;
349: ud2 = 32;
350: ud2 = 32;
351: ud2 = 32;
352: ud2 = 32;
353: ud2 = 72;
354: ud2 = 101;
355: ud2 = 108;
356: ud2 = 108;
357: ud2 = 111;
358: ud2 = 32;
359: ud2 = 87;
360: ud2 = 111;
361: ud2 = 114;
362: ud2 = 108;
363: ud2 = 100;
364: ud2 = 33;
365: ud2 = 32;
366: ud2 = 49;
367: ud2 = 53;
368: ud2 = 32;
369: ud2 = 32;
370: ud2 = 32;
371: ud2 = 32;
372: ud2 = 32;
373: ud2 = 32;
374: ud2 = 32;
375: ud2 = 32;
376: ud2 = 32;
377: ud2 = 72;
378: ud2 = 101;
379: ud2 = 108;
380: ud2 = 108;
381: ud2 = 111;
382: ud2 = 32;
383: ud2 = 87;
384: ud2 = 111;
385: ud2 = 114;
386: ud2 = 108;
387: ud2 = 100;
388: ud2 = 33;
389: ud2 = 32;
390: ud2 = 49;
391: ud2 = 54;
392: ud2 = 32;
393: ud2 = 32;
394: ud2 = 32;
395: ud2 = 32;
396: ud2 = 32;
397: ud2 = 32;
398: ud2 = 32;
399: ud2 = 32;
400: ud2 = 32;
401: ud2 = 72;
402: ud2 = 101;
403: ud2 = 108;
404: ud2 = 108;
405: ud2 = 111;
406: ud2 = 32;
407: ud2 = 87;
408: ud2 = 111;
409: ud2 = 114;
410: ud2 = 108;
411: ud2 = 100;
412: ud2 = 33;
413: ud2 = 32;
414: ud2 = 49;
415: ud2 = 55;
416: ud2 = 32;
417: ud2 = 32;
418: ud2 = 32;
419: ud2 = 32;
420: ud2 = 32;
421: ud2 = 32;
422: ud2 = 32;
423: ud2 = 32;
424: ud2 = 32;
425: ud2 = 72;
426: ud2 = 101;
427: ud2 = 108;
428: ud2 = 108;
429: ud2 = 111;
430: ud2 = 32;
431: ud2 = 87;
432: ud2 = 111;
433: ud2 = 114;
434: ud2 = 108;
435: ud2 = 100;
436: ud2 = 33;
437: ud2 = 32;
438: ud2 = 49;
439: ud2 = 56;
440: ud2 = 32;
441: ud2 = 32;
442: ud2 = 32;
443: ud2 = 32;
444: ud2 = 32;
445: ud2 = 32;
446: ud2 = 32;
447: ud2 = 32;
448: ud2 = 32;
449: ud2 = 72;
450: ud2 = 101;
451: ud2 = 108;
452: ud2 = 108;
453: ud2 = 111;
454: ud2 = 32;
455: ud2 = 87;
456: ud2 = 111;
457: ud2 = 114;
458: ud2 = 108;
459: ud2 = 100;
460: ud2 = 33;
461: ud2 = 32;
462: ud2 = 49;
463: ud2 = 57;
464: ud2 = 32;
465: ud2 = 32;
466: ud2 = 32;
467: ud2 = 32;
468: ud2 = 32;
469: ud2 = 32;
470: ud2 = 32;
471: ud2 = 32;
472: ud2 = 32;
473: ud2 = 72;
474: ud2 = 101;
475: ud2 = 108;
476: ud2 = 108;
477: ud2 = 111;
478: ud2 = 32;
479: ud2 = 87;
480: ud2 = 111;
481: ud2 = 114;
482: ud2 = 108;
483: ud2 = 100;
484: ud2 = 33;
485: ud2 = 32;
486: ud2 = 50;
487: ud2 = 48;
488: ud2 = 32;
489: ud2 = 32;
490: ud2 = 32;
491: ud2 = 32;
492: ud2 = 32;
493: ud2 = 32;
494: ud2 = 32;
495: ud2 = 32;
496: ud2 = 32;
default: ud2 = 72;
endcase
if (($signed({1'b0, o_byte}) != ud2)) begin
tstate <= 5'b00000;
i_mode <= 0;
$write("FAIL");
$write(" ");
$write("%0d", 498);
$write(" ");
$write("%h", tbi);
$write(" ");
$write("%0d", ud2);
$write(" ");
$write("%h", o_byte);
$write("\n");
tstate <= 5'b10000;
end
tbi <= (tbi + 1);
i_raddr <= (tbi + 1);
wtick <= 1'b1;
end
else begin
$write("%0d", 498);
$write("\n");
$write("ALL OK!");
$write(" ");
$write("%h", tbi);
$write("\n");
led2_r <= 0;
i_mode <= 0;
resume <= 1;
//
tstate <= 5'b01111;
end
end
else if ((tstate == 5'b01111)) begin
if ((22 <= 4)) begin
end
if ((resume == 0)) begin
$write("--------------RESET-------------");
$write("\n");
o_led <= (o_led + 1);
tstate <= 5'b00000;
end
else begin
led0_g <= (!led0_g);
resume <= (resume + 1);
end
end
// if now() > 50000:
// raise StopSimulation()
end
endmodule