From ce041d788b949cf393b2e45f804e2e9dd7abad3a Mon Sep 17 00:00:00 2001 From: Roman Dobrodii Date: Thu, 3 Aug 2023 15:03:14 +0200 Subject: [PATCH 1/7] modules/dbe: add lz4 encoder and decoder Example implementation of Lz4 - a dictionary-based data compression algorithm. Signed-off-by: Roman Dobrodii --- xls/modules/dbe/BUILD | 155 ++++ xls/modules/dbe/common.x | 53 ++ xls/modules/dbe/common_test.x | 171 ++++ xls/modules/dbe/lz4_decoder.x | 588 +++++++++++++ .../lz4_decoder_ram1r1w_rewrites.textproto | 32 + xls/modules/dbe/lz4_encoder.x | 824 ++++++++++++++++++ 6 files changed, 1823 insertions(+) create mode 100644 xls/modules/dbe/BUILD create mode 100644 xls/modules/dbe/common.x create mode 100644 xls/modules/dbe/common_test.x create mode 100644 xls/modules/dbe/lz4_decoder.x create mode 100644 xls/modules/dbe/lz4_decoder_ram1r1w_rewrites.textproto create mode 100644 xls/modules/dbe/lz4_encoder.x diff --git a/xls/modules/dbe/BUILD b/xls/modules/dbe/BUILD new file mode 100644 index 0000000000..682b1a3c2c --- /dev/null +++ b/xls/modules/dbe/BUILD @@ -0,0 +1,155 @@ +# Copyright 2023 The XLS Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Build rules for XLS DBE/LZ4 algorithm implementation. + +load( + "//xls/build_rules:xls_build_defs.bzl", + "xls_dslx_library", + "xls_dslx_ir", + "xls_ir_opt_ir", + "xls_ir_verilog", + "xls_dslx_test", +) + +package( + default_applicable_licenses = ["//:license"], + default_visibility = ["//xls:xls_users"], + licenses = ["notice"], +) + +# --------------------------------------------------------------------------- +# Common +# --------------------------------------------------------------------------- + +xls_dslx_library( + name = "dbe_common_dslx", + srcs = [ + "common.x", + "common_test.x" + ], +) + +# --------------------------------------------------------------------------- +# LZ4 decoder +# --------------------------------------------------------------------------- + +xls_dslx_library( + name = "dbe_lz4_decoder_dslx", + srcs = [ + "lz4_decoder.x" + ], + deps = [ + ":dbe_common_dslx", + "//xls/examples:ram_dslx", + ], +) + +xls_dslx_test( + name = "dbe_lz4_decoder_dslx_test", + dslx_test_args = { + "compare": "none", + }, + library = "dbe_lz4_decoder_dslx", +) + +xls_dslx_ir( + name = "dbe_lz4_decoder_ir", + dslx_top = "decoder", + library = "dbe_lz4_decoder_dslx", + ir_file = "dbe_lz4_decoder_ir.ir", +) + +xls_ir_opt_ir( + name = "dbe_lz4_decoder_opt_ir", + src = "dbe_lz4_decoder_ir.ir", + top = "__lz4_decoder__decoder__decoder_base_0__16_16_8_next", + ram_rewrites = [ + ":lz4_decoder_ram1r1w_rewrites.textproto", + ], +) + +xls_ir_verilog( + name = "dbe_lz4_decoder_verilog", + src = "dbe_lz4_decoder_opt_ir.opt.ir", + verilog_file = "dbe_lz4_decoder.v", + codegen_args = { + "module_name": "dbe_lz4_decoder", + "delay_model": "unit", + "pipeline_stages": "3", + "reset": "rst", + "use_system_verilog": "false", + "streaming_channel_data_suffix": "_data", + "ram_configurations": "ram_hb:1R1W:{rd_req}:{rd_resp}:{wr_req}:{wr_comp}".format( + rd_req = "ram_hb_read_req", + rd_resp = "ram_hb_read_resp", + wr_req = "ram_hb_write_req", + wr_comp = "ram_hb_write_completion", + ), + }, +) + +# --------------------------------------------------------------------------- +# LZ4 encoder +# --------------------------------------------------------------------------- + +xls_dslx_library( + name = "dbe_lz4_encoder_dslx", + srcs = [ + "lz4_encoder.x" + ], + deps = [ + ":dbe_common_dslx", + "//xls/examples:ram_dslx", + # decoder is referenced by test code + ":dbe_lz4_decoder_dslx", + ], +) + +xls_dslx_test( + name = "dbe_lz4_encoder_dslx_test", + dslx_test_args = { + "compare": "none", + }, + library = "dbe_lz4_encoder_dslx", +) + +#8K hash specialization +xls_dslx_ir( + name = "dbe_lz4_encoder_8k_ir", + dslx_top = "encoder_8k", + library = "dbe_lz4_encoder_dslx", + ir_file = "dbe_lz4_encoder_8k_ir.ir", +) + +xls_ir_opt_ir( + name = "dbe_lz4_encoder_8k_opt_ir", + src = "dbe_lz4_encoder_8k_ir.ir", + top = "__lz4_encoder__encoder_8k__encoder_base_0__16_3_13_12_13_65536_8192_4_16_8_next", +) + +xls_ir_verilog( + name = "dbe_lz4_encoder_8k_verilog", + src = "dbe_lz4_encoder_8k_opt_ir.opt.ir", + verilog_file = "dbe_lz4_encoder_8k.v", + codegen_args = { + "module_name": "dbe_lz4_encoder", + "delay_model": "unit", + "pipeline_stages": "3", + "worst_case_throughput": "3", + "reset": "rst", + "use_system_verilog": "false", + "streaming_channel_data_suffix": "_data", + }, +) diff --git a/xls/modules/dbe/common.x b/xls/modules/dbe/common.x new file mode 100644 index 0000000000..db464c1ce2 --- /dev/null +++ b/xls/modules/dbe/common.x @@ -0,0 +1,53 @@ +// Copyright 2023 The XLS Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import std + +pub enum Mark : u4 { + // Default initialization value used when marker field is not needed + NONE = 0, + // Signals end of sequence/block + END = 1, + // Requests reset of the processing chain + RESET = 2, + + _ERROR_FIRST = 8, + // Only error marks have values >= __ERROR_FIRST + ERROR_BAD_MARK = 8, + ERROR_INVAL_CP = 9, +} + +pub fn is_error(mark: Mark) -> bool { + (mark as u32) >= (Mark::_ERROR_FIRST as u32) +} + +pub enum TokenKind : u2 { + LITERAL = 0, + COPY_POINTER = 1, + MARK = 2, +} + +pub struct Token { + kind: TokenKind, + literal: uN[SYM_WIDTH], + copy_pointer_offset: uN[PTR_WIDTH], + copy_pointer_count: uN[CNT_WIDTH], + mark: Mark +} + +pub struct PlainData { + is_mark: bool, + data: uN[DATA_WIDTH], // symbol + mark: Mark, // marker code +} diff --git a/xls/modules/dbe/common_test.x b/xls/modules/dbe/common_test.x new file mode 100644 index 0000000000..a391ce2700 --- /dev/null +++ b/xls/modules/dbe/common_test.x @@ -0,0 +1,171 @@ +// Copyright 2023 The XLS Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import xls.modules.dbe.common as dbe + +type TokenKind = dbe::TokenKind; +type Token = dbe::Token; +type PlainData = dbe::PlainData; + +/// +/// This library contains helper processes and functions used by DBE tests +/// + +pub proc data_sender { + data: PlainData[NUM_SYMS]; + o_data: chan> out; + + init { u32:0 } + + config ( + data: PlainData[NUM_SYMS], + o_data: chan> out, + ) { + (data, o_data) + } + + next (tok: token, state: u32) { + let next_idx = state + u32:1; + let is_done = (state >= NUM_SYMS); + + if (!is_done) { + let tosend = data[state]; + trace_fmt!("Sending {}", tosend); + send(tok, o_data, tosend); + next_idx + } else { + state + } + } +} + +pub proc data_validator { + ref_data: PlainData[NUM_SYMS]; + i_data: chan> in; + o_term: chan out; + + init { u32:0 } + + config( + ref_data: PlainData[NUM_SYMS], + i_data: chan> in, + o_term: chan out + ) { + (ref_data, i_data, o_term) + } + + next (tok: token, state: u32) { + // state = [0, NUM_SYMS-1] - expect data + // state >= NUM_SYMS - expect nothing + let next_idx = state + u32:1; + let is_end = (state == NUM_SYMS - u32:1); + let is_done = (state >= NUM_SYMS); + + let (tok, rx) = recv(tok, i_data); + trace_fmt!("Received {}", rx); + + let (fail, next_state) = if is_done { + // Shouldn't get here + (true, state) + } else { + let expect = ref_data[state]; + let fail = if (rx != expect) { + trace_fmt!("MISMATCH! Expected {}, got {}", expect, rx); + true + } else { + false + }; + (fail, next_idx) + }; + + send_if(tok, o_term, fail || is_end, !fail); + + next_state + } +} + +pub proc token_sender< + NUM_TOKS: u32, SYM_WIDTH: u32, PTR_WIDTH: u32, CNT_WIDTH: u32> { + toks: Token[NUM_TOKS]; + o_toks: chan> out; + + init { u32:0 } + + config ( + toks: Token[NUM_TOKS], + o_toks: chan> out, + ) { + (toks, o_toks) + } + + next (tok: token, state: u32) { + let next_idx = state + u32:1; + let is_done = (state >= NUM_TOKS); + + if (!is_done) { + let tosend = toks[state]; + trace_fmt!("Sending {}", tosend); + send(tok, o_toks, tosend); + next_idx + } else { + state + } + } +} + +pub proc token_validator< + NUM_TOKS: u32, SYM_WIDTH: u32, PTR_WIDTH: u32, CNT_WIDTH: u32> { + ref_toks: Token[NUM_TOKS]; + i_token: chan> in; + o_term: chan out; + + init { u32:0 } + + config( + ref_toks: Token[NUM_TOKS], + i_token: chan> in, + o_term: chan out + ) { + (ref_toks, i_token, o_term) + } + + next (tok: token, state: u32) { + // state = [0, NUM_TOKS-1] - expect token + // state >= NUM_TOKS - expect nothing + let next_idx = state + u32:1; + let is_end = (state == NUM_TOKS - u32:1); + let is_done = (state >= NUM_TOKS); + + let (tok, rx) = recv(tok, i_token); + trace_fmt!("Received {}", rx); + + let (fail, next_state) = if is_done { + // Shouldn't get here + (true, state) + } else { + let expect = ref_toks[state]; + let fail = if (rx != expect) { + trace_fmt!("MISMATCH! Expected {}, got {}", expect, rx); + true + } else { + false + }; + (fail, next_idx) + }; + + send_if(tok, o_term, fail || is_end, !fail); + + next_state + } +} diff --git a/xls/modules/dbe/lz4_decoder.x b/xls/modules/dbe/lz4_decoder.x new file mode 100644 index 0000000000..0167485ed6 --- /dev/null +++ b/xls/modules/dbe/lz4_decoder.x @@ -0,0 +1,588 @@ +// Copyright 2023 The XLS Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import std +import xls.examples.ram as ram +import xls.modules.dbe.common as dbe + +type Mark = dbe::Mark; +type TokenKind = dbe::TokenKind; +type Token = dbe::Token; +type PlainData = dbe::PlainData; +type AbstractRamWriteReq = ram::WriteReq; +type AbstractRamWriteResp = ram::WriteResp; +type AbstractRamReadReq = ram::ReadReq; +type AbstractRamReadResp = ram::ReadResp; + + +/// The behavior of our decoder is defined as follows. +/// +/// A. History buffer is a buffer of (1< { + // Write pointer - next location _to be written_ + wr_ptr: uN[PTR_WIDTH], + // Read pointer - next location _to be read_ + rd_ptr: uN[PTR_WIDTH], + // Read counter - remaining number of symbols to be read out from the + // history buffer + rd_ctr_rem: uN[CNT_WIDTH], + // Whether we're in the ERROR state + err: bool, + // Helps to track which cells in HB are written and which ones are not + // (if some COPY_POINTER token points to an unwritten cell, we detect that and + // generate an error, as otherwise that will make decoder output garbage + // data that may leak some stale data from previous blocks) + hb_all_valid: bool, +} + +pub proc decoder_base { + encoded_data: chan> in; + plain_data: chan> out; + + /// History buffer RAM + /// Size: (1<> out; + ram_hb_rd_resp: chan> in; + ram_hb_wr_req: chan> out; + ram_hb_wr_comp: chan in; + + init { + State { + wr_ptr: uN[PTR_WIDTH]:0, + rd_ptr: uN[PTR_WIDTH]:0, + rd_ctr_rem: uN[CNT_WIDTH]:0, + err: false, + hb_all_valid: false, + } + } + + config ( + encoded_data: chan> in, + plain_data: chan> out, + // RAM + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, + ram_hb_wr_req: chan> out, + ram_hb_wr_comp: chan in, + ) { + ( + encoded_data, plain_data, + ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, + ) + } + + next (tok: token, state: State) { + type DecToken = Token; + type DecData = PlainData; + type HbRamReadResp = AbstractRamReadResp; + + let is_copying = state.rd_ctr_rem != uN[CNT_WIDTH]:0; + let do_recv = !is_copying; + + // Receive token + let (tok, rx) = recv_if(tok, encoded_data, do_recv, + zero!()); + + let rx_lt = do_recv && rx.kind == TokenKind::LITERAL; + let rx_cp = do_recv && rx.kind == TokenKind::COPY_POINTER; + let rx_mark = do_recv && rx.kind == TokenKind::MARK; + let rx_end = rx_mark && rx.mark == Mark::END; + let rx_error = rx_mark && dbe::is_error(rx.mark); + let rx_reset = rx_mark && rx.mark == Mark::RESET; + let rx_unexpected_mark = rx_mark && !(rx_end || rx_reset || rx_error); + + // Are we going to output a literal symbol or a symbol from HB? + let emit_sym_lit = rx_lt; + let emit_sym_from_hb = rx_cp || is_copying; + + // Reset, set or increment read pointer + let rd_ptr = if rx_reset { + uN[PTR_WIDTH]:0 + } else if rx_cp { + state.wr_ptr - rx.copy_pointer_offset - uN[PTR_WIDTH]:1 + } else if is_copying { + state.rd_ptr + uN[PTR_WIDTH]:1 + } else { + state.rd_ptr + }; + + // Check whether rd_ptr points to an unwritten HB cell + let rd_ptr_valid = (rd_ptr < state.wr_ptr) || state.hb_all_valid; + + // HB READ - read the symbol from history buffer + let do_hb_read = emit_sym_from_hb && rd_ptr_valid; + let tok = send_if(tok, ram_hb_rd_req, do_hb_read, + ram::ReadWordReq(rd_ptr)); + let (tok, hb_rd) = recv_if(tok, ram_hb_rd_resp, do_hb_read, + zero!()); + + // Generate ERROR_INVAL_CP when we should've read from HB but + // we couldn't because COPY_POINTER points to an invalid location + let err_inval_cp = emit_sym_from_hb && !do_hb_read; + + // Send decoded data symbol or Mark + let zero_data = zero!(); + let (data_valid, data) = if rx_reset { + // Propagate RESET in all states + (true, DecData { + is_mark: true, + mark: Mark::RESET, + ..zero_data + }) + } else if state.err { + // Do not send anything else while in an error state + (false, zero_data) + } else if rx_error || rx_end { + // Propagate ERROR and END tokens + (true, DecData { + is_mark: true, + mark: rx.mark, + ..zero_data + }) + } else if rx_unexpected_mark { + // Generate ERROR_BAD_MARK + (true, DecData { + is_mark: true, + mark: Mark::ERROR_BAD_MARK, + ..zero_data + }) + } else if err_inval_cp { + // Generate ERROR_INVAL_CP + (true, DecData { + is_mark: true, + mark: Mark::ERROR_INVAL_CP, + ..zero_data + }) + } else if emit_sym_lit { + // Replicate symbol from LITERAL token + (true, DecData { + is_mark: false, + data: rx.literal, + ..zero_data + }) + } else if emit_sym_from_hb { + // Replicate symbol from HB + (true, DecData { + is_mark: false, + data: hb_rd.data, + ..zero_data + }) + } else { + (false, zero_data) + }; + let tok = send_if(tok, plain_data, data_valid, data); + + // HB WRITE - write emitted symbol to the history buffer + let do_hb_write = data_valid && !data.is_mark; + let tok = send_if(tok, ram_hb_wr_req, do_hb_write, + ram::WriteWordReq(state.wr_ptr, data.data)); + let (tok, _) = recv_if(tok, ram_hb_wr_comp, do_hb_write, + zero!()); + + // Reset/increment write pointer + let wr_ptr = if rx_reset { + uN[PTR_WIDTH]:0 + } else if do_hb_write { + state.wr_ptr + uN[PTR_WIDTH]:1 + } else { + state.wr_ptr + }; + + // When write pointer wraps over to 0 after the increment, + // that means we've filled the complete HB, so set a corresponding flag + let hb_all_valid = if rx_reset { + false + } else if do_hb_write && wr_ptr == uN[PTR_WIDTH]:0 { + true + } else { + state.hb_all_valid + }; + + // Read count set & decrement + let rd_ctr_rem = if rx_reset { + uN[CNT_WIDTH]:0 + } else if rx_cp { + rx.copy_pointer_count + } else if is_copying { + state.rd_ctr_rem - uN[CNT_WIDTH]:1 + } else { + state.rd_ctr_rem + }; + + // Enter/exit error state + let err = if rx_reset { + false + } else if rx_error || rx_unexpected_mark || err_inval_cp { + true + } else { + state.err + }; + + State{ + wr_ptr: wr_ptr, + rd_ptr: rd_ptr, + rd_ctr_rem: rd_ctr_rem, + hb_all_valid: hb_all_valid, + err: err, + } + } +} + +/// Version of `decoder` with embedded RamModel +/// Intended to be used only for tests +pub proc decoder_base_modelram { + init{()} + + config ( + encoded_data: chan> in, + plain_data: chan> out, + ) { + let (hb_wr_req_s, hb_wr_req_r) = + chan>; + let (hb_wr_comp_s, hb_wr_comp_r) = + chan; + let (hb_rd_req_s, hb_rd_req_r) = + chan>; + let (hb_rd_resp_s, hb_rd_resp_r) = + chan>; + + spawn ram::RamModel + (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); + + spawn decoder_base + ( + encoded_data, plain_data, + hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, + ); + } + + next (tok: token, state: ()) { + } +} + +/// Version of `decoder_base` compatible with classic LZ4 algorithm +pub const LZ4C_SYM_WIDTH = u32:8; +pub const LZ4C_PTR_WIDTH = u32:16; +pub const LZ4C_CNT_WIDTH = u32:16; + +pub proc decoder { + init{} + + config ( + encoded_data: + chan> in, + plain_data: chan> out, + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, + ram_hb_wr_req: + chan> out, + ram_hb_wr_comp: chan in, + ) { + spawn decoder_base + + ( + encoded_data, plain_data, + ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, + ); + } + + next(tok: token, st: ()) { + } +} + +/// Version of `decoder` with embedded RamModel +/// Intended to be used only for tests +pub proc decoder_modelram { + init{()} + + config ( + encoded_data: + chan> in, + plain_data: chan> out, + ) { + let (hb_wr_req_s, hb_wr_req_r) = + chan>; + let (hb_wr_comp_s, hb_wr_comp_r) = + chan; + let (hb_rd_req_s, hb_rd_req_r) = + chan>; + let (hb_rd_resp_s, hb_rd_resp_r) = + chan>; + + spawn ram::RamModel + + (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); + + spawn decoder + ( + encoded_data, plain_data, + hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, + ); + } + + next (tok: token, state: ()) { + } +} + + +/// +/// Tests +/// +import xls.modules.dbe.common_test as test + +const TST_SYM_WIDTH = u32:4; +const TST_PTR_WIDTH = u32:3; +const TST_CNT_WIDTH = u32:4; + + +// Reference input +const TST_SIMPLE_INPUT_LEN = u32:32; +const TST_SIMPLE_INPUT = Token[TST_SIMPLE_INPUT_LEN]: [ + Token{kind: TokenKind::LITERAL, literal: uN[4]:12, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 1, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]:15, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 9, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]:11, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 1, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 0, copy_pointer_count: uN[4]: 2, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 4, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]:15, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 2, copy_pointer_count: uN[4]:13, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 1, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]: 2, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 7, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 2, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 0, copy_pointer_count: uN[4]:11, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 6, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]:15, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 3, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 9, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]: 1, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 3, copy_pointer_count: uN[4]:13, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]:14, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 2, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 0, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 7, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]:15, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 4, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]:11, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: uN[4]: 8, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MARK, literal: uN[4]:0, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::END} +]; +// Reference output +const TST_SIMPLE_OUTPUT_LEN = u32:109; +const TST_SIMPLE_OUTPUT = PlainData[TST_SIMPLE_OUTPUT_LEN]: [ + PlainData{is_mark: false, data: uN[4]:12, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:1, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:1, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_mark: false, data: uN[4]:8, mark: Mark::NONE}, + PlainData{is_mark: true, data: uN[4]:0, mark: Mark::END} +]; + +#[test_proc] +proc test_simple { + term: chan out; + recv_last_r: chan in; + + init {()} + + config(term: chan out) { + // tokens from sender and to decoder + let (send_toks_s, send_toks_r) = + chan>; + // symbols & last indicator from receiver + let (recv_data_s, recv_data_r) = chan>; + let (recv_last_s, recv_last_r) = chan; + + + spawn test::token_sender + + (TST_SIMPLE_INPUT, send_toks_s); + spawn decoder_base_modelram( + send_toks_r, recv_data_s); + spawn test::data_validator( + TST_SIMPLE_OUTPUT, recv_data_r, recv_last_s); + + (term, recv_last_r) + } + + next (tok: token, state: ()) { + let (tok, recv_term) = recv(tok, recv_last_r); + send(tok, term, recv_term); + } +} diff --git a/xls/modules/dbe/lz4_decoder_ram1r1w_rewrites.textproto b/xls/modules/dbe/lz4_decoder_ram1r1w_rewrites.textproto new file mode 100644 index 0000000000..a23b2a1d40 --- /dev/null +++ b/xls/modules/dbe/lz4_decoder_ram1r1w_rewrites.textproto @@ -0,0 +1,32 @@ +# proto-file: xls/ir/ram_rewrite.proto +# proto-message: RamRewrites + +rewrites { + from_config { + kind: RAM_ABSTRACT + depth: 65536 + word_partition_size: 8 + } + to_config { + kind: RAM_1R1W + depth: 65536 + word_partition_size: 8 + } + from_channels_logical_to_physical: { + key: "abstract_read_req" + value: "lz4_decoder__ram_hb_rd_req" + } + from_channels_logical_to_physical: { + key: "abstract_read_resp" + value: "lz4_decoder__ram_hb_rd_resp" + } + from_channels_logical_to_physical: { + key: "abstract_write_req" + value: "lz4_decoder__ram_hb_wr_req" + } + from_channels_logical_to_physical: { + key: "write_completion" + value: "lz4_decoder__ram_hb_wr_comp" + } + to_name_prefix: "ram_hb" +} diff --git a/xls/modules/dbe/lz4_encoder.x b/xls/modules/dbe/lz4_encoder.x new file mode 100644 index 0000000000..16621ad8ed --- /dev/null +++ b/xls/modules/dbe/lz4_encoder.x @@ -0,0 +1,824 @@ +// Copyright 2023 The XLS Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import std +import xls.examples.ram as ram +import xls.modules.dbe.common as dbe + +type Mark = dbe::Mark; +type TokenKind = dbe::TokenKind; +type Token = dbe::Token; +type PlainData = dbe::PlainData; +type RamReq = ram::SinglePortRamReq; +type RamResp = ram::SinglePortRamResp; + + +fn fifo_shift_left( + fifo: uN[DATA_WIDTH][FIFO_SIZE], + data: uN[DATA_WIDTH]) -> uN[DATA_WIDTH][FIFO_SIZE] { + let fifo = for (i, arr): (u32, uN[DATA_WIDTH][FIFO_SIZE]) + in u32:1..FIFO_SIZE { + update(arr, i - u32:1, fifo[i]) + } (uN[DATA_WIDTH][FIFO_SIZE]: [0, ...]); + let fifo = update(fifo, FIFO_SIZE - u32:1, data); + fifo +} + +fn fifo_shift_right( + fifo: uN[DATA_WIDTH][FIFO_SIZE], + data: uN[DATA_WIDTH]) -> uN[DATA_WIDTH][FIFO_SIZE] { + let fifo = for (i, arr): (u32, uN[DATA_WIDTH][FIFO_SIZE]) + in u32:1..FIFO_SIZE { + update(arr, i, fifo[i - u32:1]) + } (uN[DATA_WIDTH][FIFO_SIZE]: [0, ...]); + let fifo = update(fifo, u32:0, data); + fifo +} + +fn RamWriteReq + (addr:uN[ADDR_WIDTH], data:uN[DATA_WIDTH]) + -> RamReq { + RamReq { + addr:addr, + data:data, + write_mask: (), + read_mask: (), + we: true, + re: false, + } +} + +fn RamReadReq + (addr:uN[ADDR_WIDTH]) + -> RamReq { + RamReq { + addr:addr, + data:uN[DATA_WIDTH]:0, + write_mask: (), + read_mask: (), + we: false, + re: true, + } +} + +enum FsmSt: u4 { + RESET = 0, + HASH_TABLE_CLEAR = 1, + RESTART = 2, + FIFO_PREFILL = 3, + FIFO_POSTFILL = 4, + START_MATCH_0 = 5, + START_MATCH_1 = 6, + CONTINUE_MATCH_0 = 7, + CONTINUE_MATCH_1 = 8, + EMIT_SHORT_MATCH = 9, + EMIT_FINAL_LITERALS = 10, + EMIT_END = 11, + ERROR = 12, +} + +struct State { + fifo_cache: uN[SYM_WIDTH][FIFO_CACHE_SZ], + fifo_in: uN[SYM_WIDTH][FIFO_IN_SZ], + fifo_in_count: u32, + fifo_in_nvalid: u32, + wp: uN[PTR_WIDTH], + hb_all_valid: bool, + pnew: uN[PTR_WIDTH], + pold: uN[PTR_WIDTH], + match_nconts: u32, + ht_ptr: uN[HASH_BITS], + recycle: bool, + finalize: bool, + fsm: FsmSt, +} + +fn init_state() + -> State { + State{ + fifo_cache: uN[SYM_WIDTH][FIFO_CACHE_SZ]: [uN[SYM_WIDTH]:0, ...], + fifo_in: uN[SYM_WIDTH][FIFO_IN_SZ]: [uN[SYM_WIDTH]:0, ...], + fifo_in_count: u32:0, + fifo_in_nvalid: u32:0, + wp: uN[PTR_WIDTH]:0, + hb_all_valid: false, + pnew: uN[PTR_WIDTH]:0, + pold: uN[PTR_WIDTH]:0, + match_nconts: u32:0, + ht_ptr: uN[HASH_BITS]:0, + recycle: false, + finalize: false, + fsm: FsmSt::RESET + } +} + +pub proc encoder_base< + SYM_WIDTH: u32, PTR_WIDTH: u32, CNT_WIDTH: u32, HASH_BITS: u32, + MINMATCH: u32 = {u32:4}, FINAL_LITERALS: u32 = {u32:12}, + FIFO_CACHE_SZ: u32 = {MINMATCH - u32:1}, + FIFO_IN_SZ: u32 = {std::umax(MINMATCH, FINAL_LITERALS + u32:1)}, + HB_RAM_SZ: u32 = {u32:1 << PTR_WIDTH}, + HT_RAM_SZ: u32 = {u32:1 << HASH_BITS}> { + i_data: chan> in; + o_encoded: chan> out; + + /// History buffer RAM + /// Size: (1<> out; + i_ram_hb_resp: chan> in; + i_ram_hb_wr_comp: chan<()> in; + + /// Hash table RAM + /// Size: (1<> out; + i_ram_ht_resp: chan> in; + i_ram_ht_wr_comp: chan<()> in; + + init { + init_state() + } + + config ( + // Data in, tokens out + i_data: chan> in, + o_encoded: chan> out, + // RAM + o_ram_hb_req: chan> out, + i_ram_hb_resp: chan> in, + i_ram_hb_wr_comp: chan<()> in, + o_ram_ht_req: chan> out, + i_ram_ht_resp: chan> in, + i_ram_ht_wr_comp: chan<()> in, + ) { + ( + i_data, o_encoded, + o_ram_hb_req, i_ram_hb_resp, i_ram_hb_wr_comp, + o_ram_ht_req, i_ram_ht_resp, i_ram_ht_wr_comp, + ) + } + + next (tok: token, cur: State) { + type EncToken = Token; + type EncData = PlainData; + type EncHbRamReq = RamReq; + type EncHbRamResp = RamResp; + type EncHtRamReq = RamReq; + type EncHtRamResp = RamResp; + let upd = cur; + + // Read new symbol from input + let do_recv = !cur.recycle && ( + cur.fsm == FsmSt::FIFO_PREFILL + || cur.fsm == FsmSt::START_MATCH_0 + || cur.fsm == FsmSt::CONTINUE_MATCH_0 + || cur.fsm == FsmSt::ERROR + ); + + // I_DATA RECV + let (tok, rx) = recv_if(tok, i_data, do_recv, + zero!()); + + // Classify input markers + let rx_symbol = do_recv && !rx.is_mark; + let rx_mark = do_recv && rx.is_mark; + let rx_end = rx_mark && rx.mark == Mark::END; + let rx_error = rx_mark && dbe::is_error(rx.mark); + let rx_reset = rx_mark && rx.mark == Mark::RESET; + let rx_unexpected_mark = rx_mark && !(rx_end || rx_reset || rx_error); + + let upd = if cur.fsm == FsmSt::ERROR || cur.recycle { + // Do not shift FIFOs / write HB in these states + upd + } else if rx_symbol { + let wp = upd.wp + uN[PTR_WIDTH]:1; + // Update state, shift input FIFOs + let upd = State{ + wp: wp, + fifo_cache: + fifo_shift_right(upd.fifo_cache, upd.fifo_in[0]), + fifo_in: + fifo_shift_left(upd.fifo_in, rx.data), + hb_all_valid: + if wp == uN[PTR_WIDTH]:0 {true} else {upd.hb_all_valid}, + fifo_in_count: + std::umin(upd.fifo_in_count + u32:1, FIFO_IN_SZ), + ..upd + }; + upd + } else if rx_end { + // When receiving END marker, shift input FIFO anyhow as we're + // expected to drop the symbol at OP + let new_count = std::umin(upd.fifo_in_count + u32:1, FIFO_IN_SZ); + let upd = State{ + finalize: true, + fifo_cache: + fifo_shift_right(upd.fifo_cache, upd.fifo_in[0]), + fifo_in: + fifo_shift_left(upd.fifo_in, uN[SYM_WIDTH]:0), + fifo_in_count: new_count, + fifo_in_nvalid: new_count - u32:1, + ..upd + }; + upd + } else if ( + cur.fsm == FsmSt::FIFO_POSTFILL + || cur.fsm == FsmSt::EMIT_FINAL_LITERALS + ) { + // Feed input FIFO with 0s and shift + let (new_count, new_nvalid) = if cur.fsm == FsmSt::FIFO_POSTFILL { + ( + std::umin(upd.fifo_in_count + u32:1, FIFO_IN_SZ), + upd.fifo_in_nvalid + ) + } else { + ( + upd.fifo_in_count, + upd.fifo_in_nvalid - u32:1 + ) + }; + let upd = State{ + fifo_in: + fifo_shift_left(upd.fifo_in, uN[SYM_WIDTH]:0), + fifo_in_count: new_count, + fifo_in_nvalid: new_nvalid, + ..upd + }; + upd + } else { + upd + }; + + // Calculate origin pointer OP from WP + let op = ((upd.wp as u32) - FIFO_IN_SZ + u32:1) as uN[PTR_WIDTH]; + + // Calculate u32 Fibonacci hash function + let hsh_input = (upd.fifo_in[3] as u8) + ++ (upd.fifo_in[2] as u8) + ++ (upd.fifo_in[1] as u8) + ++ (upd.fifo_in[0] as u8); + let hsh32 = hsh_input * u32:2654435761; + let hsh = (hsh32 >> (u32:32 - HASH_BITS)) as uN[HASH_BITS]; + + // NOTE: HT RAM, HB RAM accesses and o_token emission all happen + // in parallel. + + // Access HT RAM + let (ht_vld, ht_req) = if cur.fsm == FsmSt::START_MATCH_0 { + (true, RamReadReq(hsh)) + } else if cur.fsm == FsmSt::START_MATCH_1 { + (true, RamWriteReq(hsh, op)) + } else if cur.fsm == FsmSt::HASH_TABLE_CLEAR { + (true, RamWriteReq(upd.ht_ptr, uN[PTR_WIDTH]:0)) + } else { + (false, zero!()) + }; + let tok_ht = send_if(tok, o_ram_ht_req, ht_vld, ht_req); + let (tok_ht, ht_resp) = recv_if(tok_ht, i_ram_ht_resp, ht_vld && ht_req.re, + zero!()); + let (tok_ht, _) = recv_if(tok_ht, i_ram_ht_wr_comp, ht_vld && ht_req.we, + ()); + + // Update match pointers & HT ptr used to clean hash table + let upd = if cur.fsm == FsmSt::START_MATCH_0 { + State { + pold: ht_resp.data, + pnew: op, + ..upd + } + } else if cur.fsm == FsmSt::HASH_TABLE_CLEAR { + State { + ht_ptr: upd.ht_ptr + uN[HASH_BITS]:1, + ..upd + } + } else { + upd + }; + + // Prepare to check for a match + let (mchk_do, mchk_pos, mchk_canextend) = if ( + cur.fsm == FsmSt::START_MATCH_1 + ) { + ( + true, + upd.pold, + true + ) + } else if (cur.fsm == FsmSt::CONTINUE_MATCH_1) { + ( + true, + upd.pold + upd.match_nconts as uN[PTR_WIDTH] + uN[PTR_WIDTH]:1, + upd.match_nconts < ((u32:1 << CNT_WIDTH) - u32:1) + ) + } else { + ( + false, + uN[PTR_WIDTH]:0, + false + ) + }; + + // Do not match-check unwritten (uninitialized) HB RAM locations + let mchk_is_hb_written = + upd.hb_all_valid + || (mchk_pos >= uN[PTR_WIDTH]:1 && mchk_pos < upd.wp); + + // Access HB RAM + let (hb_vld, hb_req) = if rx_symbol && cur.fsm != FsmSt::ERROR { + (true, RamWriteReq(upd.wp, rx.data)) + } else if mchk_do && mchk_is_hb_written { + (true, RamReadReq(mchk_pos)) + } else { + (false, zero!()) + }; + let tok_hb = send_if(tok, o_ram_hb_req, hb_vld, hb_req); + let (tok_hb, hb_resp) = recv_if(tok_hb, i_ram_hb_resp, hb_vld && hb_req.re, + zero!()); + let (tok_hb, _) = recv_if(tok_hb, i_ram_hb_wr_comp, hb_vld && hb_req.we, + ()); + + // Actually check for a match + let is_match = if mchk_do { + let sym = hb_resp.data; + // For match to happen, following criteria have to be met: + // 1. pos should not point to an unwritten HB entry + // (see `mchk_is_hb_written` above) + // 2. pos should not point between OP and WP inclusive + let isold = (mchk_pos - op) > (upd.wp - op); + // 3. sym should match current origin symbol + let _matches = sym == upd.fifo_in[0]; + // 4. our existing matching string should not be too long + (mchk_is_hb_written && isold && _matches && mchk_canextend) + } else { + false + }; + + // Update match_nconts + let upd = State{ + match_nconts: if cur.fsm == FsmSt::START_MATCH_1 { + u32:0 + } else if cur.fsm == FsmSt::CONTINUE_MATCH_1 { + upd.match_nconts + u32:1 + } else if cur.fsm == FsmSt::EMIT_SHORT_MATCH { + upd.match_nconts - u32:1 + } else { + upd.match_nconts + }, + ..upd + }; + + // Handle match termination + let ( + is_match_terminated, + match_len, + match_is_long + ) = if cur.fsm == FsmSt::CONTINUE_MATCH_1 { + ( + !is_match || upd.finalize, + upd.match_nconts, + upd.match_nconts >= MINMATCH, + ) + } else { + (false, u32:0, false) + }; + + // Emit compressed data token + let zero_tok = zero!(); + let (do_emit, encoded_tok) = if rx_reset { + // Propagate RESET + (true, Token{ + kind: TokenKind::MARK, + mark: Mark::RESET, + ..zero_tok + }) + } else if cur.fsm == FsmSt::ERROR { + // Do not emit anything in error state + (false, zero_tok) + } else if rx_error { + // Propagate error + (true, Token{ + kind: TokenKind::MARK, + mark: rx.mark, + ..zero_tok + }) + } else if rx_unexpected_mark { + // Generate error + (true, Token{ + kind: TokenKind::MARK, + mark: Mark::ERROR_BAD_MARK, + ..zero_tok + }) + } else if ( + cur.fsm == FsmSt::START_MATCH_1 && + (!is_match || upd.finalize) + ) { + // Emit symbol at OP as literal + (true, Token{ + kind: TokenKind::LITERAL, + literal: upd.fifo_in[0], + ..zero_tok + }) + } else if cur.fsm == FsmSt::CONTINUE_MATCH_1 && is_match_terminated { + // If match is long enough, emit a single CP + // If not, emit symbols from Cache FIFO as literals + if match_is_long { + let off = upd.pnew - upd.pold; + let t = Token { + kind: TokenKind::COPY_POINTER, + copy_pointer_offset: off - uN[PTR_WIDTH]:1, + copy_pointer_count: (match_len - u32:1) as uN[CNT_WIDTH], + ..zero_tok + }; + (true, t) + } else { + (true, Token { + kind: TokenKind::LITERAL, + literal: upd.fifo_cache[upd.match_nconts - u32:1], + ..zero_tok + }) + } + } else if cur.fsm == FsmSt::EMIT_SHORT_MATCH { + (true, Token { + kind: TokenKind::LITERAL, + literal: upd.fifo_cache[upd.match_nconts - u32:1], + ..zero_tok + }) + } else if cur.fsm == FsmSt::EMIT_FINAL_LITERALS { + // We dump literals from Input FIFO till nvalid becomes 0 + (true, Token { + kind: TokenKind::LITERAL, + literal: upd.fifo_in[u32:0], + ..zero_tok + }) + } else if cur.fsm == FsmSt::EMIT_END { + (true, Token { + kind: TokenKind::MARK, + mark: Mark::END, + ..zero_tok + }) + } else { + (false, zero_tok) + }; + let tok_out = send_if(tok, o_encoded, do_emit, encoded_tok); + + // Handle state re-initialization + let upd = if cur.fsm == FsmSt::RESET { + // Full reset + // NOTE: .fsm value will be overridden by the state change logic + init_state() + } else if cur.fsm == FsmSt::RESTART { + // Intra-block partial reset, keeping HB and HT intact + State { + fifo_in_count: u32:0, + fifo_in_nvalid: u32:0, + match_nconts: u32:0, + finalize: false, + recycle: false, + ..upd + } + } else { + upd + }; + + // State change logic + let fsm = if rx_error || rx_unexpected_mark { + FsmSt::ERROR + } else if rx_reset { + FsmSt::RESET + } else { + match cur.fsm { + FsmSt::RESET => FsmSt::HASH_TABLE_CLEAR, + FsmSt::HASH_TABLE_CLEAR => { + if upd.ht_ptr == uN[HASH_BITS]:0 { + FsmSt::RESTART + } else { + cur.fsm + } + }, + FsmSt::RESTART => FsmSt::FIFO_PREFILL, + FsmSt::FIFO_PREFILL => { + if rx_end { + if upd.fifo_in_nvalid > u32:0 { + if upd.fifo_in_count < FIFO_IN_SZ { + FsmSt::FIFO_POSTFILL + } else { + FsmSt::EMIT_FINAL_LITERALS + } + } else { + // This handles empty input blocks + FsmSt::EMIT_END + } + } else if upd.fifo_in_count >= FIFO_IN_SZ { + FsmSt::START_MATCH_0 + } else { + cur.fsm + } + }, + FsmSt::START_MATCH_0 => FsmSt::START_MATCH_1, + FsmSt::START_MATCH_1 => { + if upd.finalize { + FsmSt::EMIT_FINAL_LITERALS + } else if is_match { + FsmSt::CONTINUE_MATCH_0 + } else { + FsmSt::START_MATCH_0 + } + }, + FsmSt::CONTINUE_MATCH_0 => FsmSt::CONTINUE_MATCH_1, + FsmSt::CONTINUE_MATCH_1 => { + if is_match_terminated { + // Match failed or interrupted + if match_is_long || upd.match_nconts == u32:1 { + // Copy pointer or a sole literal has been + // emitted + if upd.finalize { + FsmSt::EMIT_FINAL_LITERALS + } else { + FsmSt::START_MATCH_0 + } + } else { + // Still need to emit some literals to terminate + // the match + FsmSt::EMIT_SHORT_MATCH + } + } else { + // Continue matching + FsmSt::CONTINUE_MATCH_0 + } + }, + FsmSt::EMIT_SHORT_MATCH => { + if upd.match_nconts == u32:1 { + if upd.finalize { + // Finish block transcription + FsmSt::EMIT_FINAL_LITERALS + } else { + // Restart matching + FsmSt::START_MATCH_0 + } + } else { + cur.fsm + } + }, + FsmSt::FIFO_POSTFILL => { + // It is worth noting that we get into this state only when + // finalizing very short blocks (so short that they don't + // even fill the input FIFO). + if upd.fifo_in_count == FIFO_IN_SZ { + FsmSt::EMIT_FINAL_LITERALS + } else { + cur.fsm + } + }, + FsmSt::EMIT_FINAL_LITERALS => { + if upd.fifo_in_nvalid == u32:1 { + FsmSt::EMIT_END + } else { + cur.fsm + } + }, + FsmSt::EMIT_END => FsmSt::RESTART, + _ => fail!("unhandled_fsm_state", cur.fsm) + } + }; + + let upd = State { + fsm: fsm, + ..upd + }; + + // Set 'recycle' flag when we want to "stall" Input FIFO to not lose + // the symbol at the OP, which is needed for certain state transitions + let recycle = if ( + upd.fsm == FsmSt::START_MATCH_0 + && cur.fsm != FsmSt::START_MATCH_1 + ) { + true + } else if ( + upd.fsm == FsmSt::EMIT_FINAL_LITERALS + && cur.fsm != FsmSt::EMIT_FINAL_LITERALS + && cur.fsm != FsmSt::START_MATCH_1 + ) { + true + } else { + false + }; + + let upd = State { + recycle: recycle, + ..upd + }; + + upd + } +} + +/// Version of `encoder_base` that uses RamModel +/// Intended to be used only for tests +pub proc encoder_base_modelram + { + init{()} + + config ( + i_data: chan> in, + o_encoded: chan> out, + ) { + let (o_hb_req, i_hb_req) = + chan>; + let (o_hb_resp, i_hb_resp) = + chan>; + let (o_hb_wr_comp, i_hb_wr_comp) = + chan<()>; + let (o_ht_req, i_ht_req) = + chan>; + let (o_ht_resp, i_ht_resp) = + chan>; + let (o_ht_wr_comp, i_ht_wr_comp) = + chan<()>; + + spawn ram::SinglePortRamModel + + (i_hb_req, o_hb_resp, o_hb_wr_comp); + spawn ram::SinglePortRamModel + + (i_ht_req, o_ht_resp, o_ht_wr_comp); + + spawn encoder_base + + ( + i_data, o_encoded, + o_hb_req, i_hb_resp, i_hb_wr_comp, + o_ht_req, i_ht_resp, i_ht_wr_comp, + ); + } + + next (tok: token, state: ()) { + } +} + +/// LZ4 encoder with 8K hash table + +const LZ4C_SYM_WIDTH = u32:8; +const LZ4C_PTR_WIDTH = u32:16; +const LZ4C_CNT_WIDTH = u32:16; +const LZ4C_HASH_BITS_8K = u32:13; + +pub proc encoder_8k { + init{()} + + config ( + i_data: + chan> in, + o_encoded: + chan> out, + o_ram_hb_req: + chan> out, + i_ram_hb_resp: + chan> in, + i_ram_hb_wr_comp: + chan<()> in, + o_ram_ht_req: + chan> out, + i_ram_ht_resp: + chan> in, + i_ram_ht_wr_comp: + chan<()> in, + ) { + spawn encoder_base + + ( + i_data, o_encoded, + o_ram_hb_req, i_ram_hb_resp, i_ram_hb_wr_comp, + o_ram_ht_req, i_ram_ht_resp, i_ram_ht_wr_comp, + ); + } + + next(tok: token, st: ()) { + } +} + +/// Version of `encoder_8k` that uses RamModel +/// Intended to be used only for tests +pub proc encoder_8k_modelram { + init{()} + + config ( + i_data: + chan> in, + o_encoded: + chan> out, + ) { + spawn encoder_base_modelram + + (i_data, o_encoded); + } + + next (tok: token, state: ()) { + } +} + +/// +/// Tests +/// + +import xls.modules.dbe.common_test as test +import xls.modules.dbe.lz4_decoder as dec + +const TST_SYMS_LEN = u32:19; +const TST_SYMS = PlainData<8>[TST_SYMS_LEN]: [ + // Check basic LT and CP generation + PlainData{is_mark: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:2, mark: Mark::NONE}, + // Final token sequence - should stay as literals + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_mark: true, data: u8:0, mark: Mark::END}, +]; + +const TST_TOKS_LEN = u32:16; +const TST_TOKS = +Token[TST_TOKS_LEN]: [ + Token{kind: TokenKind::LITERAL, literal: u8:1, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:2, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::COPY_POINTER, literal: u8:0, copy_pointer_offset: u16:1, copy_pointer_count: u16:3, mark: Mark::NONE}, + // Final literal token sequence + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MARK, literal: u8:0, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::END}, +]; + +#[test_proc] +proc test_encoder_8k_simple { + o_term: chan out; + i_recv_term: chan in; + + init {()} + + config(o_term: chan out) { + let (o_send_data, i_send_data) = + chan>; + let (enc_toks_s, enc_toks_r) = + chan>; + let (o_recv_term, i_recv_term) = + chan; + + spawn test::data_sender + (TST_SYMS, o_send_data); + spawn encoder_8k_modelram( + i_send_data, enc_toks_s, + ); + spawn test::token_validator + + (TST_TOKS, enc_toks_r, o_recv_term); + + (o_term, i_recv_term) + } + + next (tok: token, state: ()) { + // Here, test::token_validator validates the data received from encoder + // We only forward its o_term to our o_term + let (tok, recv_term) = recv(tok, i_recv_term); + send(tok, o_term, recv_term); + } +} From d7e8145d9856d49a824ead00e673d4b58ed4d8d1 Mon Sep 17 00:00:00 2001 From: Roman Dobrodii Date: Thu, 24 Aug 2023 17:27:40 +0200 Subject: [PATCH 2/7] modules/dbe: Lz4 encoder - use abstract RAM interface Switches Lz4 encoder proc to use abstract (1R1W) RamModel and adds RAM interface rewrites at xls_ir_opt_ir and xls_ir_verilog stages. Signed-off-by: Roman Dobrodii --- xls/modules/dbe/BUILD | 17 + xls/modules/dbe/lz4_encoder.x | 290 +++++++++--------- .../lz4_encoder_8k_ram1r1w_rewrites.textproto | 62 ++++ 3 files changed, 221 insertions(+), 148 deletions(-) create mode 100644 xls/modules/dbe/lz4_encoder_8k_ram1r1w_rewrites.textproto diff --git a/xls/modules/dbe/BUILD b/xls/modules/dbe/BUILD index 682b1a3c2c..0c5583c7f0 100644 --- a/xls/modules/dbe/BUILD +++ b/xls/modules/dbe/BUILD @@ -137,6 +137,9 @@ xls_ir_opt_ir( name = "dbe_lz4_encoder_8k_opt_ir", src = "dbe_lz4_encoder_8k_ir.ir", top = "__lz4_encoder__encoder_8k__encoder_base_0__16_3_13_12_13_65536_8192_4_16_8_next", + ram_rewrites = [ + ":lz4_encoder_8k_ram1r1w_rewrites.textproto", + ], ) xls_ir_verilog( @@ -151,5 +154,19 @@ xls_ir_verilog( "reset": "rst", "use_system_verilog": "false", "streaming_channel_data_suffix": "_data", + "ram_configurations": ",".join([ + "ram_hb:1R1W:{rd_req}:{rd_resp}:{wr_req}:{wr_comp}".format( + rd_req = "ram_hb_read_req", + rd_resp = "ram_hb_read_resp", + wr_req = "ram_hb_write_req", + wr_comp = "ram_hb_write_completion", + ), + "ram_ht:1R1W:{rd_req}:{rd_resp}:{wr_req}:{wr_comp}".format( + rd_req = "ram_ht_read_req", + rd_resp = "ram_ht_read_resp", + wr_req = "ram_ht_write_req", + wr_comp = "ram_ht_write_completion", + ), + ]), }, ) diff --git a/xls/modules/dbe/lz4_encoder.x b/xls/modules/dbe/lz4_encoder.x index 16621ad8ed..2110e4ab66 100644 --- a/xls/modules/dbe/lz4_encoder.x +++ b/xls/modules/dbe/lz4_encoder.x @@ -20,8 +20,10 @@ type Mark = dbe::Mark; type TokenKind = dbe::TokenKind; type Token = dbe::Token; type PlainData = dbe::PlainData; -type RamReq = ram::SinglePortRamReq; -type RamResp = ram::SinglePortRamResp; +type AbstractRamWriteReq = ram::WriteReq; +type AbstractRamWriteResp = ram::WriteResp; +type AbstractRamReadReq = ram::ReadReq; +type AbstractRamReadResp = ram::ReadResp; fn fifo_shift_left( @@ -46,32 +48,6 @@ fn fifo_shift_right( fifo } -fn RamWriteReq - (addr:uN[ADDR_WIDTH], data:uN[DATA_WIDTH]) - -> RamReq { - RamReq { - addr:addr, - data:data, - write_mask: (), - read_mask: (), - we: true, - re: false, - } -} - -fn RamReadReq - (addr:uN[ADDR_WIDTH]) - -> RamReq { - RamReq { - addr:addr, - data:uN[DATA_WIDTH]:0, - write_mask: (), - read_mask: (), - we: false, - re: true, - } -} - enum FsmSt: u4 { RESET = 0, HASH_TABLE_CLEAR = 1, @@ -136,20 +112,22 @@ pub proc encoder_base< FIFO_IN_SZ: u32 = {std::umax(MINMATCH, FINAL_LITERALS + u32:1)}, HB_RAM_SZ: u32 = {u32:1 << PTR_WIDTH}, HT_RAM_SZ: u32 = {u32:1 << HASH_BITS}> { - i_data: chan> in; - o_encoded: chan> out; + plain_data: chan> in; + encoded_data: chan> out; /// History buffer RAM /// Size: (1<> out; - i_ram_hb_resp: chan> in; - i_ram_hb_wr_comp: chan<()> in; + ram_hb_rd_req: chan> out; + ram_hb_rd_resp: chan> in; + ram_hb_wr_req: chan> out; + ram_hb_wr_comp: chan in; /// Hash table RAM /// Size: (1<> out; - i_ram_ht_resp: chan> in; - i_ram_ht_wr_comp: chan<()> in; + ram_ht_rd_req: chan> out; + ram_ht_rd_resp: chan> in; + ram_ht_wr_req: chan> out; + ram_ht_wr_comp: chan in; init { init_state> in, - o_encoded: chan> out, + plain_data: chan> in, + encoded_data: chan> out, // RAM - o_ram_hb_req: chan> out, - i_ram_hb_resp: chan> in, - i_ram_hb_wr_comp: chan<()> in, - o_ram_ht_req: chan> out, - i_ram_ht_resp: chan> in, - i_ram_ht_wr_comp: chan<()> in, + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, + ram_hb_wr_req: chan> out, + ram_hb_wr_comp: chan in, + ram_ht_rd_req: chan> out, + ram_ht_rd_resp: chan> in, + ram_ht_wr_req: chan> out, + ram_ht_wr_comp: chan in, ) { ( - i_data, o_encoded, - o_ram_hb_req, i_ram_hb_resp, i_ram_hb_wr_comp, - o_ram_ht_req, i_ram_ht_resp, i_ram_ht_wr_comp, + plain_data, encoded_data, + ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, + ram_ht_rd_req, ram_ht_rd_resp, ram_ht_wr_req, ram_ht_wr_comp, ) } next (tok: token, cur: State) { type EncToken = Token; type EncData = PlainData; - type EncHbRamReq = RamReq; - type EncHbRamResp = RamResp; - type EncHtRamReq = RamReq; - type EncHtRamResp = RamResp; + type HbRamReadReq = AbstractRamReadReq; + type HbRamReadResp = AbstractRamReadResp; + type HbRamWriteReq = AbstractRamWriteReq; + type HtRamReadReq = AbstractRamReadReq; + type HtRamReadResp = AbstractRamReadResp; + type HtRamWriteReq = AbstractRamWriteReq; + let upd = cur; // Read new symbol from input @@ -193,7 +176,7 @@ pub proc encoder_base< ); // I_DATA RECV - let (tok, rx) = recv_if(tok, i_data, do_recv, + let (tok, rx) = recv_if(tok, plain_data, do_recv, zero!()); // Classify input markers @@ -280,26 +263,32 @@ pub proc encoder_base< // NOTE: HT RAM, HB RAM accesses and o_token emission all happen // in parallel. - // Access HT RAM - let (ht_vld, ht_req) = if cur.fsm == FsmSt::START_MATCH_0 { - (true, RamReadReq(hsh)) - } else if cur.fsm == FsmSt::START_MATCH_1 { - (true, RamWriteReq(hsh, op)) + // Read HT RAM + let (ht_rd_vld, ht_rd_req) = if cur.fsm == FsmSt::START_MATCH_0 { + (true, ram::ReadWordReq(hsh)) + } else { + (false, zero!()) + }; + let tok_ht = send_if(tok, ram_ht_rd_req, ht_rd_vld, ht_rd_req); + let (tok_ht, ht_rd_resp) = recv_if(tok_ht, ram_ht_rd_resp, ht_rd_vld, + zero!()); + + // Write HT RAM + let (ht_wr_vld, ht_wr_req) = if cur.fsm == FsmSt::START_MATCH_1 { + (true, ram::WriteWordReq(hsh, op)) } else if cur.fsm == FsmSt::HASH_TABLE_CLEAR { - (true, RamWriteReq(upd.ht_ptr, uN[PTR_WIDTH]:0)) + (true, ram::WriteWordReq(upd.ht_ptr, uN[PTR_WIDTH]:0)) } else { - (false, zero!()) + (false, zero!()) }; - let tok_ht = send_if(tok, o_ram_ht_req, ht_vld, ht_req); - let (tok_ht, ht_resp) = recv_if(tok_ht, i_ram_ht_resp, ht_vld && ht_req.re, - zero!()); - let (tok_ht, _) = recv_if(tok_ht, i_ram_ht_wr_comp, ht_vld && ht_req.we, - ()); + let tok_ht = send_if(tok, ram_ht_wr_req, ht_wr_vld, ht_wr_req); + let (tok_ht, _) = recv_if(tok_ht, ram_ht_wr_comp, ht_wr_vld, + zero!()); // Update match pointers & HT ptr used to clean hash table let upd = if cur.fsm == FsmSt::START_MATCH_0 { State { - pold: ht_resp.data, + pold: ht_rd_resp.data, pnew: op, ..upd } @@ -340,23 +329,30 @@ pub proc encoder_base< upd.hb_all_valid || (mchk_pos >= uN[PTR_WIDTH]:1 && mchk_pos < upd.wp); - // Access HB RAM - let (hb_vld, hb_req) = if rx_symbol && cur.fsm != FsmSt::ERROR { - (true, RamWriteReq(upd.wp, rx.data)) - } else if mchk_do && mchk_is_hb_written { - (true, RamReadReq(mchk_pos)) + + // Read HB RAM + let (hb_rd_vld, hb_rd_req) = if mchk_do && mchk_is_hb_written { + (true, ram::ReadWordReq(mchk_pos)) + } else { + (false, zero!()) + }; + let tok_hb = send_if(tok, ram_hb_rd_req, hb_rd_vld, hb_rd_req); + let (tok_hb, hb_rd_resp) = recv_if(tok_hb, ram_hb_rd_resp, hb_rd_vld, + zero!()); + + // Write HB RAM + let (hb_wr_vld, hb_wr_req) = if rx_symbol && cur.fsm != FsmSt::ERROR { + (true, ram::WriteWordReq(upd.wp, rx.data)) } else { - (false, zero!()) + (false, zero!()) }; - let tok_hb = send_if(tok, o_ram_hb_req, hb_vld, hb_req); - let (tok_hb, hb_resp) = recv_if(tok_hb, i_ram_hb_resp, hb_vld && hb_req.re, - zero!()); - let (tok_hb, _) = recv_if(tok_hb, i_ram_hb_wr_comp, hb_vld && hb_req.we, - ()); + let tok_hb = send_if(tok, ram_hb_wr_req, hb_wr_vld, hb_wr_req); + let (tok_hb, _) = recv_if(tok_hb, ram_hb_wr_comp, hb_wr_vld, + zero!()); // Actually check for a match let is_match = if mchk_do { - let sym = hb_resp.data; + let sym = hb_rd_resp.data; // For match to happen, following criteria have to be met: // 1. pos should not point to an unwritten HB entry // (see `mchk_is_hb_written` above) @@ -476,7 +472,7 @@ pub proc encoder_base< } else { (false, zero_tok) }; - let tok_out = send_if(tok, o_encoded, do_emit, encoded_tok); + let tok_out = send_if(tok, encoded_data, do_emit, encoded_tok); // Handle state re-initialization let upd = if cur.fsm == FsmSt::RESET { @@ -637,35 +633,39 @@ pub proc encoder_base_modelram init{()} config ( - i_data: chan> in, - o_encoded: chan> out, + plain_data: chan> in, + encoded_data: chan> out, ) { - let (o_hb_req, i_hb_req) = - chan>; - let (o_hb_resp, i_hb_resp) = - chan>; - let (o_hb_wr_comp, i_hb_wr_comp) = - chan<()>; - let (o_ht_req, i_ht_req) = - chan>; - let (o_ht_resp, i_ht_resp) = - chan>; - let (o_ht_wr_comp, i_ht_wr_comp) = - chan<()>; - - spawn ram::SinglePortRamModel + let (hb_rd_req_s, hb_rd_req_r) = + chan>; + let (hb_rd_resp_s, hb_rd_resp_r) = + chan>; + let (hb_wr_req_s, hb_wr_req_r) = + chan>; + let (hb_wr_comp_s, hb_wr_comp_r) = + chan; + let (ht_rd_req_s, ht_rd_req_r) = + chan>; + let (ht_rd_resp_s, ht_rd_resp_r) = + chan>; + let (ht_wr_req_s, ht_wr_req_r) = + chan>; + let (ht_wr_comp_s, ht_wr_comp_r) = + chan; + + spawn ram::RamModel - (i_hb_req, o_hb_resp, o_hb_wr_comp); - spawn ram::SinglePortRamModel + (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); + spawn ram::RamModel - (i_ht_req, o_ht_resp, o_ht_wr_comp); + (ht_rd_req_r, ht_rd_resp_s, ht_wr_req_r, ht_wr_comp_s); spawn encoder_base ( - i_data, o_encoded, - o_hb_req, i_hb_resp, i_hb_wr_comp, - o_ht_req, i_ht_resp, i_ht_wr_comp, + plain_data, encoded_data, + hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, + ht_rd_req_s, ht_rd_resp_r, ht_wr_req_s, ht_wr_comp_r, ); } @@ -675,38 +675,34 @@ pub proc encoder_base_modelram /// LZ4 encoder with 8K hash table -const LZ4C_SYM_WIDTH = u32:8; -const LZ4C_PTR_WIDTH = u32:16; -const LZ4C_CNT_WIDTH = u32:16; -const LZ4C_HASH_BITS_8K = u32:13; +const LZ4_SYM_WIDTH = u32:8; +const LZ4_PTR_WIDTH = u32:16; +const LZ4_CNT_WIDTH = u32:16; +const LZ4_HASH_BITS_8K = u32:13; pub proc encoder_8k { init{()} config ( - i_data: - chan> in, - o_encoded: - chan> out, - o_ram_hb_req: - chan> out, - i_ram_hb_resp: - chan> in, - i_ram_hb_wr_comp: - chan<()> in, - o_ram_ht_req: - chan> out, - i_ram_ht_resp: - chan> in, - i_ram_ht_wr_comp: - chan<()> in, + plain_data: + chan> in, + encoded_data: + chan> out, + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, + ram_hb_wr_req: chan> out, + ram_hb_wr_comp: chan in, + ram_ht_rd_req: chan> out, + ram_ht_rd_resp: chan> in, + ram_ht_wr_req: chan> out, + ram_ht_wr_comp: chan in, ) { spawn encoder_base - + ( - i_data, o_encoded, - o_ram_hb_req, i_ram_hb_resp, i_ram_hb_wr_comp, - o_ram_ht_req, i_ram_ht_resp, i_ram_ht_wr_comp, + plain_data, encoded_data, + ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, + ram_ht_rd_req, ram_ht_rd_resp, ram_ht_wr_req, ram_ht_wr_comp, ); } @@ -720,14 +716,14 @@ pub proc encoder_8k_modelram { init{()} config ( - i_data: - chan> in, - o_encoded: - chan> out, + plain_data: + chan> in, + encoded_data: + chan> out, ) { spawn encoder_base_modelram - - (i_data, o_encoded); + + (plain_data, encoded_data); } next (tok: token, state: ()) { @@ -768,7 +764,7 @@ const TST_SYMS = PlainData<8>[TST_SYMS_LEN]: [ const TST_TOKS_LEN = u32:16; const TST_TOKS = -Token[TST_TOKS_LEN]: [ +Token[TST_TOKS_LEN]: [ Token{kind: TokenKind::LITERAL, literal: u8:1, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, Token{kind: TokenKind::LITERAL, literal: u8:2, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, Token{kind: TokenKind::COPY_POINTER, literal: u8:0, copy_pointer_offset: u16:1, copy_pointer_count: u16:3, mark: Mark::NONE}, @@ -790,35 +786,33 @@ Token[TST_TOKS_LEN]: [ #[test_proc] proc test_encoder_8k_simple { - o_term: chan out; - i_recv_term: chan in; + term: chan out; + recv_term_r: chan in; init {()} - config(o_term: chan out) { - let (o_send_data, i_send_data) = - chan>; + config(term: chan out) { + let (send_data_s, send_data_r) = + chan>; let (enc_toks_s, enc_toks_r) = - chan>; - let (o_recv_term, i_recv_term) = + chan>; + let (recv_term_s, recv_term_r) = chan; - spawn test::data_sender - (TST_SYMS, o_send_data); + spawn test::data_sender + (TST_SYMS, send_data_s); spawn encoder_8k_modelram( - i_send_data, enc_toks_s, + send_data_r, enc_toks_s, ); spawn test::token_validator - - (TST_TOKS, enc_toks_r, o_recv_term); + + (TST_TOKS, enc_toks_r, recv_term_s); - (o_term, i_recv_term) + (term, recv_term_r) } next (tok: token, state: ()) { - // Here, test::token_validator validates the data received from encoder - // We only forward its o_term to our o_term - let (tok, recv_term) = recv(tok, i_recv_term); - send(tok, o_term, recv_term); + let (tok, recv_term) = recv(tok, recv_term_r); + send(tok, term, recv_term); } } diff --git a/xls/modules/dbe/lz4_encoder_8k_ram1r1w_rewrites.textproto b/xls/modules/dbe/lz4_encoder_8k_ram1r1w_rewrites.textproto new file mode 100644 index 0000000000..257ee35784 --- /dev/null +++ b/xls/modules/dbe/lz4_encoder_8k_ram1r1w_rewrites.textproto @@ -0,0 +1,62 @@ +# proto-file: xls/ir/ram_rewrite.proto +# proto-message: RamRewrites + +rewrites { + from_config { + kind: RAM_ABSTRACT + depth: 65536 + word_partition_size: 8 + } + to_config { + kind: RAM_1R1W + depth: 65536 + word_partition_size: 8 + } + from_channels_logical_to_physical: { + key: "abstract_read_req" + value: "lz4_encoder__ram_hb_rd_req" + } + from_channels_logical_to_physical: { + key: "abstract_read_resp" + value: "lz4_encoder__ram_hb_rd_resp" + } + from_channels_logical_to_physical: { + key: "abstract_write_req" + value: "lz4_encoder__ram_hb_wr_req" + } + from_channels_logical_to_physical: { + key: "write_completion" + value: "lz4_encoder__ram_hb_wr_comp" + } + to_name_prefix: "ram_hb" +} + +rewrites { + from_config { + kind: RAM_ABSTRACT + depth: 8192 + word_partition_size: 16 + } + to_config { + kind: RAM_1R1W + depth: 8192 + word_partition_size: 16 + } + from_channels_logical_to_physical: { + key: "abstract_read_req" + value: "lz4_encoder__ram_ht_rd_req" + } + from_channels_logical_to_physical: { + key: "abstract_read_resp" + value: "lz4_encoder__ram_ht_rd_resp" + } + from_channels_logical_to_physical: { + key: "abstract_write_req" + value: "lz4_encoder__ram_ht_wr_req" + } + from_channels_logical_to_physical: { + key: "write_completion" + value: "lz4_encoder__ram_ht_wr_comp" + } + to_name_prefix: "ram_ht" +} From becfb46704e4e3ce2068999786c0a6601002e1d9 Mon Sep 17 00:00:00 2001 From: Roman Dobrodii Date: Tue, 29 Aug 2023 20:14:14 +0200 Subject: [PATCH 3/7] examples/ram: make SimultaneousReadWriteBehavior public Make SimultaneousReadWriteBehavior enum public as it can be used from other modules. Signed-off-by: Roman Dobrodii --- xls/examples/ram.x | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xls/examples/ram.x b/xls/examples/ram.x index 7d829b2164..dd78035d4c 100644 --- a/xls/examples/ram.x +++ b/xls/examples/ram.x @@ -55,7 +55,7 @@ pub fn ReadWordReq(addr:uN[ADDR_WIDTH]) -> } // Behavior of reads and writes to the same address in the same "tick". -enum SimultaneousReadWriteBehavior : u2 { +pub enum SimultaneousReadWriteBehavior : u2 { // The read shows the contents at the address before the write. READ_BEFORE_WRITE = 0, // The read shows the contents at the address after the write. From 31567077eb7d4237728fa2fd4d431f3c05d18316 Mon Sep 17 00:00:00 2001 From: Roman Dobrodii Date: Tue, 29 Aug 2023 20:17:06 +0200 Subject: [PATCH 4/7] modules/dbe: simplify Lz4 encoder, improve naming - Simplify Lz4 encoder by removing corner case handling required by Lz4 block format. This allows to remove 1 FIFO, 2 FSM states, and a bunch of convoluted logic that can be easily moved to an external module. - Hash function is factored out into a separate function - Variable naming is improved Signed-off-by: Roman Dobrodii --- xls/modules/dbe/BUILD | 4 +- xls/modules/dbe/common.x | 23 +- xls/modules/dbe/lz4_decoder.x | 506 ++++++++++---------- xls/modules/dbe/lz4_encoder.x | 857 +++++++++++++++++----------------- 4 files changed, 711 insertions(+), 679 deletions(-) diff --git a/xls/modules/dbe/BUILD b/xls/modules/dbe/BUILD index 0c5583c7f0..b93550de2c 100644 --- a/xls/modules/dbe/BUILD +++ b/xls/modules/dbe/BUILD @@ -112,8 +112,6 @@ xls_dslx_library( deps = [ ":dbe_common_dslx", "//xls/examples:ram_dslx", - # decoder is referenced by test code - ":dbe_lz4_decoder_dslx", ], ) @@ -136,7 +134,7 @@ xls_dslx_ir( xls_ir_opt_ir( name = "dbe_lz4_encoder_8k_opt_ir", src = "dbe_lz4_encoder_8k_ir.ir", - top = "__lz4_encoder__encoder_8k__encoder_base_0__16_3_13_12_13_65536_8192_4_16_8_next", + top = "__lz4_encoder__encoder_8k__encoder_base_0__1_4_13_16_16_8_next", ram_rewrites = [ ":lz4_encoder_8k_ram1r1w_rewrites.textproto", ], diff --git a/xls/modules/dbe/common.x b/xls/modules/dbe/common.x index db464c1ce2..e483439bb6 100644 --- a/xls/modules/dbe/common.x +++ b/xls/modules/dbe/common.x @@ -33,21 +33,24 @@ pub fn is_error(mark: Mark) -> bool { } pub enum TokenKind : u2 { - LITERAL = 0, - COPY_POINTER = 1, - MARK = 2, + UNMATCHED_SYMBOL = 0, + MATCHED_SYMBOL = 1, + MATCH = 2, + MARKER = 3, } -pub struct Token { +pub struct Token< + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32 +>{ kind: TokenKind, - literal: uN[SYM_WIDTH], - copy_pointer_offset: uN[PTR_WIDTH], - copy_pointer_count: uN[CNT_WIDTH], + symbol: uN[SYMBOL_WIDTH], + match_offset: uN[MATCH_OFFSET_WIDTH], + match_length: uN[MATCH_LENGTH_WIDTH], mark: Mark } pub struct PlainData { - is_mark: bool, - data: uN[DATA_WIDTH], // symbol - mark: Mark, // marker code + is_marker: bool, + data: uN[DATA_WIDTH], + mark: Mark, } diff --git a/xls/modules/dbe/lz4_decoder.x b/xls/modules/dbe/lz4_decoder.x index 0167485ed6..28611b20db 100644 --- a/xls/modules/dbe/lz4_decoder.x +++ b/xls/modules/dbe/lz4_decoder.x @@ -28,14 +28,14 @@ type AbstractRamReadResp = ram::ReadResp; /// The behavior of our decoder is defined as follows. /// -/// A. History buffer is a buffer of (1< { +struct State { // Write pointer - next location _to be written_ - wr_ptr: uN[PTR_WIDTH], + wr_ptr: uN[MATCH_OFFSET_WIDTH], // Read pointer - next location _to be read_ - rd_ptr: uN[PTR_WIDTH], + rd_ptr: uN[MATCH_OFFSET_WIDTH], // Read counter - remaining number of symbols to be read out from the // history buffer - rd_ctr_rem: uN[CNT_WIDTH], + rd_ctr_rem: uN[MATCH_LENGTH_WIDTH], // Whether we're in the ERROR state err: bool, // Helps to track which cells in HB are written and which ones are not - // (if some COPY_POINTER token points to an unwritten cell, we detect that and + // (if some MATCH token points to an unwritten cell, we detect that and // generate an error, as otherwise that will make decoder output garbage // data that may leak some stale data from previous blocks) hb_all_valid: bool, } -pub proc decoder_base { - encoded_data: chan> in; - plain_data: chan> out; +pub proc decoder_base< + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32 +> { + encoded_data: chan> in; + plain_data: chan> out; /// History buffer RAM - /// Size: (1<> out; - ram_hb_rd_resp: chan> in; - ram_hb_wr_req: chan> out; + /// Size: (1<> out; + ram_hb_rd_resp: chan> in; + ram_hb_wr_req: chan> out; ram_hb_wr_comp: chan in; init { - State { - wr_ptr: uN[PTR_WIDTH]:0, - rd_ptr: uN[PTR_WIDTH]:0, - rd_ctr_rem: uN[CNT_WIDTH]:0, + State { + wr_ptr: uN[MATCH_OFFSET_WIDTH]:0, + rd_ptr: uN[MATCH_OFFSET_WIDTH]:0, + rd_ctr_rem: uN[MATCH_LENGTH_WIDTH]:0, err: false, hb_all_valid: false, } } config ( - encoded_data: chan> in, - plain_data: chan> out, + encoded_data: + chan< + Token + > in, + plain_data: chan> out, // RAM - ram_hb_rd_req: chan> out, - ram_hb_rd_resp: chan> in, - ram_hb_wr_req: chan> out, + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, + ram_hb_wr_req: + chan< + ram::WriteReq + > out, ram_hb_wr_comp: chan in, ) { ( @@ -140,21 +147,25 @@ pub proc decoder_base { ) } - next (tok: token, state: State) { - type DecToken = Token; - type DecData = PlainData; - type HbRamReadResp = AbstractRamReadResp; + next ( + tok: token, + state: State + ) { + type DecToken = + Token; + type DecData = PlainData; + type HbRamReadResp = AbstractRamReadResp; - let is_copying = state.rd_ctr_rem != uN[CNT_WIDTH]:0; + let is_copying = state.rd_ctr_rem != uN[MATCH_LENGTH_WIDTH]:0; let do_recv = !is_copying; // Receive token let (tok, rx) = recv_if(tok, encoded_data, do_recv, zero!()); - let rx_lt = do_recv && rx.kind == TokenKind::LITERAL; - let rx_cp = do_recv && rx.kind == TokenKind::COPY_POINTER; - let rx_mark = do_recv && rx.kind == TokenKind::MARK; + let rx_lt = do_recv && rx.kind == TokenKind::UNMATCHED_SYMBOL; + let rx_cp = do_recv && rx.kind == TokenKind::MATCH; + let rx_mark = do_recv && rx.kind == TokenKind::MARKER; let rx_end = rx_mark && rx.mark == Mark::END; let rx_error = rx_mark && dbe::is_error(rx.mark); let rx_reset = rx_mark && rx.mark == Mark::RESET; @@ -166,11 +177,11 @@ pub proc decoder_base { // Reset, set or increment read pointer let rd_ptr = if rx_reset { - uN[PTR_WIDTH]:0 + uN[MATCH_OFFSET_WIDTH]:0 } else if rx_cp { - state.wr_ptr - rx.copy_pointer_offset - uN[PTR_WIDTH]:1 + state.wr_ptr - rx.match_offset - uN[MATCH_OFFSET_WIDTH]:1 } else if is_copying { - state.rd_ptr + uN[PTR_WIDTH]:1 + state.rd_ptr + uN[MATCH_OFFSET_WIDTH]:1 } else { state.rd_ptr }; @@ -186,7 +197,7 @@ pub proc decoder_base { zero!()); // Generate ERROR_INVAL_CP when we should've read from HB but - // we couldn't because COPY_POINTER points to an invalid location + // we couldn't because MATCH points to an invalid location let err_inval_cp = emit_sym_from_hb && !do_hb_read; // Send decoded data symbol or Mark @@ -194,7 +205,7 @@ pub proc decoder_base { let (data_valid, data) = if rx_reset { // Propagate RESET in all states (true, DecData { - is_mark: true, + is_marker: true, mark: Mark::RESET, ..zero_data }) @@ -204,35 +215,35 @@ pub proc decoder_base { } else if rx_error || rx_end { // Propagate ERROR and END tokens (true, DecData { - is_mark: true, + is_marker: true, mark: rx.mark, ..zero_data }) } else if rx_unexpected_mark { // Generate ERROR_BAD_MARK (true, DecData { - is_mark: true, + is_marker: true, mark: Mark::ERROR_BAD_MARK, ..zero_data }) } else if err_inval_cp { // Generate ERROR_INVAL_CP (true, DecData { - is_mark: true, + is_marker: true, mark: Mark::ERROR_INVAL_CP, ..zero_data }) } else if emit_sym_lit { // Replicate symbol from LITERAL token (true, DecData { - is_mark: false, - data: rx.literal, + is_marker: false, + data: rx.symbol, ..zero_data }) } else if emit_sym_from_hb { // Replicate symbol from HB (true, DecData { - is_mark: false, + is_marker: false, data: hb_rd.data, ..zero_data }) @@ -242,7 +253,7 @@ pub proc decoder_base { let tok = send_if(tok, plain_data, data_valid, data); // HB WRITE - write emitted symbol to the history buffer - let do_hb_write = data_valid && !data.is_mark; + let do_hb_write = data_valid && !data.is_marker; let tok = send_if(tok, ram_hb_wr_req, do_hb_write, ram::WriteWordReq(state.wr_ptr, data.data)); let (tok, _) = recv_if(tok, ram_hb_wr_comp, do_hb_write, @@ -250,9 +261,9 @@ pub proc decoder_base { // Reset/increment write pointer let wr_ptr = if rx_reset { - uN[PTR_WIDTH]:0 + uN[MATCH_OFFSET_WIDTH]:0 } else if do_hb_write { - state.wr_ptr + uN[PTR_WIDTH]:1 + state.wr_ptr + uN[MATCH_OFFSET_WIDTH]:1 } else { state.wr_ptr }; @@ -261,7 +272,7 @@ pub proc decoder_base { // that means we've filled the complete HB, so set a corresponding flag let hb_all_valid = if rx_reset { false - } else if do_hb_write && wr_ptr == uN[PTR_WIDTH]:0 { + } else if do_hb_write && wr_ptr == uN[MATCH_OFFSET_WIDTH]:0 { true } else { state.hb_all_valid @@ -269,11 +280,11 @@ pub proc decoder_base { // Read count set & decrement let rd_ctr_rem = if rx_reset { - uN[CNT_WIDTH]:0 + uN[MATCH_LENGTH_WIDTH]:0 } else if rx_cp { - rx.copy_pointer_count + rx.match_length } else if is_copying { - state.rd_ctr_rem - uN[CNT_WIDTH]:1 + state.rd_ctr_rem - uN[MATCH_LENGTH_WIDTH]:1 } else { state.rd_ctr_rem }; @@ -299,30 +310,37 @@ pub proc decoder_base { /// Version of `decoder` with embedded RamModel /// Intended to be used only for tests -pub proc decoder_base_modelram { +pub proc decoder_base_modelram< + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32 +> { init{()} config ( - encoded_data: chan> in, - plain_data: chan> out, + encoded_data: + chan< + Token + > in, + plain_data: chan> out, ) { let (hb_wr_req_s, hb_wr_req_r) = - chan>; + chan>; let (hb_wr_comp_s, hb_wr_comp_r) = chan; let (hb_rd_req_s, hb_rd_req_r) = - chan>; + chan>; let (hb_rd_resp_s, hb_rd_resp_r) = - chan>; + chan>; - spawn ram::RamModel - (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); + spawn ram::RamModel< + SYMBOL_WIDTH, {u32:1<(hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); - spawn decoder_base - ( - encoded_data, plain_data, - hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, - ); + spawn decoder_base< + SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, MATCH_LENGTH_WIDTH + >( + encoded_data, plain_data, + hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, + ); } next (tok: token, state: ()) { @@ -330,25 +348,27 @@ pub proc decoder_base_modelram { } /// Version of `decoder_base` compatible with classic LZ4 algorithm -pub const LZ4C_SYM_WIDTH = u32:8; -pub const LZ4C_PTR_WIDTH = u32:16; -pub const LZ4C_CNT_WIDTH = u32:16; +pub const LZ4C_SYMBOL_WIDTH = u32:8; +pub const LZ4C_OFFSET_WIDTH = u32:16; +pub const LZ4C_COUNT_WIDTH = u32:16; pub proc decoder { init{} config ( encoded_data: - chan> in, - plain_data: chan> out, - ram_hb_rd_req: chan> out, - ram_hb_rd_resp: chan> in, + chan< + Token + > in, + plain_data: chan> out, + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, ram_hb_wr_req: - chan> out, + chan> out, ram_hb_wr_comp: chan in, ) { spawn decoder_base - + ( encoded_data, plain_data, ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, @@ -366,20 +386,22 @@ pub proc decoder_modelram { config ( encoded_data: - chan> in, - plain_data: chan> out, + chan< + Token + > in, + plain_data: chan> out, ) { let (hb_wr_req_s, hb_wr_req_r) = - chan>; + chan>; let (hb_wr_comp_s, hb_wr_comp_r) = chan; let (hb_rd_req_s, hb_rd_req_r) = - chan>; + chan>; let (hb_rd_resp_s, hb_rd_resp_r) = - chan>; + chan>; spawn ram::RamModel - + (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); spawn decoder @@ -399,159 +421,159 @@ pub proc decoder_modelram { /// import xls.modules.dbe.common_test as test -const TST_SYM_WIDTH = u32:4; -const TST_PTR_WIDTH = u32:3; -const TST_CNT_WIDTH = u32:4; +const TEST_SYMBOL_WIDTH = u32:4; +const TEST_OFFSET_WIDTH = u32:3; +const TEST_COUNT_WIDTH = u32:4; // Reference input -const TST_SIMPLE_INPUT_LEN = u32:32; -const TST_SIMPLE_INPUT = Token[TST_SIMPLE_INPUT_LEN]: [ - Token{kind: TokenKind::LITERAL, literal: uN[4]:12, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 1, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]:15, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 9, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]:11, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 1, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 0, copy_pointer_count: uN[4]: 2, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 4, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]:15, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 2, copy_pointer_count: uN[4]:13, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 1, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]: 2, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 7, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 2, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 0, copy_pointer_count: uN[4]:11, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 6, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]:15, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 3, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 9, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]: 1, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 3, copy_pointer_count: uN[4]:13, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]:14, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 1, copy_pointer_count: uN[4]: 2, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 0, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 7, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]:15, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 4, copy_pointer_count: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: uN[4]:0, copy_pointer_offset: uN[3]: 5, copy_pointer_count: uN[4]:11, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: uN[4]: 8, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MARK, literal: uN[4]:0, copy_pointer_offset: uN[3]:0, copy_pointer_count: uN[4]:0, mark: Mark::END} +const TEST_SIMPLE_INPUT_LEN = u32:32; +const TEST_SIMPLE_INPUT = Token[TEST_SIMPLE_INPUT_LEN]: [ + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:12, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 1, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:15, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 9, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:11, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 1, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 0, match_length: uN[4]: 2, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 4, match_length: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:15, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 2, match_length: uN[4]:13, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 1, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]: 2, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 7, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 2, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 0, match_length: uN[4]:11, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 6, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]:15, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 3, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 9, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]: 1, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 3, match_length: uN[4]:13, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:14, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 2, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 0, match_length: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 7, match_length: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:15, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 4, match_length: uN[4]: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]:11, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 8, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, + Token{kind: TokenKind::MARKER, symbol: uN[4]:0, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::END} ]; // Reference output -const TST_SIMPLE_OUTPUT_LEN = u32:109; -const TST_SIMPLE_OUTPUT = PlainData[TST_SIMPLE_OUTPUT_LEN]: [ - PlainData{is_mark: false, data: uN[4]:12, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:1, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:1, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_mark: false, data: uN[4]:8, mark: Mark::NONE}, - PlainData{is_mark: true, data: uN[4]:0, mark: Mark::END} +const TEST_SIMPLE_OUTPUT_LEN = u32:109; +const TEST_SIMPLE_OUTPUT = PlainData[TEST_SIMPLE_OUTPUT_LEN]: [ + PlainData{is_marker: false, data: uN[4]:12, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: uN[4]:8, mark: Mark::NONE}, + PlainData{is_marker: true, data: uN[4]:0, mark: Mark::END} ]; #[test_proc] @@ -564,19 +586,23 @@ proc test_simple { config(term: chan out) { // tokens from sender and to decoder let (send_toks_s, send_toks_r) = - chan>; + chan< + Token + >; // symbols & last indicator from receiver - let (recv_data_s, recv_data_r) = chan>; + let (recv_data_s, recv_data_r) = chan>; let (recv_last_s, recv_last_r) = chan; - spawn test::token_sender - - (TST_SIMPLE_INPUT, send_toks_s); - spawn decoder_base_modelram( - send_toks_r, recv_data_s); - spawn test::data_validator( - TST_SIMPLE_OUTPUT, recv_data_r, recv_last_s); + spawn test::token_sender< + TEST_SIMPLE_INPUT_LEN, TEST_SYMBOL_WIDTH, TEST_OFFSET_WIDTH, + TEST_COUNT_WIDTH + >(TEST_SIMPLE_INPUT, send_toks_s); + spawn decoder_base_modelram< + TEST_SYMBOL_WIDTH, TEST_OFFSET_WIDTH, TEST_COUNT_WIDTH + >(send_toks_r, recv_data_s); + spawn test::data_validator( + TEST_SIMPLE_OUTPUT, recv_data_r, recv_last_s); (term, recv_last_r) } diff --git a/xls/modules/dbe/lz4_encoder.x b/xls/modules/dbe/lz4_encoder.x index 2110e4ab66..62d64d75b4 100644 --- a/xls/modules/dbe/lz4_encoder.x +++ b/xls/modules/dbe/lz4_encoder.x @@ -24,11 +24,13 @@ type AbstractRamWriteReq = ram::WriteReq; type AbstractRamWriteResp = ram::WriteResp; type AbstractRamReadReq = ram::ReadReq; type AbstractRamReadResp = ram::ReadResp; +type SimultaneousReadWriteBehavior = ram::SimultaneousReadWriteBehavior; fn fifo_shift_left( fifo: uN[DATA_WIDTH][FIFO_SIZE], - data: uN[DATA_WIDTH]) -> uN[DATA_WIDTH][FIFO_SIZE] { + data: uN[DATA_WIDTH] +) -> uN[DATA_WIDTH][FIFO_SIZE] { let fifo = for (i, arr): (u32, uN[DATA_WIDTH][FIFO_SIZE]) in u32:1..FIFO_SIZE { update(arr, i - u32:1, fifo[i]) @@ -37,15 +39,32 @@ fn fifo_shift_left( fifo } -fn fifo_shift_right( - fifo: uN[DATA_WIDTH][FIFO_SIZE], - data: uN[DATA_WIDTH]) -> uN[DATA_WIDTH][FIFO_SIZE] { - let fifo = for (i, arr): (u32, uN[DATA_WIDTH][FIFO_SIZE]) - in u32:1..FIFO_SIZE { - update(arr, i, fifo[i - u32:1]) - } (uN[DATA_WIDTH][FIFO_SIZE]: [0, ...]); - let fifo = update(fifo, u32:0, data); - fifo +fn fibbonacci_factor(width: u32) -> u64 { + // This is equal to: + // round((1 << width) / golden), where golden=1.618033989... + match width { + u32:16 => u64:40503, + u32:24 => u64:10368890, + u32:32 => u64:2654435769, + u32:48 => u64:173961102589771, + u32:64 => u64:11400714819323198485, + _ => fail!("unsupported_fibbonacci_factor", u64:0), + } +} + +fn hash_fibonacci< + SYMBOL_WIDTH: u32, HASH_SYMBOLS: u32, HASH_WIDTH: u32, + TOTAL_WIDTH: u32 = {SYMBOL_WIDTH * HASH_SYMBOLS}, + FACTOR: u64 = {fibbonacci_factor(TOTAL_WIDTH)} +> ( + symbols: uN[SYMBOL_WIDTH][HASH_SYMBOLS] +) -> uN[HASH_WIDTH] { + // Flatten the input, placing symbol 0 into LSBs + let input_word = array_rev(symbols) as uN[TOTAL_WIDTH]; + // Calculate the full hash + let hash = input_word * (FACTOR as uN[TOTAL_WIDTH]); + // Truncate, leaving only MSBs + (hash >> (TOTAL_WIDTH - HASH_WIDTH)) as uN[HASH_WIDTH] } enum FsmSt: u4 { @@ -53,99 +72,108 @@ enum FsmSt: u4 { HASH_TABLE_CLEAR = 1, RESTART = 2, FIFO_PREFILL = 3, - FIFO_POSTFILL = 4, - START_MATCH_0 = 5, - START_MATCH_1 = 6, - CONTINUE_MATCH_0 = 7, - CONTINUE_MATCH_1 = 8, - EMIT_SHORT_MATCH = 9, - EMIT_FINAL_LITERALS = 10, - EMIT_END = 11, - ERROR = 12, + START_MATCH_0 = 4, + START_MATCH_1 = 5, + CONTINUE_MATCH_0 = 6, + CONTINUE_MATCH_1 = 7, + FIFO_DRAIN = 8, + EMIT_END = 9, + ERROR = 10, } -struct State { - fifo_cache: uN[SYM_WIDTH][FIFO_CACHE_SZ], - fifo_in: uN[SYM_WIDTH][FIFO_IN_SZ], +struct State< + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32, + HASH_SYMBOLS: u32, HASH_WIDTH: u32 +> { + fifo_in: uN[SYMBOL_WIDTH][HASH_SYMBOLS], fifo_in_count: u32, - fifo_in_nvalid: u32, - wp: uN[PTR_WIDTH], + hb_wr_ptr: uN[MATCH_OFFSET_WIDTH], hb_all_valid: bool, - pnew: uN[PTR_WIDTH], - pold: uN[PTR_WIDTH], - match_nconts: u32, - ht_ptr: uN[HASH_BITS], + hb_match_ptr: uN[MATCH_OFFSET_WIDTH], + match_offset: uN[MATCH_OFFSET_WIDTH], + match_length: uN[MATCH_LENGTH_WIDTH], + ht_ptr: uN[HASH_WIDTH], recycle: bool, finalize: bool, + is_match_dly: bool, fsm: FsmSt, } -fn init_state() - -> State { +fn init_state< + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32, + HASH_SYMBOLS: u32, HASH_WIDTH: u32 +> () -> State< + SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, MATCH_LENGTH_WIDTH, + HASH_SYMBOLS, HASH_WIDTH +> { State{ - fifo_cache: uN[SYM_WIDTH][FIFO_CACHE_SZ]: [uN[SYM_WIDTH]:0, ...], - fifo_in: uN[SYM_WIDTH][FIFO_IN_SZ]: [uN[SYM_WIDTH]:0, ...], + fifo_in: uN[SYMBOL_WIDTH][HASH_SYMBOLS]: [uN[SYMBOL_WIDTH]:0, ...], fifo_in_count: u32:0, - fifo_in_nvalid: u32:0, - wp: uN[PTR_WIDTH]:0, + hb_wr_ptr: uN[MATCH_OFFSET_WIDTH]:0, hb_all_valid: false, - pnew: uN[PTR_WIDTH]:0, - pold: uN[PTR_WIDTH]:0, - match_nconts: u32:0, - ht_ptr: uN[HASH_BITS]:0, + hb_match_ptr: uN[MATCH_OFFSET_WIDTH]:0, + match_offset: uN[MATCH_OFFSET_WIDTH]:0, + match_length: uN[MATCH_LENGTH_WIDTH]:0, + ht_ptr: uN[HASH_WIDTH]:0, recycle: false, finalize: false, + is_match_dly: false, fsm: FsmSt::RESET } } pub proc encoder_base< - SYM_WIDTH: u32, PTR_WIDTH: u32, CNT_WIDTH: u32, HASH_BITS: u32, - MINMATCH: u32 = {u32:4}, FINAL_LITERALS: u32 = {u32:12}, - FIFO_CACHE_SZ: u32 = {MINMATCH - u32:1}, - FIFO_IN_SZ: u32 = {std::umax(MINMATCH, FINAL_LITERALS + u32:1)}, - HB_RAM_SZ: u32 = {u32:1 << PTR_WIDTH}, - HT_RAM_SZ: u32 = {u32:1 << HASH_BITS}> { - plain_data: chan> in; - encoded_data: chan> out; + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32, + HASH_SYMBOLS: u32, HASH_WIDTH: u32, DO_CLEAR_HASH_TABLE: bool +> { + plain_data: chan> in; + encoded_data: + chan> out; /// History buffer RAM - /// Size: (1<> out; - ram_hb_rd_resp: chan> in; - ram_hb_wr_req: chan> out; + /// Size: (1<> out; + ram_hb_rd_resp: chan> in; + ram_hb_wr_req: + chan> out; ram_hb_wr_comp: chan in; /// Hash table RAM - /// Size: (1<> out; - ram_ht_rd_resp: chan> in; - ram_ht_wr_req: chan> out; + /// Size: (1<> out; + ram_ht_rd_resp: chan> in; + ram_ht_wr_req: + chan> out; ram_ht_wr_comp: chan in; init { - init_state() + init_state< + SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, MATCH_LENGTH_WIDTH, + HASH_SYMBOLS, HASH_WIDTH + >() } config ( // Data in, tokens out - plain_data: chan> in, - encoded_data: chan> out, + plain_data: chan> in, + encoded_data: + chan< + Token + > out, // RAM - ram_hb_rd_req: chan> out, - ram_hb_rd_resp: chan> in, - ram_hb_wr_req: chan> out, + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, + ram_hb_wr_req: + chan< + AbstractRamWriteReq + > out, ram_hb_wr_comp: chan in, - ram_ht_rd_req: chan> out, - ram_ht_rd_resp: chan> in, - ram_ht_wr_req: chan> out, + ram_ht_rd_req: chan> out, + ram_ht_rd_resp: chan> in, + ram_ht_wr_req: + chan< + AbstractRamWriteReq + > out, ram_ht_wr_comp: chan in, ) { ( @@ -156,14 +184,17 @@ pub proc encoder_base< } next (tok: token, cur: State) { - type EncToken = Token; - type EncData = PlainData; - type HbRamReadReq = AbstractRamReadReq; - type HbRamReadResp = AbstractRamReadResp; - type HbRamWriteReq = AbstractRamWriteReq; - type HtRamReadReq = AbstractRamReadReq; - type HtRamReadResp = AbstractRamReadResp; - type HtRamWriteReq = AbstractRamWriteReq; + type EncToken = + Token; + type EncData = PlainData; + type HbRamReadReq = AbstractRamReadReq; + type HbRamReadResp = AbstractRamReadResp; + type HbRamWriteReq = + AbstractRamWriteReq; + type HtRamReadReq = AbstractRamReadReq; + type HtRamReadResp = AbstractRamReadResp; + type HtRamWriteReq = + AbstractRamWriteReq; let upd = cur; @@ -180,219 +211,196 @@ pub proc encoder_base< zero!()); // Classify input markers - let rx_symbol = do_recv && !rx.is_mark; - let rx_mark = do_recv && rx.is_mark; + let rx_symbol = do_recv && !rx.is_marker; + let rx_mark = do_recv && rx.is_marker; let rx_end = rx_mark && rx.mark == Mark::END; let rx_error = rx_mark && dbe::is_error(rx.mark); let rx_reset = rx_mark && rx.mark == Mark::RESET; let rx_unexpected_mark = rx_mark && !(rx_end || rx_reset || rx_error); let upd = if cur.fsm == FsmSt::ERROR || cur.recycle { - // Do not shift FIFOs / write HB in these states + // Do not shift FIFO in these states upd } else if rx_symbol { - let wp = upd.wp + uN[PTR_WIDTH]:1; - // Update state, shift input FIFOs let upd = State{ - wp: wp, - fifo_cache: - fifo_shift_right(upd.fifo_cache, upd.fifo_in[0]), fifo_in: fifo_shift_left(upd.fifo_in, rx.data), - hb_all_valid: - if wp == uN[PTR_WIDTH]:0 {true} else {upd.hb_all_valid}, fifo_in_count: - std::umin(upd.fifo_in_count + u32:1, FIFO_IN_SZ), + std::umin(upd.fifo_in_count + u32:1, HASH_SYMBOLS), ..upd }; upd } else if rx_end { // When receiving END marker, shift input FIFO anyhow as we're - // expected to drop the symbol at OP - let new_count = std::umin(upd.fifo_in_count + u32:1, FIFO_IN_SZ); + // expected to drop the current symbol let upd = State{ finalize: true, - fifo_cache: - fifo_shift_right(upd.fifo_cache, upd.fifo_in[0]), fifo_in: - fifo_shift_left(upd.fifo_in, uN[SYM_WIDTH]:0), - fifo_in_count: new_count, - fifo_in_nvalid: new_count - u32:1, + fifo_shift_left(upd.fifo_in, uN[SYMBOL_WIDTH]:0), + fifo_in_count: + std::umax(upd.fifo_in_count, u32:1) - u32:1, ..upd }; upd - } else if ( - cur.fsm == FsmSt::FIFO_POSTFILL - || cur.fsm == FsmSt::EMIT_FINAL_LITERALS - ) { + } else if cur.fsm == FsmSt::FIFO_DRAIN { // Feed input FIFO with 0s and shift - let (new_count, new_nvalid) = if cur.fsm == FsmSt::FIFO_POSTFILL { - ( - std::umin(upd.fifo_in_count + u32:1, FIFO_IN_SZ), - upd.fifo_in_nvalid - ) - } else { - ( - upd.fifo_in_count, - upd.fifo_in_nvalid - u32:1 - ) - }; let upd = State{ fifo_in: - fifo_shift_left(upd.fifo_in, uN[SYM_WIDTH]:0), - fifo_in_count: new_count, - fifo_in_nvalid: new_nvalid, + fifo_shift_left(upd.fifo_in, uN[SYMBOL_WIDTH]:0), + fifo_in_count: + std::umax(upd.fifo_in_count, u32:1) - u32:1, ..upd }; upd } else { upd }; + + // Current symbol and its location in HB + let current_symbol = upd.fifo_in[u32:0]; + // Address of current symbol in HB + let current_ptr = if !cur.recycle { + // When 'current' symbol is not recycled, it is not yet in HB, so + // its address is the address of the next unwritten location, + // 'hb_wr_ptr', but when it has been recycled, it's already in + // the HB, we need the address of the last written location. + upd.hb_wr_ptr + } else { + upd.hb_wr_ptr - uN[MATCH_OFFSET_WIDTH]:1 + }; - // Calculate origin pointer OP from WP - let op = ((upd.wp as u32) - FIFO_IN_SZ + u32:1) as uN[PTR_WIDTH]; - - // Calculate u32 Fibonacci hash function - let hsh_input = (upd.fifo_in[3] as u8) - ++ (upd.fifo_in[2] as u8) - ++ (upd.fifo_in[1] as u8) - ++ (upd.fifo_in[0] as u8); - let hsh32 = hsh_input * u32:2654435761; - let hsh = (hsh32 >> (u32:32 - HASH_BITS)) as uN[HASH_BITS]; + // Calculate hash function + let hash = hash_fibonacci< + SYMBOL_WIDTH, HASH_SYMBOLS, HASH_WIDTH + >(upd.fifo_in); // NOTE: HT RAM, HB RAM accesses and o_token emission all happen // in parallel. - // Read HT RAM + // Read HT RAM (stage 0) let (ht_rd_vld, ht_rd_req) = if cur.fsm == FsmSt::START_MATCH_0 { - (true, ram::ReadWordReq(hsh)) + (true, ram::ReadWordReq(hash)) } else { (false, zero!()) }; let tok_ht = send_if(tok, ram_ht_rd_req, ht_rd_vld, ht_rd_req); let (tok_ht, ht_rd_resp) = recv_if(tok_ht, ram_ht_rd_resp, ht_rd_vld, zero!()); + let possible_match_ptr = ht_rd_resp.data; - // Write HT RAM - let (ht_wr_vld, ht_wr_req) = if cur.fsm == FsmSt::START_MATCH_1 { - (true, ram::WriteWordReq(hsh, op)) - } else if cur.fsm == FsmSt::HASH_TABLE_CLEAR { - (true, ram::WriteWordReq(upd.ht_ptr, uN[PTR_WIDTH]:0)) + // Update matching string pointer + let upd = if cur.fsm == FsmSt::START_MATCH_0 { + State { + hb_match_ptr: possible_match_ptr, + match_offset: current_ptr - possible_match_ptr, + match_length: uN[MATCH_LENGTH_WIDTH]:0, + ..upd + } + } else if cur.fsm == FsmSt::CONTINUE_MATCH_0 { + State { + hb_match_ptr: upd.hb_match_ptr + uN[MATCH_OFFSET_WIDTH]:1, + ..upd + } } else { - (false, zero!()) + upd }; - let tok_ht = send_if(tok, ram_ht_wr_req, ht_wr_vld, ht_wr_req); - let (tok_ht, _) = recv_if(tok_ht, ram_ht_wr_comp, ht_wr_vld, - zero!()); - // Update match pointers & HT ptr used to clean hash table - let upd = if cur.fsm == FsmSt::START_MATCH_0 { + // Prepare for matching + let do_match = + cur.fsm == FsmSt::START_MATCH_0 + || cur.fsm == FsmSt::CONTINUE_MATCH_0; + + // Read HB RAM (if match_ptr points to an already-written location) + let hb_match_ptr_valid = + upd.hb_all_valid || (upd.hb_match_ptr < current_ptr); + let (hb_rd_vld, hb_rd_req) = if do_match && hb_match_ptr_valid { + (true, ram::ReadWordReq(upd.hb_match_ptr)) + } else { + (false, zero!()) + }; + let tok_hb = send_if(tok, ram_hb_rd_req, hb_rd_vld, hb_rd_req); + let (tok_hb, hb_rd_resp) = recv_if(tok_hb, ram_hb_rd_resp, hb_rd_vld, + zero!()); + let candidate_symbol = hb_rd_resp.data; + + // Check for match + // - disallow matches with offset equal to 0 (or HB_SIZE) + // - terminate the match if the match string is at max len + // - terminate the match if END token has been received + let is_match = ( + do_match && hb_match_ptr_valid + && candidate_symbol == current_symbol + && upd.match_offset != uN[MATCH_OFFSET_WIDTH]:0 + && upd.match_length < std::unsigned_max_value() + && !upd.finalize + ); + + // Update match length + let upd = if is_match && cur.fsm == FsmSt::CONTINUE_MATCH_0 { State { - pold: ht_rd_resp.data, - pnew: op, + match_length: upd.match_length + uN[MATCH_LENGTH_WIDTH]:1, ..upd } - } else if cur.fsm == FsmSt::HASH_TABLE_CLEAR { + } else { + upd + }; + + // Update ht_ptr used when clearing HT RAM + let upd = if cur.fsm == FsmSt::HASH_TABLE_CLEAR { State { - ht_ptr: upd.ht_ptr + uN[HASH_BITS]:1, + ht_ptr: upd.ht_ptr + uN[HASH_WIDTH]:1, ..upd } } else { upd }; - // Prepare to check for a match - let (mchk_do, mchk_pos, mchk_canextend) = if ( - cur.fsm == FsmSt::START_MATCH_1 - ) { - ( - true, - upd.pold, - true - ) - } else if (cur.fsm == FsmSt::CONTINUE_MATCH_1) { + // Write HT RAM + let (ht_wr_vld, ht_wr_req) = if cur.fsm == FsmSt::START_MATCH_1 { + (true, ram::WriteWordReq(hash, current_ptr)) + } else if cur.fsm == FsmSt::HASH_TABLE_CLEAR { ( true, - upd.pold + upd.match_nconts as uN[PTR_WIDTH] + uN[PTR_WIDTH]:1, - upd.match_nconts < ((u32:1 << CNT_WIDTH) - u32:1) + ram::WriteWordReq(upd.ht_ptr, uN[MATCH_OFFSET_WIDTH]:0) ) } else { - ( - false, - uN[PTR_WIDTH]:0, - false - ) - }; - - // Do not match-check unwritten (uninitialized) HB RAM locations - let mchk_is_hb_written = - upd.hb_all_valid - || (mchk_pos >= uN[PTR_WIDTH]:1 && mchk_pos < upd.wp); - - - // Read HB RAM - let (hb_rd_vld, hb_rd_req) = if mchk_do && mchk_is_hb_written { - (true, ram::ReadWordReq(mchk_pos)) - } else { - (false, zero!()) + (false, zero!()) }; - let tok_hb = send_if(tok, ram_hb_rd_req, hb_rd_vld, hb_rd_req); - let (tok_hb, hb_rd_resp) = recv_if(tok_hb, ram_hb_rd_resp, hb_rd_vld, - zero!()); + let tok_ht = send_if(tok, ram_ht_wr_req, ht_wr_vld, ht_wr_req); + let (tok_ht, _) = recv_if(tok_ht, ram_ht_wr_comp, ht_wr_vld, + zero!()); // Write HB RAM - let (hb_wr_vld, hb_wr_req) = if rx_symbol && cur.fsm != FsmSt::ERROR { - (true, ram::WriteWordReq(upd.wp, rx.data)) + let do_write_hb = + !cur.recycle && ( + cur.fsm == FsmSt::START_MATCH_1 + || cur.fsm == FsmSt::CONTINUE_MATCH_1 + || cur.fsm == FsmSt::FIFO_DRAIN + ); + let (hb_wr_vld, hb_wr_req) = if do_write_hb { + (true, ram::WriteWordReq(upd.hb_wr_ptr, current_symbol)) } else { (false, zero!()) }; let tok_hb = send_if(tok, ram_hb_wr_req, hb_wr_vld, hb_wr_req); let (tok_hb, _) = recv_if(tok_hb, ram_hb_wr_comp, hb_wr_vld, zero!()); - - // Actually check for a match - let is_match = if mchk_do { - let sym = hb_rd_resp.data; - // For match to happen, following criteria have to be met: - // 1. pos should not point to an unwritten HB entry - // (see `mchk_is_hb_written` above) - // 2. pos should not point between OP and WP inclusive - let isold = (mchk_pos - op) > (upd.wp - op); - // 3. sym should match current origin symbol - let _matches = sym == upd.fifo_in[0]; - // 4. our existing matching string should not be too long - (mchk_is_hb_written && isold && _matches && mchk_canextend) - } else { - false - }; - - // Update match_nconts - let upd = State{ - match_nconts: if cur.fsm == FsmSt::START_MATCH_1 { - u32:0 - } else if cur.fsm == FsmSt::CONTINUE_MATCH_1 { - upd.match_nconts + u32:1 - } else if cur.fsm == FsmSt::EMIT_SHORT_MATCH { - upd.match_nconts - u32:1 - } else { - upd.match_nconts - }, - ..upd - }; - // Handle match termination - let ( - is_match_terminated, - match_len, - match_is_long - ) = if cur.fsm == FsmSt::CONTINUE_MATCH_1 { - ( - !is_match || upd.finalize, - upd.match_nconts, - upd.match_nconts >= MINMATCH, - ) + // Update hb_wr_ptr + let upd = if do_write_hb { + let hb_wr_ptr = upd.hb_wr_ptr + uN[MATCH_OFFSET_WIDTH]:1; + State { + hb_wr_ptr: hb_wr_ptr, + hb_all_valid: + if hb_wr_ptr == uN[MATCH_OFFSET_WIDTH]:0 { + true + } else { + upd.hb_all_valid + }, + ..upd + } } else { - (false, u32:0, false) + upd }; // Emit compressed data token @@ -400,7 +408,7 @@ pub proc encoder_base< let (do_emit, encoded_tok) = if rx_reset { // Propagate RESET (true, Token{ - kind: TokenKind::MARK, + kind: TokenKind::MARKER, mark: Mark::RESET, ..zero_tok }) @@ -410,62 +418,69 @@ pub proc encoder_base< } else if rx_error { // Propagate error (true, Token{ - kind: TokenKind::MARK, + kind: TokenKind::MARKER, mark: rx.mark, ..zero_tok }) } else if rx_unexpected_mark { // Generate error (true, Token{ - kind: TokenKind::MARK, + kind: TokenKind::MARKER, mark: Mark::ERROR_BAD_MARK, ..zero_tok }) - } else if ( - cur.fsm == FsmSt::START_MATCH_1 && - (!is_match || upd.finalize) - ) { - // Emit symbol at OP as literal - (true, Token{ - kind: TokenKind::LITERAL, - literal: upd.fifo_in[0], - ..zero_tok - }) - } else if cur.fsm == FsmSt::CONTINUE_MATCH_1 && is_match_terminated { - // If match is long enough, emit a single CP - // If not, emit symbols from Cache FIFO as literals - if match_is_long { - let off = upd.pnew - upd.pold; - let t = Token { - kind: TokenKind::COPY_POINTER, - copy_pointer_offset: off - uN[PTR_WIDTH]:1, - copy_pointer_count: (match_len - u32:1) as uN[CNT_WIDTH], + } else if cur.fsm == FsmSt::START_MATCH_0 { + if is_match { + // First symbol in a match - emit as matched + (true, Token{ + kind: TokenKind::MATCHED_SYMBOL, + symbol: current_symbol, ..zero_tok - }; - (true, t) + }) } else { + // Emit current symbol as unmatched + (true, Token{ + kind: TokenKind::UNMATCHED_SYMBOL, + symbol: current_symbol, + ..zero_tok + }) + } + } else if cur.fsm == FsmSt::CONTINUE_MATCH_0 { + if !is_match { + // Emit a single MATCH token (true, Token { - kind: TokenKind::LITERAL, - literal: upd.fifo_cache[upd.match_nconts - u32:1], + kind: TokenKind::MATCH, + match_offset: upd.match_offset - uN[MATCH_OFFSET_WIDTH]:1, + match_length: upd.match_length, + ..zero_tok + }) + } else { + // Match continues, we emit all symbols as MATCHED_SYMBOLs + (true, Token{ + kind: TokenKind::MATCHED_SYMBOL, + symbol: current_symbol, ..zero_tok }) } - } else if cur.fsm == FsmSt::EMIT_SHORT_MATCH { - (true, Token { - kind: TokenKind::LITERAL, - literal: upd.fifo_cache[upd.match_nconts - u32:1], - ..zero_tok - }) - } else if cur.fsm == FsmSt::EMIT_FINAL_LITERALS { - // We dump literals from Input FIFO till nvalid becomes 0 + } else if cur.fsm == FsmSt::FIFO_PREFILL { + if upd.finalize && upd.fifo_in_count >= u32:1 { + (true, Token { + kind: TokenKind::UNMATCHED_SYMBOL, + symbol: current_symbol, + ..zero_tok + }) + } else { + (false, zero_tok) + } + } else if cur.fsm == FsmSt::FIFO_DRAIN { (true, Token { - kind: TokenKind::LITERAL, - literal: upd.fifo_in[u32:0], + kind: TokenKind::UNMATCHED_SYMBOL, + symbol: current_symbol, ..zero_tok }) } else if cur.fsm == FsmSt::EMIT_END { (true, Token { - kind: TokenKind::MARK, + kind: TokenKind::MARKER, mark: Mark::END, ..zero_tok }) @@ -478,14 +493,14 @@ pub proc encoder_base< let upd = if cur.fsm == FsmSt::RESET { // Full reset // NOTE: .fsm value will be overridden by the state change logic - init_state() + init_state< + SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, MATCH_LENGTH_WIDTH, + HASH_SYMBOLS, HASH_WIDTH + >() } else if cur.fsm == FsmSt::RESTART { // Intra-block partial reset, keeping HB and HT intact State { fifo_in_count: u32:0, - fifo_in_nvalid: u32:0, - match_nconts: u32:0, finalize: false, recycle: false, ..upd @@ -501,90 +516,68 @@ pub proc encoder_base< FsmSt::RESET } else { match cur.fsm { - FsmSt::RESET => FsmSt::HASH_TABLE_CLEAR, + FsmSt::RESET => { + if DO_CLEAR_HASH_TABLE { + FsmSt::HASH_TABLE_CLEAR + } else { + FsmSt::RESTART + } + }, FsmSt::HASH_TABLE_CLEAR => { - if upd.ht_ptr == uN[HASH_BITS]:0 { + if upd.ht_ptr == uN[HASH_WIDTH]:0 { FsmSt::RESTART } else { cur.fsm } }, - FsmSt::RESTART => FsmSt::FIFO_PREFILL, + FsmSt::RESTART => { + if HASH_SYMBOLS > u32:1 { + FsmSt::FIFO_PREFILL + } else { + // When entering START_MATCH_0, there should be + // exactly 1 unfilled spot in the FIFO since it will + // be filled by START_MATCH_0 itself + FsmSt::START_MATCH_0 + } + }, FsmSt::FIFO_PREFILL => { if rx_end { - if upd.fifo_in_nvalid > u32:0 { - if upd.fifo_in_count < FIFO_IN_SZ { - FsmSt::FIFO_POSTFILL - } else { - FsmSt::EMIT_FINAL_LITERALS - } + if upd.fifo_in_count >= u32:2 { + FsmSt::FIFO_DRAIN } else { - // This handles empty input blocks + // If there was 1 symbol in the block it has been + // already handled by FIFO_PREFILL state FsmSt::EMIT_END } - } else if upd.fifo_in_count >= FIFO_IN_SZ { + } else if upd.fifo_in_count == (HASH_SYMBOLS - u32:1) { + // One empty spot will be filled in by START_MATCH + // itself, we can start matching FsmSt::START_MATCH_0 } else { cur.fsm } }, FsmSt::START_MATCH_0 => FsmSt::START_MATCH_1, - FsmSt::START_MATCH_1 => { - if upd.finalize { - FsmSt::EMIT_FINAL_LITERALS - } else if is_match { - FsmSt::CONTINUE_MATCH_0 - } else { - FsmSt::START_MATCH_0 - } - }, FsmSt::CONTINUE_MATCH_0 => FsmSt::CONTINUE_MATCH_1, - FsmSt::CONTINUE_MATCH_1 => { - if is_match_terminated { - // Match failed or interrupted - if match_is_long || upd.match_nconts == u32:1 { - // Copy pointer or a sole literal has been - // emitted - if upd.finalize { - FsmSt::EMIT_FINAL_LITERALS - } else { - FsmSt::START_MATCH_0 - } + FsmSt::START_MATCH_1 | FsmSt::CONTINUE_MATCH_1 => { + if upd.finalize { + if HASH_SYMBOLS > u32:1 { + FsmSt::FIFO_DRAIN } else { - // Still need to emit some literals to terminate - // the match - FsmSt::EMIT_SHORT_MATCH + FsmSt::EMIT_END } - } else { - // Continue matching + } else if upd.is_match_dly { + // Continue growing the matching string FsmSt::CONTINUE_MATCH_0 - } - }, - FsmSt::EMIT_SHORT_MATCH => { - if upd.match_nconts == u32:1 { - if upd.finalize { - // Finish block transcription - FsmSt::EMIT_FINAL_LITERALS - } else { - // Restart matching - FsmSt::START_MATCH_0 - } - } else { - cur.fsm - } - }, - FsmSt::FIFO_POSTFILL => { - // It is worth noting that we get into this state only when - // finalizing very short blocks (so short that they don't - // even fill the input FIFO). - if upd.fifo_in_count == FIFO_IN_SZ { - FsmSt::EMIT_FINAL_LITERALS } else { - cur.fsm + FsmSt::START_MATCH_0 } }, - FsmSt::EMIT_FINAL_LITERALS => { - if upd.fifo_in_nvalid == u32:1 { + FsmSt::FIFO_DRAIN => { + // We quit FIFO_DRAIN stage when there's 1 symbol left + // because it has been already processed (written to HB + // and emitted as a token) by the FIFO_DRAIN stage itself + if upd.fifo_in_count == u32:1 { FsmSt::EMIT_END } else { cur.fsm @@ -600,25 +593,27 @@ pub proc encoder_base< ..upd }; - // Set 'recycle' flag when we want to "stall" Input FIFO to not lose - // the symbol at the OP, which is needed for certain state transitions + // Set 'recycle' flag when we want next tick to reuse the current + // oldest symbol in the input FIFO instead of discarding it let recycle = if ( - upd.fsm == FsmSt::START_MATCH_0 - && cur.fsm != FsmSt::START_MATCH_1 + upd.fsm == FsmSt::START_MATCH_1 + || upd.fsm == FsmSt::CONTINUE_MATCH_1 ) { - true + // Keep value from MATCH_0 state so that MATCH_1 can use it. + upd.recycle } else if ( - upd.fsm == FsmSt::EMIT_FINAL_LITERALS - && cur.fsm != FsmSt::EMIT_FINAL_LITERALS - && cur.fsm != FsmSt::START_MATCH_1 + cur.fsm == FsmSt::CONTINUE_MATCH_1 + && upd.fsm != FsmSt::CONTINUE_MATCH_0 ) { true } else { false }; + // Set 'recycle' and delayed 'is_match' let upd = State { recycle: recycle, + is_match_dly: is_match, ..upd }; @@ -628,45 +623,55 @@ pub proc encoder_base< /// Version of `encoder_base` that uses RamModel /// Intended to be used only for tests -pub proc encoder_base_modelram - { +pub proc encoder_base_modelram< + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32, + HASH_SYMBOLS: u32, HASH_WIDTH: u32, DO_CLEAR_HASH_TABLE: bool +> { init{()} config ( - plain_data: chan> in, - encoded_data: chan> out, + plain_data: chan> in, + encoded_data: + chan< + Token + > out, ) { let (hb_rd_req_s, hb_rd_req_r) = - chan>; + chan>; let (hb_rd_resp_s, hb_rd_resp_r) = - chan>; + chan>; let (hb_wr_req_s, hb_wr_req_r) = - chan>; + chan>; let (hb_wr_comp_s, hb_wr_comp_r) = chan; let (ht_rd_req_s, ht_rd_req_r) = - chan>; + chan>; let (ht_rd_resp_s, ht_rd_resp_r) = - chan>; + chan>; let (ht_wr_req_s, ht_wr_req_r) = - chan>; + chan>; let (ht_wr_comp_s, ht_wr_comp_r) = chan; - spawn ram::RamModel - - (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); - spawn ram::RamModel - - (ht_rd_req_r, ht_rd_resp_s, ht_wr_req_r, ht_wr_comp_s); + spawn ram::RamModel< + SYMBOL_WIDTH, {u32:1<(hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); + spawn ram::RamModel< + MATCH_OFFSET_WIDTH, {u32:1<(ht_rd_req_r, ht_rd_resp_s, ht_wr_req_r, ht_wr_comp_s); - spawn encoder_base - - ( - plain_data, encoded_data, - hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, - ht_rd_req_s, ht_rd_resp_r, ht_wr_req_s, ht_wr_comp_r, - ); + spawn encoder_base< + SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, MATCH_LENGTH_WIDTH, + HASH_SYMBOLS, HASH_WIDTH, DO_CLEAR_HASH_TABLE + > ( + plain_data, encoded_data, + hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, + ht_rd_req_s, ht_rd_resp_r, ht_wr_req_s, ht_wr_comp_r, + ); } next (tok: token, state: ()) { @@ -675,35 +680,45 @@ pub proc encoder_base_modelram /// LZ4 encoder with 8K hash table -const LZ4_SYM_WIDTH = u32:8; -const LZ4_PTR_WIDTH = u32:16; -const LZ4_CNT_WIDTH = u32:16; -const LZ4_HASH_BITS_8K = u32:13; +const LZ4_SYMBOL_WIDTH = u32:8; +const LZ4_OFFSET_WIDTH = u32:16; +const LZ4_COUNT_WIDTH = u32:16; +const LZ4_HASH_SYMBOLS = u32:4; +const LZ4_HASH_WIDTH_8K = u32:13; pub proc encoder_8k { init{()} config ( plain_data: - chan> in, + chan> in, encoded_data: - chan> out, - ram_hb_rd_req: chan> out, - ram_hb_rd_resp: chan> in, - ram_hb_wr_req: chan> out, + chan< + Token + > out, + ram_hb_rd_req: chan> out, + ram_hb_rd_resp: chan> in, + ram_hb_wr_req: + chan< + AbstractRamWriteReq + > out, ram_hb_wr_comp: chan in, - ram_ht_rd_req: chan> out, - ram_ht_rd_resp: chan> in, - ram_ht_wr_req: chan> out, + ram_ht_rd_req: chan> out, + ram_ht_rd_resp: chan> in, + ram_ht_wr_req: + chan< + AbstractRamWriteReq + > out, ram_ht_wr_comp: chan in, ) { - spawn encoder_base - - ( - plain_data, encoded_data, - ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, - ram_ht_rd_req, ram_ht_rd_resp, ram_ht_wr_req, ram_ht_wr_comp, - ); + spawn encoder_base < + LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, LZ4_COUNT_WIDTH, + LZ4_HASH_SYMBOLS, LZ4_HASH_WIDTH_8K, true + > ( + plain_data, encoded_data, + ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, + ram_ht_rd_req, ram_ht_rd_resp, ram_ht_wr_req, ram_ht_wr_comp, + ); } next(tok: token, st: ()) { @@ -717,13 +732,16 @@ pub proc encoder_8k_modelram { config ( plain_data: - chan> in, + chan> in, encoded_data: - chan> out, + chan> out, ) { - spawn encoder_base_modelram - - (plain_data, encoded_data); + spawn encoder_base_modelram< + LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, LZ4_COUNT_WIDTH, + LZ4_HASH_SYMBOLS, LZ4_HASH_WIDTH_8K, false + > (plain_data, encoded_data); } next (tok: token, state: ()) { @@ -735,53 +753,39 @@ pub proc encoder_8k_modelram { /// import xls.modules.dbe.common_test as test -import xls.modules.dbe.lz4_decoder as dec - -const TST_SYMS_LEN = u32:19; -const TST_SYMS = PlainData<8>[TST_SYMS_LEN]: [ - // Check basic LT and CP generation - PlainData{is_mark: false, data: u8:1, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:1, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:2, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:1, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:2, mark: Mark::NONE}, - // Final token sequence - should stay as literals - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_mark: true, data: u8:0, mark: Mark::END}, + +const TEST_DATA_LEN = u32:10; +const TEST_DATA = PlainData<8>[TEST_DATA_LEN]: [ + // Check basic LT and MATCH generation + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + // Final token sequence + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: true, data: u8:0, mark: Mark::END}, ]; -const TST_TOKS_LEN = u32:16; -const TST_TOKS = -Token[TST_TOKS_LEN]: [ - Token{kind: TokenKind::LITERAL, literal: u8:1, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:2, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::COPY_POINTER, literal: u8:0, copy_pointer_offset: u16:1, copy_pointer_count: u16:3, mark: Mark::NONE}, - // Final literal token sequence - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::LITERAL, literal: u8:7, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::MARK, literal: u8:0, copy_pointer_offset: u16:0, copy_pointer_count: u16:0, mark: Mark::END}, +const TEST_TOKENS_LEN = u32:11; +const TEST_TOKENS = Token< + LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, LZ4_COUNT_WIDTH +>[TEST_TOKENS_LEN]: [ + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16:1, match_length: u16:3, mark: Mark::NONE}, + // Final token sequence + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MARKER, symbol: u8:0, match_offset: u16:0, match_length: u16:0, mark: Mark::END}, ]; #[test_proc] @@ -793,20 +797,21 @@ proc test_encoder_8k_simple { config(term: chan out) { let (send_data_s, send_data_r) = - chan>; + chan>; let (enc_toks_s, enc_toks_r) = - chan>; + chan>; let (recv_term_s, recv_term_r) = chan; - spawn test::data_sender - (TST_SYMS, send_data_s); + spawn test::data_sender + (TEST_DATA, send_data_s); spawn encoder_8k_modelram( send_data_r, enc_toks_s, ); - spawn test::token_validator - - (TST_TOKS, enc_toks_r, recv_term_s); + spawn test::token_validator< + TEST_TOKENS_LEN, LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, + LZ4_COUNT_WIDTH + >(TEST_TOKENS, enc_toks_r, recv_term_s); (term, recv_term_r) } From ac43f075daad4afa5354ac763dbd617f523949d1 Mon Sep 17 00:00:00 2001 From: Roman Dobrodii Date: Fri, 1 Sep 2023 00:46:28 +0200 Subject: [PATCH 5/7] modules/dbe: add documentation for LZ4 encoder Add a Markdown readme file and a couple of diagrams that explain how the encoder works. Signed-off-by: Roman Dobrodii --- xls/modules/dbe/docs/README.md | 289 ++++++++++++++++++ .../dbe/docs/lz4_encoder_flowchart.png | Bin 0 -> 594328 bytes xls/modules/dbe/docs/lz4_encoder_states.png | Bin 0 -> 475765 bytes 3 files changed, 289 insertions(+) create mode 100644 xls/modules/dbe/docs/README.md create mode 100644 xls/modules/dbe/docs/lz4_encoder_flowchart.png create mode 100644 xls/modules/dbe/docs/lz4_encoder_states.png diff --git a/xls/modules/dbe/docs/README.md b/xls/modules/dbe/docs/README.md new file mode 100644 index 0000000000..cb354b76d3 --- /dev/null +++ b/xls/modules/dbe/docs/README.md @@ -0,0 +1,289 @@ +# Dictionary coder implementation in DSLX + +Dictionary coder is a compression algorithm that compresses data by replacing +sequences of symbols in original data by pointers to sequences of symbols +stored within a "dictionary" data structure that is known by the decoder. +One example of such algorithms is LZ4. + +This module implements encoder and decoder blocks that implement LZ4 algorithm. + +## LZ77 algorithms + +LZ4 belongs to a broader class of LZ77-like encoders. LZ77 encoders usually +have no preset dictionary and they build dictionary as they compress data. Each +input symbol is thus processed in the context of its own dictionary, and these +dictionaries are in general different for any two symbols. The decoders perform +a reverse process: they almost always start with an empty dictionary and build +it as they are decoding the data, thus obtaining perfect reconstruction not +only of the original raw data that was encoded, but also of the dictionary that +should match the encoder's dictionary at every step. + +Within the class of LZ77 algorithms, the dictionary is the buffer which contains +up to `N` past raw symbols that have been already consumed by the encoder, or +emitted by the encoder. Usually it is implemented as a circular buffer, and is +called simply a *history buffer (HB)*. + +LZ77 encoder emits two types of tokens (we call them _tokens_ to differentiate +them from _symbols_ which always refer to the original uncompressed data): +- *UNMATCHED_SYMBOL*, which contains the original symbol as-is and which the + decoder simply copies to the output, resulting in no data size reduction. +- *MATCH*, which tells the decoder to copy a string of symbols from the history + buffer to the output. As these symbols are not present in the token itself, + this may result in a significant data size reduction. *MATCH* token contains + of an *offset-count* pair + - *Offset* tells the decoder how far back in the history buffer the string + begins (usually 0 means "start with the last character", 1 is "the one + before the last", etc.). + - *Count* tells the decoder how many symbols to copy from the history buffer + to the output. It's logical that count of `0` results in an empty string, + thus specific byte-level encoding of the token can instead + encode `count - 1` value. + +## LZ4 algorithm + +What puts LZ4 algorithm aside other LZ77-compatible algorithms (such as ALDC) +is how the encoder finds matches in its history buffer. Instead of performing +exhaustive search which is inefficient for algorithms running on the CPU, and +complicated for ASIC implementations (e.g. silicon implementations of ALDC +may use highly-custom CAM memory cores), it performs non-exhaustive search +using a hash table. + +LZ4 algorithm uses two random-addressable memory blocks: +1. History buffer (also called *HB RAM*), which is the dictionary itself. HB + stores raw data symbols, usually using a circular-buffer addressing scheme. + - HB address bus is *MATCH_OFFSET_WIDTH* bits wide, thus it contains + up to `(1 << MATCH_OFFSET_WIDTH)` symbols. + - HB data word contains a single symbol, thus it is *SYMBOL_WIDTH* bits + wide. + - The size of the HB RAM is `(1 << MATCH_OFFSET_WIDTH) * SYMBOL_WIDTH` bits. +2. Hash table (also called *HT*). It works as follows: + - HT address is *HASH_WIDTH* bits wide, this value can be configured to + slightly tune a footprint-vs-compression ratio tradeoff. The + address into HT is usually created by hashing a small string that contains + a small number of symbols (*HASH_SYMBOLS*) extracted in-order from the + incoming data. + - HT data word contains a pointer (an address) into the HB RAM at which that + string of symbols may be found. + - The size of the HT is `(1 << HASH_WIDTH) * SYMBOL_WIDTH` bits. + +In addition, because LZ4 wants to look ahead into the input data to hash it, it +needs a small FIFO with parallel output of all the bits to store *HASH_SYMBOLS* +input symbols and feed them to the hash function. + +The flow of operation of LZ4 algorithm is depicted on the flowchart: +![LZ4 encoder flowchart](lz4_encoder_flowchart.png) + +A textual expression of it which gives a bit more context: +* __(1)__ Consume one input symbol. + * __(2)__ If it's an EOF, end processing. + * Otherwise: + * __(3)__ Push it to the HB (dropping the oldest symbol from the HB). + * __(4)__ Push it to the FIFO (dropping the oldest symbol from the FIFO). +* __(5)__ Designate the current oldest symbol in the FIFO as *current_symbol*, + calculate *current_ptr* - the location of this symbol in the HB. +* __(6)__ If we do not have an existing matching string that we're trying to + grow, try to start a new matching string: + * __(7)__ Compute hash of the data contained in the FIFO. + * __(8)__ Load *candidate_ptr* pointer from the HT. + * __(9)__ Store *current_ptr* to the HT. + * __(10)__ Initiate a new matching string: calculate offset from a difference + of *candidate_ptr* and *current_ptr*, set length to zero. + * Here, *candidate_ptr* points to the string in history buffer, the + beginning of which *potentially* matches the current input string which + starts with *current_symbol* (the first symbols of the current input + string are stored in the FIFO, and we've just hashed them and performed a + HT lookup to find a similar sequence of symbols in the HB). + * The match is not guaranteed since there can be a hash collision - the + hash is the same, but actual symbols pointed by *candidate_ptr* differ, + so we need to check each of them if it matches the one in the FIFO. + In addition to that, we'd like to grow a matching string longer than + what's contained in the FIFO. + * As shown below, the same procedure is used to check matching of the + beginning of the string, as well as of its continuation. +* Here, *current_ptr* points to the *current_symbol* - the next input symbol + for which no output token has been emitted, while *candidate_ptr* points to + an old symbol in the HB which we'd like to compare with *current_symbol*. + * __(11)__ We load a symbol from the HB pointed by *candidate_ptr*, it + becomes a *candidate_symbol*. + * __(12)__ The *candidate_symbol* is compared with *current_symbol*. + * __(13)__ If it's a match, continue this matching string: + * __(14)__ Increment the match length by 1. + * Go to step __(1)__ . + * If it's not a match and we've been already growing a matching string: + * __(15)__ Emit a *MATCH* token for the current matching string. + * __(16)__ Terminate current matching string. + * Go to step __(5)__ - this re-processes current input symbol one more time + (this is done for two reasons: no output token has been emitted for + that symbol yet, and it must be emitted at some point, and also + this symbol may be able to start a new matching string on its own). + * Otherwise: + * __(17)__ Emit an *UNMATCHED_SYMBOL* token for the current symbol. + * Go to step __(1)__. + +## DSLX implementation + +LZ4 encoder in DSLX is implemented as an FSM-like which changes states at most +once per "tick". It has a form of a _proc_ module. + +Compared to the reference flowchart depicted above, this FSM is a bit more +complicated as it has to take into account some corner cases: +* Prefilling the FIFO with data before beginning the processing. +* Correctl handling of current symbol when it runs into an EOF. +* Draining the FIFO after EOF has been observed. +* Allowing "warm" restart of the algorithm after EOF to allow compression of + *dependent* blocks - that is, without resetting the HT and the HB between the + blocks (this allows tokens from the curent block to refer HB symbols of the + previous block). +* System-level integration considerations to allow this block to be chained + with other XLS-based data pre-/postprocessors: + * *MATCHED_SYMBOL* tokens. Whenever the encoder adds a symbol to the matching + string, it emits a *MATCHED_SYMBOL* token, which can be used by the + postprocessing blocks to reconstruct symbols encoded by *MATCH* tokens + without having to decode *MATCH*es (such decoding would require a full-size + history buffer RAM). These tokens should not be stored into the final + encoded block. + * Support for a limited form of in-band control signaling via + *marker tokens*: + * *END* marker that signals end of block (EOF condition). + * *ERROR_* family of markers that allow passing error codes between + processing blocks. These tokens abort the encoding. + * *RESET* marker that performs a *cold* restart of the encoder (clearing HT + RAM) and other blocks in the chain, also clearing all error conditions. + +One example of a post-processor module can be a *block writer* proc that +gathers tokens produced by the encoder and encodes them using a standardized +byte-oriented *LZ4 Block Format*. Implementation of alternative encoding +schemes may be of interest as well, as the header format used by the standard +LZ4 requires one to know the number of unmatched symbols between two matches +before those symbols are emitted, making bufferless stream processing +difficult. + +### Data format + +#### PlainData + +The encoder consumes a stream of raw symbols, intermixed with control markers. +This is represented using a parametrized `PlainData` DSLX structure: +```rust +pub struct PlainData { + is_marker: bool, + data: uN[DATA_WIDTH], + mark: Mark, +} +``` + +* *is_marker* tells whether this object is a symbol or a marker. +* *data* communicates a symbol whenever *is_marker* is not set. +* *mark* communicates a control mark whenever *is_marker* is set. + +#### Token + +The encoder produces a stream of tokens. There are four types of them: +* *MATCH* is an *offset-length* pair that represents a sequence of + symbols that is the same as the specified sequence within HB. +* *UNMATCHED_SYMBOL* represents a symbol for which no match was found in the + HB. It will be encoded as a raw symbol in the final piece of encoded data. +* *MATCHED_SYMBOL* is a symbol that is encoded within the next *MATCH* token. + Its intended use is to allow easy postprocessing of a stream of tokens + without a need for a full-fledged and heavy *MATCH* decoder. +* *MARKER* contains a control mark code. + +Tokens are represented using following enum and structure in DSLX: +```rust +pub enum TokenKind : u2 { + UNMATCHED_SYMBOL = 0, + MATCHED_SYMBOL = 1, + MATCH = 2, + MARKER = 3, +} + +pub struct Token< + SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32 +>{ + kind: TokenKind, + symbol: uN[SYMBOL_WIDTH], + match_offset: uN[MATCH_OFFSET_WIDTH], + match_length: uN[MATCH_LENGTH_WIDTH], + mark: Mark +} +``` + +* *kind* specifies one of the four token kinds. +* *symbol* contains symbol value for *UNMATCHED_SYMBOL* and *MATCHED_SYMBOL* + tokens. +* *match_offset* and *match_length* are valid only for a *MATCH* token: + * Length is the length of the string that has to be copied from the history + buffer, minus one. That is, *match_offset=0* specifies a string of 1 + symbol, *match_offset=3* a string of 4 symbols, etc. + * Offset points to the beginning of the string that has to be copied from + HB. + * An offset of 0 means that the first symbol to be copied is the last + symbol written to the HB - the last symbol emitted when processing the + previous token. + * An offset of 1 means starting with the symbol preceding the one for + offset 0, thus with the second newest symbol in the HB. + * *MATCH* token may specify *length > offset* - in this case the decoder will + have to copy not only old symbols, but also symbols produced when handling + the current *MATCH* token, generating a repetitive sequence of characters, + which resembles the behavior of a multisymbol *Run-Length Encoder*. + +### FSM + +A state diagram of the FSM is displayed below: +![LZ4 encoder states](lz4_encoder_states.png) + +* **RESET** - the initial state of the decoder. It initializes other state + variables, resulting in a *cold* block start and jumps to + **HASH_TABLE_CLEAR**. + * To facilitate testing in presence of + [issue #1042](https://github.com/google/xls/issues/1042), there is a proc + parameter that allows bypassing **HASH_TABLE_CLEAR** and jumping + directly into the **RESTART** state. It should not be used in real + implementations as it will make encoding of an independent block to depend + on the contents of the preceding data blocks, thus making encoding + non-deterministic and potentially allowing for data leaks across blocks. +* **HASH_TABLE_CLEAR** - encoder iterates here, clearing one word of HT RAM + per tick. +* **RESTART** - the encoder clears a small set of state variables, resulting in + a *warm* start, allowing to preserve necessary state (HB, HT) between + depending data blocks. +* **FIFO_PREFILL** - the encoder fills the input FIFO with symbols. + * If an *END* token is observed, the FSM will transition into either + *EMIT_END* or to *FIFO_DRAIN* - this depends on whether the FIFO already + has multiple symbols in it and thus whether extra ticks are needed to drain + all of them. + * Handles input steps of a flowchart: __1, 4__. +* **START_MATCH_0** - roughly corresponds to the *Starting a new match*, + *Read potential matching symbol from HB*, *Check for match*, + *Growing the match* parts of the flowchart. + * Handles input steps: __1, 4__. + * Handles match steps: __5, 7, 8, 10, 11, 12, 13__. + * Step __14__ belongs here, but is skipped as an optimization, since step + __10__ can initialize match variables properly from the start. +* **START_MATCH_1** - "upper" counterpart of **START_MATCH_0**, necessary + because two accesses to the same (single-port) RAM can not be done in the + same tick. + * Handles step __9__, writing to the HT RAM. + * Handles step __3__, writing to the HB RAM. + * May emit *UNMATCHED_SYMBOL* token, step __17__. +* **CONTINUE_MATCH_0** - mostly the same as **START_MATCH_0** except that it + does not start a new match. + * Handles input steps: __1, 4__. + * Handles match steps __5, 11, 12, 16__. +* **CONTINUE_MATCH_1** - "upper" counterpart of **CONTINUE_MATCH_0**. + * Handles step __3__, writing to the HB RAM. + * May emit *MATCH* token, step __16__. +* **FIFO_DRAIN** - the encoder loops here, draining symbols from the FIFO + and emitting **UNMATCHED_SYMBOL* tokens for them. + * Symbols are also written to the HB to make them visible in case a new + block is started after a *warm* restart. +* **EMIT_END** - the encoder emits a single *END* token and transitions into + a **RESTART** state. +* **ERROR** - state that is entered whenever the error condition is + encountered. This can happen if e.g. *ERROR* marker is received from another + block that precedes the encoder, or if an unknown (unsupported) marker is + received. + * The encoder receives and discards incoming symbols, with an exception of + a *RESET* command marker that is replicated on the output (so that other + processing blocks can be reset) and makes FSM transition to the **RESET** + state. diff --git a/xls/modules/dbe/docs/lz4_encoder_flowchart.png b/xls/modules/dbe/docs/lz4_encoder_flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..91f76e6bc0732137e975a25eea8a30e1d46a6e71 GIT binary patch literal 594328 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�vLO@BC@(O^0e_x|?SKZ9J*@RCp&TUdIb*qy$eS_U=Ur zF;0gE0f*Trc}(|fk-$XZ1%Du$in2FuWHV2SH|xoYg}y+S2J|_p2I?TAA}t~p)CS&P zMoicfkDubLS7IHvF~>AW-_W#B2>n-Qn9rmX|IJ+$L(gw#7>zFmZk>DK3%+a+m9df zDFBYWm-5{NV62}&RZ9*ML{t^HhNIl+21`cEU`fm(4?Flo3&>1P%{$s|8q zv!rf7_OzDH8B){3?2M;Qi4h#6F6EYN06rPp%dTJ%897X3l)Ax^W<%@LT^o2#R5{ zmh-NP84zD8n&cTDlNzphr9S$t8h{9LEyRa^k{AB@rgeBhh^jH@(vGu8N%rsE%Aax= zTs&8i5f-htx&`lAWp(J#bERi~XElpEp|b}w>$l;r+)NOv;XZ>RJd5s25f9#1*n&^Q z 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%0DX#N+6(2&Ys4mB^8)YD8RpH* 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 Date: Mon, 11 Sep 2023 19:15:03 +0200 Subject: [PATCH 6/7] modules/dbe: add round-trip test, refactor tests Factored out the tests into separate DSLX files. Added a round-trip test for encoder & decoder. Signed-off-by: Roman Dobrodii --- xls/modules/dbe/BUILD | 57 ++++- xls/modules/dbe/common.x | 21 ++ xls/modules/dbe/lz4_decoder.x | 307 ++------------------------ xls/modules/dbe/lz4_decoder_test.x | 247 +++++++++++++++++++++ xls/modules/dbe/lz4_encoder.x | 226 +++++-------------- xls/modules/dbe/lz4_encoder_test.x | 139 ++++++++++++ xls/modules/dbe/lz4_round_trip_test.x | 88 ++++++++ 7 files changed, 623 insertions(+), 462 deletions(-) create mode 100644 xls/modules/dbe/lz4_decoder_test.x create mode 100644 xls/modules/dbe/lz4_encoder_test.x create mode 100644 xls/modules/dbe/lz4_round_trip_test.x diff --git a/xls/modules/dbe/BUILD b/xls/modules/dbe/BUILD index b93550de2c..2fdd378ac0 100644 --- a/xls/modules/dbe/BUILD +++ b/xls/modules/dbe/BUILD @@ -37,7 +37,16 @@ xls_dslx_library( name = "dbe_common_dslx", srcs = [ "common.x", - "common_test.x" + ], +) + +xls_dslx_library( + name = "dbe_common_test_dslx", + srcs = [ + "common_test.x", + ], + deps = [ + ":dbe_common_dslx", ], ) @@ -56,12 +65,23 @@ xls_dslx_library( ], ) +xls_dslx_library( + name = "dbe_lz4_decoder_test_dslx", + srcs = [ + "lz4_decoder_test.x" + ], + deps = [ + ":dbe_common_test_dslx", + ":dbe_lz4_decoder_dslx", + ], +) + xls_dslx_test( name = "dbe_lz4_decoder_dslx_test", dslx_test_args = { "compare": "none", }, - library = "dbe_lz4_decoder_dslx", + library = ":dbe_lz4_decoder_test_dslx", ) xls_dslx_ir( @@ -115,12 +135,23 @@ xls_dslx_library( ], ) +xls_dslx_library( + name = "dbe_lz4_encoder_test_dslx", + srcs = [ + "lz4_encoder_test.x" + ], + deps = [ + ":dbe_common_test_dslx", + ":dbe_lz4_encoder_dslx", + ], +) + xls_dslx_test( name = "dbe_lz4_encoder_dslx_test", dslx_test_args = { "compare": "none", }, - library = "dbe_lz4_encoder_dslx", + library = ":dbe_lz4_encoder_test_dslx", ) #8K hash specialization @@ -134,7 +165,7 @@ xls_dslx_ir( xls_ir_opt_ir( name = "dbe_lz4_encoder_8k_opt_ir", src = "dbe_lz4_encoder_8k_ir.ir", - top = "__lz4_encoder__encoder_8k__encoder_base_0__1_4_13_16_16_8_next", + top = "__lz4_encoder__encoder_8k__encoder__encoder_base_0__1_4_13_16_16_8_next", ram_rewrites = [ ":lz4_encoder_8k_ram1r1w_rewrites.textproto", ], @@ -168,3 +199,21 @@ xls_ir_verilog( ]), }, ) + +# --------------------------------------------------------------------------- +# Round-trip test +# --------------------------------------------------------------------------- + +xls_dslx_test( + name = "dbe_lz4_round_trip_dslx_test", + dslx_test_args = { + "compare": "none", + }, + srcs = [ + "lz4_round_trip_test.x" + ], + deps = [ + ":dbe_lz4_encoder_test_dslx", + ":dbe_lz4_decoder_test_dslx", + ] +) diff --git a/xls/modules/dbe/common.x b/xls/modules/dbe/common.x index e483439bb6..22396716e5 100644 --- a/xls/modules/dbe/common.x +++ b/xls/modules/dbe/common.x @@ -54,3 +54,24 @@ pub struct PlainData { data: uN[DATA_WIDTH], mark: Mark, } + +/// Parameters of a classic LZ4 algorithm +/// NOTE: CPU LZ4 implementations do not have match length limited to 16 bits, +/// but 16 bits are more than enough for most real-life use cases, since +/// matches of more than 64KB are very uncommon. +pub const LZ4_SYMBOL_WIDTH = u32:8; +pub const LZ4_MATCH_OFFSET_WIDTH = u32:16; +pub const LZ4_MATCH_LENGTH_WIDTH = u32:16; +pub const LZ4_HASH_SYMBOLS = u32:4; +/// Different hash table sizes +pub const LZ4_HASH_WIDTH_4K = u32:12; +pub const LZ4_HASH_WIDTH_8K = u32:13; +pub const LZ4_HASH_WIDTH_16K = u32:14; + +pub type Lz4Token = Token< + LZ4_SYMBOL_WIDTH, + LZ4_MATCH_OFFSET_WIDTH, + LZ4_MATCH_LENGTH_WIDTH + >; + +pub type Lz4Data = PlainData; diff --git a/xls/modules/dbe/lz4_decoder.x b/xls/modules/dbe/lz4_decoder.x index 28611b20db..261518f043 100644 --- a/xls/modules/dbe/lz4_decoder.x +++ b/xls/modules/dbe/lz4_decoder.x @@ -308,68 +308,33 @@ pub proc decoder_base< } } -/// Version of `decoder` with embedded RamModel -/// Intended to be used only for tests -pub proc decoder_base_modelram< - SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32 -> { - init{()} - - config ( - encoded_data: - chan< - Token - > in, - plain_data: chan> out, - ) { - let (hb_wr_req_s, hb_wr_req_r) = - chan>; - let (hb_wr_comp_s, hb_wr_comp_r) = - chan; - let (hb_rd_req_s, hb_rd_req_r) = - chan>; - let (hb_rd_resp_s, hb_rd_resp_r) = - chan>; - - spawn ram::RamModel< - SYMBOL_WIDTH, {u32:1<(hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); +/// Version of decoder compatible with classic LZ4 algorithm - spawn decoder_base< - SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, MATCH_LENGTH_WIDTH - >( - encoded_data, plain_data, - hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, - ); - } - - next (tok: token, state: ()) { - } -} - -/// Version of `decoder_base` compatible with classic LZ4 algorithm -pub const LZ4C_SYMBOL_WIDTH = u32:8; -pub const LZ4C_OFFSET_WIDTH = u32:16; -pub const LZ4C_COUNT_WIDTH = u32:16; +type Lz4Token = dbe::Lz4Token; +type Lz4Data = dbe::Lz4Data; +pub type Lz4DecoderRamHbReadReq = ram::ReadReq; +pub type Lz4DecoderRamHbReadResp = ram::ReadResp; +pub type Lz4DecoderRamHbWriteReq = ram::WriteReq< + dbe::LZ4_MATCH_OFFSET_WIDTH, + dbe::LZ4_SYMBOL_WIDTH, 1 + >; pub proc decoder { init{} config ( - encoded_data: - chan< - Token - > in, - plain_data: chan> out, - ram_hb_rd_req: chan> out, - ram_hb_rd_resp: chan> in, - ram_hb_wr_req: - chan> out, + encoded_data: chan in, + plain_data: chan out, + ram_hb_rd_req: chan out, + ram_hb_rd_resp: chan in, + ram_hb_wr_req: chan out, ram_hb_wr_comp: chan in, ) { - spawn decoder_base - - ( + spawn decoder_base< + dbe::LZ4_SYMBOL_WIDTH, + dbe::LZ4_MATCH_OFFSET_WIDTH, + dbe::LZ4_MATCH_LENGTH_WIDTH + > ( encoded_data, plain_data, ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, ); @@ -378,237 +343,3 @@ pub proc decoder { next(tok: token, st: ()) { } } - -/// Version of `decoder` with embedded RamModel -/// Intended to be used only for tests -pub proc decoder_modelram { - init{()} - - config ( - encoded_data: - chan< - Token - > in, - plain_data: chan> out, - ) { - let (hb_wr_req_s, hb_wr_req_r) = - chan>; - let (hb_wr_comp_s, hb_wr_comp_r) = - chan; - let (hb_rd_req_s, hb_rd_req_r) = - chan>; - let (hb_rd_resp_s, hb_rd_resp_r) = - chan>; - - spawn ram::RamModel - - (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); - - spawn decoder - ( - encoded_data, plain_data, - hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, - ); - } - - next (tok: token, state: ()) { - } -} - - -/// -/// Tests -/// -import xls.modules.dbe.common_test as test - -const TEST_SYMBOL_WIDTH = u32:4; -const TEST_OFFSET_WIDTH = u32:3; -const TEST_COUNT_WIDTH = u32:4; - - -// Reference input -const TEST_SIMPLE_INPUT_LEN = u32:32; -const TEST_SIMPLE_INPUT = Token[TEST_SIMPLE_INPUT_LEN]: [ - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:12, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 1, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:15, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 9, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:11, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 1, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 0, match_length: uN[4]: 2, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 4, match_length: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:15, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 2, match_length: uN[4]:13, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 1, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]: 2, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 7, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 2, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 0, match_length: uN[4]:11, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 6, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]:15, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 3, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 9, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]: 1, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 3, match_length: uN[4]:13, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:14, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 1, match_length: uN[4]: 2, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 0, match_length: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 7, match_length: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]:15, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 4, match_length: uN[4]: 0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: uN[4]:0, match_offset: uN[3]: 5, match_length: uN[4]:11, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: uN[4]: 8, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::NONE}, - Token{kind: TokenKind::MARKER, symbol: uN[4]:0, match_offset: uN[3]:0, match_length: uN[4]:0, mark: Mark::END} -]; -// Reference output -const TEST_SIMPLE_OUTPUT_LEN = u32:109; -const TEST_SIMPLE_OUTPUT = PlainData[TEST_SIMPLE_OUTPUT_LEN]: [ - PlainData{is_marker: false, data: uN[4]:12, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:1, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:11, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:1, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:7, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:3, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:9, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:15, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:14, mark: Mark::NONE}, - PlainData{is_marker: false, data: uN[4]:8, mark: Mark::NONE}, - PlainData{is_marker: true, data: uN[4]:0, mark: Mark::END} -]; - -#[test_proc] -proc test_simple { - term: chan out; - recv_last_r: chan in; - - init {()} - - config(term: chan out) { - // tokens from sender and to decoder - let (send_toks_s, send_toks_r) = - chan< - Token - >; - // symbols & last indicator from receiver - let (recv_data_s, recv_data_r) = chan>; - let (recv_last_s, recv_last_r) = chan; - - - spawn test::token_sender< - TEST_SIMPLE_INPUT_LEN, TEST_SYMBOL_WIDTH, TEST_OFFSET_WIDTH, - TEST_COUNT_WIDTH - >(TEST_SIMPLE_INPUT, send_toks_s); - spawn decoder_base_modelram< - TEST_SYMBOL_WIDTH, TEST_OFFSET_WIDTH, TEST_COUNT_WIDTH - >(send_toks_r, recv_data_s); - spawn test::data_validator( - TEST_SIMPLE_OUTPUT, recv_data_r, recv_last_s); - - (term, recv_last_r) - } - - next (tok: token, state: ()) { - let (tok, recv_term) = recv(tok, recv_last_r); - send(tok, term, recv_term); - } -} diff --git a/xls/modules/dbe/lz4_decoder_test.x b/xls/modules/dbe/lz4_decoder_test.x new file mode 100644 index 0000000000..8b436e7537 --- /dev/null +++ b/xls/modules/dbe/lz4_decoder_test.x @@ -0,0 +1,247 @@ +// Copyright 2023 The XLS Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import xls.examples.ram as ram +import xls.modules.dbe.common as dbe +import xls.modules.dbe.common_test as test +import xls.modules.dbe.lz4_decoder as lz4_decoder + +type Mark = dbe::Mark; +type TokenKind = dbe::TokenKind; +type Token = dbe::Token; +type PlainData = dbe::PlainData; +type Lz4Token = dbe::Lz4Token; +type Lz4Data = dbe::Lz4Data; +type Lz4DecoderRamHbReadReq = lz4_decoder::Lz4DecoderRamHbReadReq; +type Lz4DecoderRamHbReadResp = lz4_decoder::Lz4DecoderRamHbReadResp; +type Lz4DecoderRamHbWriteReq = lz4_decoder::Lz4DecoderRamHbWriteReq; + +const SYMBOL_WIDTH = dbe::LZ4_SYMBOL_WIDTH; +const MATCH_OFFSET_WIDTH = dbe::LZ4_MATCH_OFFSET_WIDTH; +const MATCH_LENGTH_WIDTH = dbe::LZ4_MATCH_LENGTH_WIDTH; + +/// Version of decoder that uses RamModel, intended for tests only +pub proc decoder_model { + init{()} + + config ( + encoded_data: chan> in, + plain_data: chan> out, + ) { + let (hb_wr_req_s, hb_wr_req_r) = chan; + let (hb_wr_comp_s, hb_wr_comp_r) = chan; + let (hb_rd_req_s, hb_rd_req_r) = chan; + let (hb_rd_resp_s, hb_rd_resp_r) = chan; + + spawn ram::RamModel< + SYMBOL_WIDTH, + {u32:1 << MATCH_OFFSET_WIDTH}, + SYMBOL_WIDTH + > (hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); + + spawn lz4_decoder::decoder( + encoded_data, plain_data, + hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, + ); + } + + next (tok: token, state: ()) { + } +} + +// Reference input +const TEST_SIMPLE_INPUT_LEN = u32:32; +const TEST_SIMPLE_INPUT = Lz4Token[TEST_SIMPLE_INPUT_LEN]: [ + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:12, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:15, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 9, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:11, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 1, match_length: u16: 1, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 0, match_length: u16: 2, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 4, match_length: u16: 0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:15, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 1, match_length: u16: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 2, match_length: u16:13, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 5, match_length: u16: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 5, match_length: u16: 2, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 0, match_length: u16:11, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 1, match_length: u16: 6, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 5, match_length: u16:15, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 3, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 9, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 5, match_length: u16: 1, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 3, match_length: u16:13, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:14, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 1, match_length: u16: 2, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 0, match_length: u16: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 7, match_length: u16: 0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:15, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 4, match_length: u16: 0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16: 5, match_length: u16:11, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8: 8, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MARKER, symbol: u8:0, match_offset: u16:0, match_length: u16:0, mark: Mark::END} +]; +// Reference output +const TEST_SIMPLE_OUTPUT_LEN = u32:109; +const TEST_SIMPLE_OUTPUT = Lz4Data[TEST_SIMPLE_OUTPUT_LEN]: [ + PlainData{is_marker: false, data: u8:12, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:11, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:9, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:15, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:14, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:8, mark: Mark::NONE}, + PlainData{is_marker: true, data: u8:0, mark: Mark::END} +]; + +#[test_proc] +proc test_simple { + term: chan out; + recv_last_r: chan in; + + init {()} + + config(term: chan out) { + // tokens from sender and to decoder + let (send_toks_s, send_toks_r) = chan; + // symbols & last indicator from receiver + let (recv_data_s, recv_data_r) = chan; + let (recv_last_s, recv_last_r) = chan; + + + spawn test::token_sender< + TEST_SIMPLE_INPUT_LEN, SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, + MATCH_LENGTH_WIDTH + >(TEST_SIMPLE_INPUT, send_toks_s); + spawn decoder_model(send_toks_r, recv_data_s); + spawn test::data_validator( + TEST_SIMPLE_OUTPUT, recv_data_r, recv_last_s); + + (term, recv_last_r) + } + + next (tok: token, state: ()) { + let (tok, recv_term) = recv(tok, recv_last_r); + send(tok, term, recv_term); + } +} diff --git a/xls/modules/dbe/lz4_encoder.x b/xls/modules/dbe/lz4_encoder.x index 62d64d75b4..eb560824a9 100644 --- a/xls/modules/dbe/lz4_encoder.x +++ b/xls/modules/dbe/lz4_encoder.x @@ -20,6 +20,8 @@ type Mark = dbe::Mark; type TokenKind = dbe::TokenKind; type Token = dbe::Token; type PlainData = dbe::PlainData; +type Lz4Token = dbe::Lz4Token; +type Lz4Data = dbe::Lz4Data; type AbstractRamWriteReq = ram::WriteReq; type AbstractRamWriteResp = ram::WriteResp; type AbstractRamReadReq = ram::ReadReq; @@ -621,99 +623,41 @@ pub proc encoder_base< } } -/// Version of `encoder_base` that uses RamModel -/// Intended to be used only for tests -pub proc encoder_base_modelram< - SYMBOL_WIDTH: u32, MATCH_OFFSET_WIDTH: u32, MATCH_LENGTH_WIDTH: u32, - HASH_SYMBOLS: u32, HASH_WIDTH: u32, DO_CLEAR_HASH_TABLE: bool -> { - init{()} - - config ( - plain_data: chan> in, - encoded_data: - chan< - Token - > out, - ) { - let (hb_rd_req_s, hb_rd_req_r) = - chan>; - let (hb_rd_resp_s, hb_rd_resp_r) = - chan>; - let (hb_wr_req_s, hb_wr_req_r) = - chan>; - let (hb_wr_comp_s, hb_wr_comp_r) = - chan; - let (ht_rd_req_s, ht_rd_req_r) = - chan>; - let (ht_rd_resp_s, ht_rd_resp_r) = - chan>; - let (ht_wr_req_s, ht_wr_req_r) = - chan>; - let (ht_wr_comp_s, ht_wr_comp_r) = - chan; - - spawn ram::RamModel< - SYMBOL_WIDTH, {u32:1<(hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); - spawn ram::RamModel< - MATCH_OFFSET_WIDTH, {u32:1<(ht_rd_req_r, ht_rd_resp_s, ht_wr_req_r, ht_wr_comp_s); - - spawn encoder_base< - SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, MATCH_LENGTH_WIDTH, - HASH_SYMBOLS, HASH_WIDTH, DO_CLEAR_HASH_TABLE - > ( - plain_data, encoded_data, - hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, - ht_rd_req_s, ht_rd_resp_r, ht_wr_req_s, ht_wr_comp_r, - ); - } - - next (tok: token, state: ()) { - } -} - -/// LZ4 encoder with 8K hash table - -const LZ4_SYMBOL_WIDTH = u32:8; -const LZ4_OFFSET_WIDTH = u32:16; -const LZ4_COUNT_WIDTH = u32:16; -const LZ4_HASH_SYMBOLS = u32:4; -const LZ4_HASH_WIDTH_8K = u32:13; +/// Version of encoder compatible with classic LZ4 algorithm +pub type Lz4EncoderRamHbReadReq = ram::ReadReq; +pub type Lz4EncoderRamHbReadResp = ram::ReadResp; +pub type Lz4EncoderRamHbWriteReq = ram::WriteReq< + dbe::LZ4_MATCH_OFFSET_WIDTH, + dbe::LZ4_SYMBOL_WIDTH, 1 + >; -pub proc encoder_8k { +pub proc encoder { init{()} config ( - plain_data: - chan> in, - encoded_data: - chan< - Token - > out, - ram_hb_rd_req: chan> out, - ram_hb_rd_resp: chan> in, - ram_hb_wr_req: - chan< - AbstractRamWriteReq - > out, + plain_data: chan in, + encoded_data:chan out, + ram_hb_rd_req: chan out, + ram_hb_rd_resp: chan in, + ram_hb_wr_req: chan out, ram_hb_wr_comp: chan in, - ram_ht_rd_req: chan> out, - ram_ht_rd_resp: chan> in, - ram_ht_wr_req: - chan< - AbstractRamWriteReq - > out, + ram_ht_rd_req: chan> out, + ram_ht_rd_resp: chan > in, + ram_ht_wr_req: chan > out, ram_ht_wr_comp: chan in, ) { spawn encoder_base < - LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, LZ4_COUNT_WIDTH, - LZ4_HASH_SYMBOLS, LZ4_HASH_WIDTH_8K, true + dbe::LZ4_SYMBOL_WIDTH, + dbe::LZ4_MATCH_OFFSET_WIDTH, + dbe::LZ4_MATCH_LENGTH_WIDTH, + dbe::LZ4_HASH_SYMBOLS, + HASH_WIDTH, + DO_CLEAR_HASH_TABLE > ( plain_data, encoded_data, ram_hb_rd_req, ram_hb_rd_resp, ram_hb_wr_req, ram_hb_wr_comp, @@ -725,99 +669,41 @@ pub proc encoder_8k { } } -/// Version of `encoder_8k` that uses RamModel -/// Intended to be used only for tests -pub proc encoder_8k_modelram { +/// Encoder with 8K hash table +pub type Lz4Encoder8kRamHtReadReq = ram::ReadReq; +pub type Lz4Encoder8kRamHtReadResp = ram::ReadResp; +pub type Lz4Encoder8kRamHtWriteReq = ram::WriteReq< + dbe::LZ4_HASH_WIDTH_8K, + dbe::LZ4_MATCH_OFFSET_WIDTH, + 1 + >; + +pub proc encoder_8k { init{()} config ( plain_data: - chan> in, + chan in, encoded_data: - chan> out, + chan out, + ram_hb_rd_req: chan out, + ram_hb_rd_resp: chan in, + ram_hb_wr_req: chan out, + ram_hb_wr_comp: chan in, + ram_ht_rd_req: chan out, + ram_ht_rd_resp: chan in, + ram_ht_wr_req: chan out, + ram_ht_wr_comp: chan in, ) { - spawn encoder_base_modelram< - LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, LZ4_COUNT_WIDTH, - LZ4_HASH_SYMBOLS, LZ4_HASH_WIDTH_8K, false - > (plain_data, encoded_data); - } - - next (tok: token, state: ()) { - } -} - -/// -/// Tests -/// - -import xls.modules.dbe.common_test as test - -const TEST_DATA_LEN = u32:10; -const TEST_DATA = PlainData<8>[TEST_DATA_LEN]: [ - // Check basic LT and MATCH generation - PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, - PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, - PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, - PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, - PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, - // Final token sequence - PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, - PlainData{is_marker: true, data: u8:0, mark: Mark::END}, -]; - -const TEST_TOKENS_LEN = u32:11; -const TEST_TOKENS = Token< - LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, LZ4_COUNT_WIDTH ->[TEST_TOKENS_LEN]: [ - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16:1, match_length: u16:3, mark: Mark::NONE}, - // Final token sequence - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, - Token{kind: TokenKind::MARKER, symbol: u8:0, match_offset: u16:0, match_length: u16:0, mark: Mark::END}, -]; - -#[test_proc] -proc test_encoder_8k_simple { - term: chan out; - recv_term_r: chan in; - - init {()} - - config(term: chan out) { - let (send_data_s, send_data_r) = - chan>; - let (enc_toks_s, enc_toks_r) = - chan>; - let (recv_term_s, recv_term_r) = - chan; - - spawn test::data_sender - (TEST_DATA, send_data_s); - spawn encoder_8k_modelram( - send_data_r, enc_toks_s, - ); - spawn test::token_validator< - TEST_TOKENS_LEN, LZ4_SYMBOL_WIDTH, LZ4_OFFSET_WIDTH, - LZ4_COUNT_WIDTH - >(TEST_TOKENS, enc_toks_r, recv_term_s); - - (term, recv_term_r) + spawn encoder( + plain_data, encoded_data, + ram_hb_rd_req, ram_hb_rd_resp, + ram_hb_wr_req, ram_hb_wr_comp, + ram_ht_rd_req, ram_ht_rd_resp, + ram_ht_wr_req, ram_ht_wr_comp + ); } next (tok: token, state: ()) { - let (tok, recv_term) = recv(tok, recv_term_r); - send(tok, term, recv_term); } } diff --git a/xls/modules/dbe/lz4_encoder_test.x b/xls/modules/dbe/lz4_encoder_test.x new file mode 100644 index 0000000000..43e4019e36 --- /dev/null +++ b/xls/modules/dbe/lz4_encoder_test.x @@ -0,0 +1,139 @@ +// Copyright 2023 The XLS Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import xls.examples.ram as ram +import xls.modules.dbe.common as dbe +import xls.modules.dbe.common_test as test +import xls.modules.dbe.lz4_encoder as lz4_encoder + +type Mark = dbe::Mark; +type TokenKind = dbe::TokenKind; +type Token = dbe::Token; +type PlainData = dbe::PlainData; +type Lz4Token = dbe::Lz4Token; +type Lz4Data = dbe::Lz4Data; +type Lz4EncoderRamHbReadReq = lz4_encoder::Lz4EncoderRamHbReadReq; +type Lz4EncoderRamHbReadResp = lz4_encoder::Lz4EncoderRamHbReadResp; +type Lz4EncoderRamHbWriteReq = lz4_encoder::Lz4EncoderRamHbWriteReq; +type Lz4Encoder8kRamHtReadReq = lz4_encoder::Lz4Encoder8kRamHtReadReq; +type Lz4Encoder8kRamHtReadResp = lz4_encoder::Lz4Encoder8kRamHtReadResp; +type Lz4Encoder8kRamHtWriteReq = lz4_encoder::Lz4Encoder8kRamHtWriteReq; + +const SYMBOL_WIDTH = dbe::LZ4_SYMBOL_WIDTH; +const MATCH_OFFSET_WIDTH = dbe::LZ4_MATCH_OFFSET_WIDTH; +const MATCH_LENGTH_WIDTH = dbe::LZ4_MATCH_LENGTH_WIDTH; +const HASH_SYMBOLS = dbe::LZ4_HASH_SYMBOLS; +const HASH_WIDTH = dbe::LZ4_HASH_WIDTH_8K; + +/// Version of encoder that uses RamModel, intended for tests only +pub proc encoder_8k_model { + init{()} + + config ( + plain_data: chan in, + encoded_data: chan out, + ) { + let (hb_rd_req_s, hb_rd_req_r) = chan; + let (hb_rd_resp_s, hb_rd_resp_r) = chan; + let (hb_wr_req_s, hb_wr_req_r) = chan; + let (hb_wr_comp_s, hb_wr_comp_r) = chan; + let (ht_rd_req_s, ht_rd_req_r) = chan; + let (ht_rd_resp_s, ht_rd_resp_r) = chan; + let (ht_wr_req_s, ht_wr_req_r) = chan; + let (ht_wr_comp_s, ht_wr_comp_r) = chan; + + spawn ram::RamModel< + SYMBOL_WIDTH, {u32:1<(hb_rd_req_r, hb_rd_resp_s, hb_wr_req_r, hb_wr_comp_s); + spawn ram::RamModel< + MATCH_OFFSET_WIDTH, {u32:1<(ht_rd_req_r, ht_rd_resp_s, ht_wr_req_r, ht_wr_comp_s); + + spawn lz4_encoder::encoder ( + plain_data, encoded_data, + hb_rd_req_s, hb_rd_resp_r, hb_wr_req_s, hb_wr_comp_r, + ht_rd_req_s, ht_rd_resp_r, ht_wr_req_s, ht_wr_comp_r, + ); + } + + next (tok: token, state: ()) { + } +} + +const TEST_DATA_LEN = u32:10; +const TEST_DATA = Lz4Data[TEST_DATA_LEN]: [ + // Check basic LT and MATCH generation + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + // Final token sequence + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: true, data: u8:0, mark: Mark::END}, +]; + +const TEST_TOKENS_LEN = u32:11; +const TEST_TOKENS = Lz4Token[TEST_TOKENS_LEN]: [ + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:1, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCHED_SYMBOL, symbol: u8:2, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MATCH, symbol: u8:0, match_offset: u16:1, match_length: u16:3, mark: Mark::NONE}, + // Final token sequence + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::UNMATCHED_SYMBOL, symbol: u8:7, match_offset: u16:0, match_length: u16:0, mark: Mark::NONE}, + Token{kind: TokenKind::MARKER, symbol: u8:0, match_offset: u16:0, match_length: u16:0, mark: Mark::END}, +]; + +#[test_proc] +proc test_encoder_8k_simple { + term: chan out; + recv_term_r: chan in; + + init {()} + + config(term: chan out) { + let (send_data_s, send_data_r) = chan; + let (enc_toks_s, enc_toks_r) = chan; + let (recv_term_s, recv_term_r) = chan; + + spawn test::data_sender + (TEST_DATA, send_data_s); + spawn encoder_8k_model( + send_data_r, enc_toks_s, + ); + spawn test::token_validator< + TEST_TOKENS_LEN, SYMBOL_WIDTH, MATCH_OFFSET_WIDTH, + MATCH_LENGTH_WIDTH + >(TEST_TOKENS, enc_toks_r, recv_term_s); + + (term, recv_term_r) + } + + next (tok: token, state: ()) { + let (tok, recv_term) = recv(tok, recv_term_r); + send(tok, term, recv_term); + } +} diff --git a/xls/modules/dbe/lz4_round_trip_test.x b/xls/modules/dbe/lz4_round_trip_test.x new file mode 100644 index 0000000000..2965017232 --- /dev/null +++ b/xls/modules/dbe/lz4_round_trip_test.x @@ -0,0 +1,88 @@ +// Copyright 2023 The XLS Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import xls.examples.ram as ram +import xls.modules.dbe.common as dbe +import xls.modules.dbe.common_test as test +import xls.modules.dbe.lz4_encoder as lz4_encoder +import xls.modules.dbe.lz4_encoder_test as lz4_encoder_test +import xls.modules.dbe.lz4_decoder as lz4_decoder +import xls.modules.dbe.lz4_decoder_test as lz4_decoder_test + +type Mark = dbe::Mark; +type TokenKind = dbe::TokenKind; +type Token = dbe::Token; +type PlainData = dbe::PlainData; +type Lz4Token = dbe::Lz4Token; +type Lz4Data = dbe::Lz4Data; + +const TEST_DATA_LEN = u32:22; +const TEST_DATA = Lz4Data[TEST_DATA_LEN]: [ + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:4, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:5, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:6, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:1, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:2, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:3, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:4, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:5, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:6, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: false, data: u8:7, mark: Mark::NONE}, + PlainData{is_marker: true, data: u8:0, mark: Mark::END}, +]; + +/// Round-trip test +#[test_proc] +proc test_encoder_8k_round_trip { + term: chan out; + recv_term_r: chan in; + + init {()} + + config(term: chan out) { + let (send_data_s, send_data_r) = chan; + let (enc_toks_s, enc_toks_r) = chan; + let (recv_data_s, recv_data_r) = chan; + let (recv_term_s, recv_term_r) = chan; + + spawn test::data_sender + (TEST_DATA, send_data_s); + spawn lz4_encoder_test::encoder_8k_model( + send_data_r, enc_toks_s, + ); + spawn lz4_decoder_test::decoder_model( + enc_toks_r, recv_data_s, + ); + spawn test::data_validator + (TEST_DATA, recv_data_r, recv_term_s); + + (term, recv_term_r) + } + + next (tok: token, state: ()) { + let (tok, recv_term) = recv(tok, recv_term_r); + send(tok, term, recv_term); + } +} From 9e02abbfc1ebed2fd0b4346b436b7b507ac63e11 Mon Sep 17 00:00:00 2001 From: Roman Dobrodii Date: Tue, 12 Sep 2023 20:46:30 +0200 Subject: [PATCH 7/7] modules/dbe: update docs Add information on match token rewriting. Signed-off-by: Roman Dobrodii --- xls/modules/dbe/docs/README.md | 268 +++++++++++++++++++++++++++++++++ 1 file changed, 268 insertions(+) diff --git a/xls/modules/dbe/docs/README.md b/xls/modules/dbe/docs/README.md index cb354b76d3..c9462d4cec 100644 --- a/xls/modules/dbe/docs/README.md +++ b/xls/modules/dbe/docs/README.md @@ -227,6 +227,274 @@ pub struct Token< the current *MATCH* token, generating a repetitive sequence of characters, which resembles the behavior of a multisymbol *Run-Length Encoder*. +### Special considerations (encoder) + +As previously mentioned, in response to the sequence of input symbols, the +encoder emits a sequence of compressed data tokens. There are certain rules +that the input data stream must obey for the encoder to generate a correct +sequence: +1. The blocks are delimited by *END* markers. The encoder buffers a few + symbols internally. To ensure that all buffers are flushed and all symbols + are emitted, an input data block *must* be followed by the *END* marker + even if that's the last piece of data to be encoded. +2. A block consisting of no symbols and termianted with an *END* marker is + treated as an empty (zero length) block. +3. *END* marker terminates the block, but does not reset the encoder's history. + Therefore, the block that follows the *END* marker is treated as a + *depdendent* block and generated *MATCH* tokens may refer to the data from + the previous block. To introduce an *independent* block, encoder's state + must be reset using a *RESET* marker. Therefore, a correct way to terminate + one block and begin a new independent block will be to feed two markers to + the encoder: an *END* followed by a *RESET*. +4. When the encoder is initialized, it enters the state that is equivalent + to the one entered after receiving a *RESET* marker. Therefore, it is not + necessary to issue a *RESET* marker before the first block - it is + implicitly treated as an independent block. + +The output token stream is formatted as follows: +1. Tokens are emitted in order that matches the order of input symbols and + markers. +2. Each incoming *END* marker produces one *END* marker token. +3. Each incoming *RESET* marker produces one *RESET* marker token. +4. Each incoming symbol produces one *symbolic* token: + either an *UNMATCHED_SYMBOL* or a *MATCHED_SYMBOL*. The symbol contained + within the token matches the input symbol. +5. Each sequence of one or more *MATCHED_SYMBOL* tokens is a matching string. + Such a sequence is always followed by a single *MATCH* token, in which the + *match offset* and *match length* fields encode the same payload as the + preceding *MATCHED_SYMBOL* tokens. +6. Emission of *x_SYMBOL* and *MATCH* tokens is subject to internal buffering, + and can be delayed with respect to the input data consumed by the encoder. +7. *END* marker flushes the internal buffers and makes the encoder to emit all + the *x_SYMBOL* and *MATCH* tokens that have not been emitted yet. +8. *RESET* marker immediately clears the internal buffers without flushing, + which may result in loss of data if it is not immediately preceded by the + *END* marker. +9. The encoder does not emit single-symbol matches - they are emitted directly + as an *UNMATCHED_SYMBOL*. + + +#### Encoding examples + +**Example 1** + +Sequence without repetitions, thus no matches are emitted. + +Input: +``` + 0: 'A' + 1: 'B' + 2: 'C' + 3: 'D' + 4: 'E' + 5: 'F' + 6: Mark::END +``` + +Output: +``` + 0: UNMATCHED_SYMBOL 'A' + 1: UNMATCHED_SYMBOL 'B' + 2: UNMATCHED_SYMBOL 'C' + 3: UNMATCHED_SYMBOL 'D' + 4: UNMATCHED_SYMBOL 'E' + 5: UNMATCHED_SYMBOL 'F' + 6: MARKER Mark::END +``` + +**Example 2** + +Single symbol repeated, single match (RLE-like behavior). + +Input: +``` + 0: 'A' + 1: 'A' + 2: 'A' + 3: 'A' + 4: 'A' + 5: 'A' + 6: Mark::END +``` + +Output: +``` + 0: UNMATCHED_SYMBOL 'A' + 1: MATCHED_SYMBOL 'A' + 2: MATCHED_SYMBOL 'A' + 3: MATCHED_SYMBOL 'A' + 4: MATCHED_SYMBOL 'A' + 5: MATCHED_SYMBOL 'A' + 6: MATCH offset=0 length=4 (length of matching string minus one) + 6: MARKER Mark::END +``` + +**Example 3** + +A string repeated, single match. + +Input: +``` + 0: 'A' + 1: 'B' + 2: 'C' + 3: 'A' + 4: 'B' + 5: 'C' + 6: 'A' + 7: 'B' + 8: 'C' + 9: Mark::END +``` + +Output: +``` + 0: UNMATCHED_SYMBOL 'A' + 1: UNMATCHED_SYMBOL 'B' + 2: UNMATCHED_SYMBOL 'C' + 3: MATCHED_SYMBOL 'A' + 4: MATCHED_SYMBOL 'B' + 5: MATCHED_SYMBOL 'C' + 6: MATCHED_SYMBOL 'A' + 7: MATCHED_SYMBOL 'B' + 8: MATCHED_SYMBOL 'C' + 9: MATCH offset=2 length=5 +10: MARKER Mark::END +``` + +**Example 4** + +Several matches of different lengths. + +Input: +``` + 0: 'A' + 1: 'E' + 2: 'T' + 3: 'H' + 4: 'E' + 5: 'R' + 6: 'I' + 7: 'S' + 8: 'A' + 9: 'E' +10: 'T' +11: 'E' +12: 'R' +13: 'N' +14: 'I' +15: Mark::END +``` + +Output: +``` + 0: UNMATCHED_SYMBOL 'A' + 1: UNMATCHED_SYMBOL 'E' + 2: UNMATCHED_SYMBOL 'T' + 3: UNMATCHED_SYMBOL 'H' + 4: UNMATCHED_SYMBOL 'E' + 5: UNMATCHED_SYMBOL 'R' + 6: UNMATCHED_SYMBOL 'I' + 7: UNMATCHED_SYMBOL 'S' + 8: MATCHED_SYMBOL 'A' + 9: MATCHED_SYMBOL 'E' +10: MATCHED_SYMBOL 'T' +11: MATCH offset=7 length=2 +12: MATCHED_SYMBOL 'E' +13: MATCHED_SYMBOL 'R' +14: MATCH offset=6 length=1 +15: UNMATCHED_SYMBOL 'N' +16: UNMATCHED_SYMBOL 'I' +17: MARKER Mark::END +``` + +#### Rewriting matches + +It is possible to use *MATCHED_SYMBOL* tokens emitted by the decoder to +rewrite (modify, or replace by *UNMATCHED_SYMBOL*) matches produced by +the encoder. If *MATCHED_SYMBOL* tokens are also preserved, this allows one to +implement a sequence of token post-processors that each perform their own +kind of operation. + +Considering the fact that the tokens can only be accessed sequentially (no +random access unless they are buffered somewhere), the set of operations that +can be performed on the matches is limited. Since the attributes of the +matching string (offset and length) are communicated within the *MATCH* token +that is seen only after observing all the *MATCHED_SYMBOL* tokens, all the +permutations of the matching strings use the *end* of the matching string as +a reference and require a FIFO-like buffering of matched symbols. + +**Operation 1 - unmatching the match** + +The decoded plaintext will not change if the post-processor: +1. Identifies a complete matching string, that is a string of *MATCHED_SYMBOL* + tokens preceded by a token of any other type, and followed by a *MATCH* + token. +2. Changes the type of the *MATCHED_SYMBOL* tokens to *UNMATCHED_SYMBOL*. +3. Removes the terminating *MATCH* token. + +Since this operation will usually be performed only on matches that fulfill +certain condition (e.g. "*unmatch the matches shorter than 4 symbols*"), and +that condition can only be evaluated after the *MATCH* token has been observed, +the data for the complete match to be rewritten has to be buffered. However +if, while processing the match, it becomes known that the match doesn't have to +be rewritten, then there is no need for further buffering of its contents. + +For example, if the goal is to remove all matches shorter than 4 symbols, +while keeping matches of 4 or more symbols intact (a requirement prescribed by +the LZ4 block format), the post-processor will have to buffer up to 4 +*MATCHED_SYMBOL* tokens in a FIFO. If there are more than 4 *MATCHED_SYMBOL* +tokens, the FIFO is flushed and the match is passed through as-is. Otherwise, +the symbols from the FIFO are emitted as *UNMATCHED_SYMBOL*-s and the final +*MATCH* token is omitted. + +**Operation 2 - splitting the match** + +The match of length *N* can be split into two smaller matches of lengths *N-M* +and *M* (*0 < M < N*) if the post-processor: +1. Identifies a complete matching string, that is a string of *MATCHED_SYMBOL* + tokens preceded by a token of any other type, and followed by a *MATCH* + token, where the *MATCH* token specifies *offset=K* and *length=N-1*. +2. Emits first *N-M* symbol tokens as-is. +3. Emits a *MATCH* token with: + - *offset = K* + - *length = N-M-1* +4. Emits next *M* symbol tokens as-is. +5. Emits a *MATCH* token with: + - *offset = K* + - *length = M-1* + +Like operation 1, to know the parameters of the match (e.g. the offset that is +emitted within the *MATCH* token at step *3* above), the post-processor has +to buffer symbols of the matching string. However, unlike operation 1, +since the symbols for the first sub-match are emitted completely intact up to +the newly-inserted *MATCH* token, the post-processor needs to buffer only the +symbols from the second sub-match of length *M*. + +A practical post-processor is thus possible if there is a known upper limit on +*M* (the length of the second sub-match), since that also sets an upper limit +on the size of the internal buffer. + +For example, LZ4 block format spec stipulates that: +1. The last 5 bytes of input are always literals. +2. The last match must start at least 12 bytes before the end of block. + +Both of these conditions can be fulfilled by a post-processor that ensures that +the last 12 symbols of a block are emitted as *UNMATCHED_SYMBOL*-s. + +It can be realized by: +1. Delaying the token stream by passing it through a FIFO of 15 elements (the + worst case: 12 matched or unmatched symbol tokens and at most 3 match + tokens) until the *END* marker is observed. +2. If some match crosses the boundary of the FIFO, splitting the match at the + FIFO boundary, emitting the first half as a match and unmatching the second + half (up to 14 symbols long, fully stored within the FIFO). +3. Unmatching all the matches remaining in the FIFO, if any (symbols of those + matching strings are fully contained in the FIFO). +4. Flushing the FIFO, which at this point contains only *UNMATCHED_SYMBOL* + tokens. + + ### FSM A state diagram of the FSM is displayed below:

(EbM>rxe!yDm~*(c#4M|IN(# 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 >>29La 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 literal 0 HcmV?d00001 diff --git a/xls/modules/dbe/docs/lz4_encoder_states.png b/xls/modules/dbe/docs/lz4_encoder_states.png new file mode 100644 index 0000000000000000000000000000000000000000..0060498eae3bf1b3e99afb206f7e87ecef563093 GIT binary patch literal 475765 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 z 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