aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xicebox/icebox_vlog.py11
-rw-r--r--icetime/icetime.cc11
2 files changed, 14 insertions, 8 deletions
diff --git a/icebox/icebox_vlog.py b/icebox/icebox_vlog.py
index 5736011..a86f11e 100755
--- a/icebox/icebox_vlog.py
+++ b/icebox/icebox_vlog.py
@@ -350,6 +350,7 @@ for segs in sorted(ic.group_segments(extra_connections=extra_connections, extra_
if re.match(r"ram/RDATA_", s[2]): count_drivers += 1
if re.match(r"io_./D_IN_", s[2]): count_drivers += 1
if re.match(r"lutff_./out", s[2]): count_drivers += 1
+ if re.match(r"lutff_./lout", s[2]): count_drivers += 1
if count_drivers != 1 and check_driver:
failed_drivers_check.append(n)
@@ -851,11 +852,11 @@ for lut in luts_queue:
l_expr = make_lut_expr(bits[0:len(bits)//2], sigs[1:])
h_expr = make_lut_expr(bits[len(bits)//2:len(bits)], sigs[1:])
if h_expr == l_expr: return h_expr
- if sigs[0] == "0": return l_expr
- if sigs[0] == "1": return h_expr
- if h_expr == "1" and l_expr == "0": return sigs[0]
- if h_expr == "0" and l_expr == "1": return "!" + sigs[0]
- return "%s ? %s : %s" % (sigs[0], h_expr, l_expr)
+ if sigs[0] == "1'b0": return l_expr
+ if sigs[0] == "1'b1": return h_expr
+ if h_expr == "1'b1" and l_expr == "1'b0": return sigs[0]
+ if h_expr == "1'b0" and l_expr == "1'b1": return "!" + sigs[0]
+ return "(%s ? %s : %s)" % (sigs[0], h_expr, l_expr)
lut_expr = make_lut_expr(lut_bits, [net_in3, net_in2, net_in1, net_in0])
lut_assigns.append([net_lout, "/* LUT %2d %2d %2d */ %s" % (lut[0], lut[1], lut[2], lut_expr)])
max_net_len = max(max_net_len, len(net_lout))
diff --git a/icetime/icetime.cc b/icetime/icetime.cc
index f9e0994..532d912 100644
--- a/icetime/icetime.cc
+++ b/icetime/icetime.cc
@@ -26,12 +26,13 @@
#include <string.h>
#include <stdarg.h>
+#include <algorithm>
#include <functional>
-#include <string>
-#include <vector>
-#include <tuple>
#include <map>
#include <set>
+#include <string>
+#include <tuple>
+#include <vector>
#ifdef __EMSCRIPTEN__
#include <emscripten.h>
@@ -2331,6 +2332,8 @@ int main(int argc, char **argv)
fflush(stdout);
read_config();
+ std::transform(config_device.begin(), config_device.end(), config_device.begin(), ::tolower);
+
if (device_type.empty()) {
if(config_device == "5k")
device_type = "up" + config_device;
@@ -2339,6 +2342,8 @@ int main(int argc, char **argv)
printf("// Warning: Missing -d parameter. Assuming '%s' device.\n", device_type.c_str());
}
+ std::transform(device_type.begin(), device_type.end(), device_type.begin(), ::tolower);
+
if (device_type == "lp384") {
if (config_device != "384")
goto device_chip_mismatch;