aboutsummaryrefslogtreecommitdiffstats
path: root/icefuzz
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2017-11-23 19:45:27 +0000
committerDavid Shah <davey1576@gmail.com>2017-11-23 19:45:27 +0000
commitbd6cf518f3e584446fa1c9f4085705bd36cd4a0c (patch)
treecedd14d2264beb33186a871d05584f7679963af1 /icefuzz
parent9184fbdf404c0e94326919c92a27d3292994cdf1 (diff)
downloadicestorm-bd6cf518f3e584446fa1c9f4085705bd36cd4a0c.tar.gz
icestorm-bd6cf518f3e584446fa1c9f4085705bd36cd4a0c.tar.bz2
icestorm-bd6cf518f3e584446fa1c9f4085705bd36cd4a0c.zip
Begin I2C/SPI IP reverse engineering
Diffstat (limited to 'icefuzz')
-rw-r--r--icefuzz/tests/sb_i2c.pcf21
-rw-r--r--icefuzz/tests/sb_i2c.v48
-rw-r--r--icefuzz/tests/sb_i2c_io.pcf18
-rw-r--r--icefuzz/tests/sb_i2c_io.v66
4 files changed, 153 insertions, 0 deletions
diff --git a/icefuzz/tests/sb_i2c.pcf b/icefuzz/tests/sb_i2c.pcf
new file mode 100644
index 0000000..32aad48
--- /dev/null
+++ b/icefuzz/tests/sb_i2c.pcf
@@ -0,0 +1,21 @@
+set_io sbclki 2
+set_io sbrwi 3
+set_io sbstbi 4
+set_io sbadri0 6
+set_io sbadri1 9
+set_io sbadri7 10
+set_io sbdati0 11
+set_io sbdati1 12
+set_io sbdati7 13
+set_io sbdato0 14
+set_io sbdato1 15
+set_io sbdato7 16
+set_io sbacko 17
+set_io i2cirq 18
+set_io i2cwkup 19
+set_io scli 20
+set_io sdai 21
+set_io sclo 23
+set_io scloe 25
+set_io sdao 26
+set_io sdaoe 27
diff --git a/icefuzz/tests/sb_i2c.v b/icefuzz/tests/sb_i2c.v
new file mode 100644
index 0000000..cd5e46a
--- /dev/null
+++ b/icefuzz/tests/sb_i2c.v
@@ -0,0 +1,48 @@
+module top (
+ input sbclki, sbrwi, sbstbi,
+ input sbadri0, sbadri1, sbadri7,
+ input sbdati0, sbdati1, sbdati7,
+ output sbdato0, sbdato1, sbdato7,
+ output sbacko, i2cirq, i2cwkup,
+ input scli, sdai,
+ output sclo, scloe, sdao, sdaoe
+);
+
+SB_I2C #(
+ .I2C_SLAVE_INIT_ADDR("0b1111100010"),
+ .BUS_ADDR74("0b0011")
+) i2c_ip (
+ .SBCLKI(sbclki),
+ .SBRWI(sbrwi),
+ .SBSTBI(sbstbi),
+
+ .SBADRI0(sbadri0),
+ .SBADRI1(sbadri1),
+ .SBADRI7(sbadri7),
+
+ .SBDATI0(sbdati0),
+ .SBDATI1(sbdati1),
+ .SBDATI7(sbdati7),
+
+ .SBDATO0(sbdato0),
+ .SBDATO1(sbdato1),
+ .SBDATO7(sbdato7),
+
+ .SBACKO(sbacko),
+ .I2CIRQ(i2cirq),
+ .I2CWKUP(i2cwkup),
+
+ .SCLI(scli),
+ .SCLO(sclo),
+ .SCLOE(scloe),
+
+ .SDAI(sdai),
+ .SDAO(sdao),
+ .SDAOE(sdaoe)
+)
+/* synthesis SDA_INPUT_DELAYED=1 */
+/* synthesis SDA_OUTPUT_DELAYED=1 */
+/* synthesis SCL_INPUT_FILTERED=1 */
+;
+
+endmodule \ No newline at end of file
diff --git a/icefuzz/tests/sb_i2c_io.pcf b/icefuzz/tests/sb_i2c_io.pcf
new file mode 100644
index 0000000..6d8e890
--- /dev/null
+++ b/icefuzz/tests/sb_i2c_io.pcf
@@ -0,0 +1,18 @@
+set_io sbclki 2
+set_io sbrwi 3
+set_io sbstbi 4
+set_io sbadri0 6
+set_io sbadri1 9
+set_io sbadri7 10
+set_io sbdati0 11
+set_io sbdati1 12
+set_io sbdati7 13
+set_io sbdato0 14
+set_io sbdato1 15
+set_io sbdato7 16
+set_io sbacko 17
+set_io i2cirq 18
+set_io i2cwkup 19
+set_io scl 20
+set_io sda 21
+
diff --git a/icefuzz/tests/sb_i2c_io.v b/icefuzz/tests/sb_i2c_io.v
new file mode 100644
index 0000000..f339df9
--- /dev/null
+++ b/icefuzz/tests/sb_i2c_io.v
@@ -0,0 +1,66 @@
+module top (
+ input sbclki, sbrwi, sbstbi,
+ input sbadri0, sbadri1, sbadri7,
+ input sbdati0, sbdati1, sbdati7,
+ output sbdato0, sbdato1, sbdato7,
+ output sbacko, i2cirq, i2cwkup,
+ inout scl, sda
+);
+
+wire scli, sclo, scloe, sdai, sdao, sdaoe;
+
+SB_I2C #(
+ .I2C_SLAVE_INIT_ADDR("0b1111100010"),
+ .BUS_ADDR74("0b0011")
+) i2c_ip (
+ .SBCLKI(sbclki),
+ .SBRWI(sbrwi),
+ .SBSTBI(sbstbi),
+
+ .SBADRI0(sbadri0),
+ .SBADRI1(sbadri1),
+ .SBADRI7(sbadri7),
+
+ .SBDATI0(sbdati0),
+ .SBDATI1(sbdati1),
+ .SBDATI7(sbdati7),
+
+ .SBDATO0(sbdato0),
+ .SBDATO1(sbdato1),
+ .SBDATO7(sbdato7),
+
+ .SBACKO(sbacko),
+ .I2CIRQ(i2cirq),
+ .I2CWKUP(i2cwkup),
+
+ .SCLI(scli),
+ .SCLO(sclo),
+ .SCLOE(scloe),
+
+ .SDAI(sdai),
+ .SDAO(sdao),
+ .SDAOE(sdaoe)
+);
+
+SB_IO #(
+ .PIN_TYPE(6'b101001),
+ .PULLUP(1'b1)
+) scl_io (
+ .PACKAGE_PIN(scl),
+ .OUTPUT_ENABLE(scloe),
+ .D_OUT_0(sclo),
+ .D_IN_0(scli)
+);
+
+
+SB_IO #(
+ .PIN_TYPE(6'b101001),
+ .PULLUP(1'b1)
+) sda_io (
+ .PACKAGE_PIN(sda),
+ .OUTPUT_ENABLE(sdaoe),
+ .D_OUT_0(sdao),
+ .D_IN_0(sdai)
+);
+
+endmodule \ No newline at end of file