From bd6cf518f3e584446fa1c9f4085705bd36cd4a0c Mon Sep 17 00:00:00 2001 From: David Shah Date: Thu, 23 Nov 2017 19:45:27 +0000 Subject: Begin I2C/SPI IP reverse engineering --- icefuzz/tests/sb_i2c.pcf | 21 +++++++++++++++ icefuzz/tests/sb_i2c.v | 48 +++++++++++++++++++++++++++++++++ icefuzz/tests/sb_i2c_io.pcf | 18 +++++++++++++ icefuzz/tests/sb_i2c_io.v | 66 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 153 insertions(+) create mode 100644 icefuzz/tests/sb_i2c.pcf create mode 100644 icefuzz/tests/sb_i2c.v create mode 100644 icefuzz/tests/sb_i2c_io.pcf create mode 100644 icefuzz/tests/sb_i2c_io.v (limited to 'icefuzz/tests') 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 -- cgit v1.2.3