From: Clifford Wolf Date: Sat, 30 Aug 2014 12:43:06 +0000 (+0200) Subject: Don't change existing binary FSM encoding if it is already optimal X-Git-Tag: yosys-0.4~199 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3a7d5d188d4b9cfeb225e0f5dea07ee7a40eceed;p=yosys.git Don't change existing binary FSM encoding if it is already optimal --- diff --git a/passes/fsm/fsm_recode.cc b/passes/fsm/fsm_recode.cc index 9c0da0a37..ea10cdf80 100644 --- a/passes/fsm/fsm_recode.cc +++ b/passes/fsm/fsm_recode.cc @@ -82,7 +82,12 @@ static void fsm_recode(RTLIL::Cell *cell, RTLIL::Module *module, FILE *fm_set_fs fsm_data.state_bits = fsm_data.state_table.size(); } else if (encoding == "binary") { - fsm_data.state_bits = ceil(log2(fsm_data.state_table.size())); + int new_num_state_bits = ceil(log2(fsm_data.state_table.size())); + if (fsm_data.state_bits == new_num_state_bits) { + log(" existing encoding is already a packed binary encoding.\n"); + return; + } + fsm_data.state_bits = new_num_state_bits; } else log_error("FSM encoding `%s' is not supported!\n", encoding.c_str());