From: whitequark Date: Fri, 24 Apr 2020 05:50:10 +0000 (+0000) Subject: cxxrtl: improve printing of narrow memories. X-Git-Tag: working-ls180~586^2~1 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f88378ae616b331d43ccc99797e239785bab7644;p=yosys.git cxxrtl: improve printing of narrow memories. --- diff --git a/backends/cxxrtl/cxxrtl.cc b/backends/cxxrtl/cxxrtl.cc index 89e58622c..74e2a2891 100644 --- a/backends/cxxrtl/cxxrtl.cc +++ b/backends/cxxrtl/cxxrtl.cc @@ -726,12 +726,13 @@ struct CxxrtlWorker { void dump_const_init(const RTLIL::Const &data, int width, int offset = 0, bool fixed_width = false) { + const int CHUNK_SIZE = 32; f << "{"; while (width > 0) { - const int CHUNK_SIZE = 32; - uint32_t chunk = data.extract(offset, width > CHUNK_SIZE ? CHUNK_SIZE : width).as_int(); + int chunk_width = min(width, CHUNK_SIZE); + uint32_t chunk = data.extract(offset, chunk_width).as_int(); if (fixed_width) - f << stringf("0x%08xu", chunk); + f << stringf("0x%.*xu", chunk_width / 4, chunk); else f << stringf("%#xu", chunk); if (width > CHUNK_SIZE)