From d76ac32ec939e421190d8e41ee0ad5e5eacbddd5 Mon Sep 17 00:00:00 2001
From: Simon Schubert <2@0x2c.org>
Date: Wed, 20 Feb 2019 11:06:01 +0100
Subject: iCE40 Ultra = iCE5LP = u4k port

---
 icefuzz/tests/osc/osc.py | 75 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100755 icefuzz/tests/osc/osc.py

(limited to 'icefuzz/tests/osc')

diff --git a/icefuzz/tests/osc/osc.py b/icefuzz/tests/osc/osc.py
new file mode 100755
index 0000000..231ce01
--- /dev/null
+++ b/icefuzz/tests/osc/osc.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python3
+
+import os, sys
+
+device = "u4k"
+
+if not os.path.exists("./work_osc"):
+    os.mkdir("./work_osc")
+
+def run(route_fabric):
+    name = "./work_osc/osc_cbit_fabric_%d" % route_fabric
+    with open(name+'.v',"w") as f:
+        print("""
+    module top(
+        input clkhfpu,
+        input clkhfen,
+        input clklfpu,
+        input clklfen,
+        output pin,
+        output pin2,
+        input data
+        );
+
+    wire clkhf;
+    SB_HFOSC #(
+        .CLKHF_DIV("%s")
+    ) hfosc (
+        .CLKHFPU(clkhfpu),
+        .CLKHFEN(clkhfen),
+        .CLKHF(clkhf)
+    ); /* synthesis ROUTE_THROUGH_FABRIC = %d */
+
+    SB_IO #(
+        .PIN_TYPE(6'b 0101_00)
+    ) pin_obuf (
+        .PACKAGE_PIN(pin),
+        .OUTPUT_CLK(clkhf),
+        .D_OUT_0(data)
+    );
+
+    wire clklf;
+    SB_LFOSC lfosc (
+        .CLKLFPU(clklfpu),
+        .CLKLFEN(clklfen),
+        .CLKLF(clklf)
+    ); /* synthesis ROUTE_THROUGH_FABRIC = %d */
+
+    SB_IO #(
+        .PIN_TYPE(6'b 0101_00)
+    ) pin2_obuf (
+        .PACKAGE_PIN(pin2),
+        .OUTPUT_CLK(clklf),
+        .D_OUT_0(data)
+    );
+
+    endmodule
+    """ % (
+        "0b11", route_fabric, route_fabric
+        ), file=f)
+
+    retval = os.system("bash ../../icecube.sh -" + device + " " + name+".v > ./work_osc/icecube.log 2>&1")
+    if retval != 0:
+        sys.stderr.write('ERROR: icecube returned non-zero error code\n')
+        sys.exit(1)
+    retval = os.system("../../../icebox/icebox_explain.py " + name+".asc > " + name+".exp")
+    if retval != 0:
+        sys.stderr.write('ERROR: icebox_explain returned non-zero error code\n')
+        sys.exit(1)
+    retval = os.system("../../../icebox/icebox_vlog.py " + name+".asc > " + name+".ve")
+    if retval != 0:
+        sys.stderr.write('ERROR: icebox_vlog returned non-zero error code\n')
+        sys.exit(1)
+
+run(0)
+run(1)
-- 
cgit v1.2.3