diff options
author | eddiehung <e.hung@imperial.ac.uk> | 2015-05-03 12:53:09 +0100 |
---|---|---|
committer | eddiehung <e.hung@imperial.ac.uk> | 2015-05-03 12:53:09 +0100 |
commit | 7c623182393aa2e8445336a99f0cfd4bc7c7e88f (patch) | |
tree | 2ff4da2da0cc9ff9517c8e48eb434818dc7a1887 | |
parent | 079c1205fec6d194114b3d031d78a23cb8e0e7f9 (diff) | |
download | yosys-7c623182393aa2e8445336a99f0cfd4bc7c7e88f.tar.gz yosys-7c623182393aa2e8445336a99f0cfd4bc7c7e88f.tar.bz2 yosys-7c623182393aa2e8445336a99f0cfd4bc7c7e88f.zip |
Fix for all zero mask
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | backends/blif/blif.cc | 11 |
2 files changed, 16 insertions, 1 deletions
@@ -1,5 +1,5 @@ -CONFIG := clang +CONFIG := icc # CONFIG := gcc # CONFIG := gcc-4.6 # CONFIG := emcc @@ -109,6 +109,10 @@ ABCMKARGS += ARCHFLAGS="-DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 -DWIN32 ABCMKARGS += LIBS="lib/x86/pthreadVC2.lib -s" READLINE=0 CC="$(CXX)" CXX="$(CXX)" EXE = .exe +else ifeq ($(CONFIG),icc) +CXX = icpc +CXXFLAGS += -std=gnu++0x -Os + else ifneq ($(CONFIG),none) $(error Invalid CONFIG setting '$(CONFIG)'. Valid values: clang, gcc, gcc-4.6, emcc, none) endif 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; } |