From 7c623182393aa2e8445336a99f0cfd4bc7c7e88f Mon Sep 17 00:00:00 2001 From: eddiehung Date: Sun, 3 May 2015 12:53:09 +0100 Subject: Fix for all zero mask --- backends/blif/blif.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'backends/blif/blif.cc') diff --git a/backends/blif/blif.cc b/backends/blif/blif.cc index 3a4618a90..2734ca321 100644 --- a/backends/blif/blif.cc +++ b/backends/blif/blif.cc @@ -234,13 +234,24 @@ struct BlifDumper f << stringf(" %s", cstr(output)); f << stringf("\n"); RTLIL::SigSpec mask = cell->parameters.at("\\LUT"); + bool one = false; for (int i = 0; i < (1 << width); i++) if (mask[i] == RTLIL::S1) { for (int j = width-1; j >= 0; j--) { f << ((i>>j)&1 ? '1' : '0'); } f << " 1\n"; + one = true; } + /* For some reason, sometimes we get LUTs with + * an all zero mask, which won't give any + * .names entries, so write one entry with + * all don't cares */ + if (!one) { + for (int j = width-1; j >= 0; j--) + f << '-'; + f << " 0\n"; + } continue; } -- cgit v1.2.3