diff --git a/openfpga/src/fpga_verilog/verilog_top_testbench.cpp b/openfpga/src/fpga_verilog/verilog_top_testbench.cpp index 00e6a80f5..0f5640618 100644 --- a/openfpga/src/fpga_verilog/verilog_top_testbench.cpp +++ b/openfpga/src/fpga_verilog/verilog_top_testbench.cpp @@ -576,6 +576,7 @@ size_t calculate_num_config_clock_cycles(const e_config_protocol_type& sram_orgz case CONFIG_MEM_SCAN_CHAIN: /* For fast configuraiton, the bitstream size counts from the first bit '1' */ if (true == fast_configuration) { + size_t full_num_config_clock_cycles = num_config_clock_cycles; size_t num_bits_to_skip = 0; for (const FabricBitId& bit_id : fabric_bitstream.bits()) { if (true == bitstream_manager.bit_value(fabric_bitstream.config_bit(bit_id))) { @@ -583,7 +584,13 @@ size_t calculate_num_config_clock_cycles(const e_config_protocol_type& sram_orgz } num_bits_to_skip++; } - num_config_clock_cycles -= num_bits_to_skip; + + num_config_clock_cycles = full_num_config_clock_cycles - num_bits_to_skip; + + VTR_LOG("Fast configuration reduces number of configuration clock cycles from %lu to %lu (compression_rate = %f%)\n", + full_num_config_clock_cycles, + num_config_clock_cycles, + 100. * ((float)num_config_clock_cycles / (float)full_num_config_clock_cycles - 1.)); } break; case CONFIG_MEM_MEMORY_BANK: diff --git a/openfpga_flow/openfpga_arch/k4_N4_40nm_cc_openfpga.xml b/openfpga_flow/openfpga_arch/k4_N4_40nm_cc_openfpga.xml index 95359f565..f1db02ad1 100644 --- a/openfpga_flow/openfpga_arch/k4_N4_40nm_cc_openfpga.xml +++ b/openfpga_flow/openfpga_arch/k4_N4_40nm_cc_openfpga.xml @@ -96,8 +96,8 @@ - - + + @@ -105,17 +105,8 @@ - - - - - - - - - - - + + @@ -170,10 +161,10 @@ - + - + @@ -190,7 +181,7 @@ - +