// 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