Begin I2C/SPI IP reverse engineering

This commit is contained in:
David Shah 2017-11-23 19:45:27 +00:00
parent 9184fbdf40
commit bd6cf518f3
5 changed files with 161 additions and 0 deletions

View File

@ -4816,6 +4816,10 @@ iotile_t_5k_db.append([["B13[10]"], "IoCtrl", "cf_bit_36"])
iotile_t_5k_db.append([["B12[10]"], "IoCtrl", "cf_bit_37"])
iotile_t_5k_db.append([["B13[15]"], "IoCtrl", "cf_bit_38"])
iotile_t_5k_db.append([["B12[15]"], "IoCtrl", "cf_bit_39"])
iotile_t_5k_db.append([["B10[3]"], "IpConfig", "cbit2usealt_in_0"])
iotile_t_5k_db.append([["B12[2]"], "IpConfig", "cbit2usealt_in_1"])
iotile_t_5k_db.append([["B12[3]"], "IpConfig", "SDA_input_delay"])
iotile_t_5k_db.append([["B15[3]"], "IpConfig", "SDA_output_delay"])
iotile_b_5k_db = list(iotile_b_db)
iotile_b_5k_db.append([["B14[15]"], "IoCtrl", "padeb_test_1"])
@ -4828,6 +4832,10 @@ iotile_b_5k_db.append([["B13[10]"], "IoCtrl", "cf_bit_36"])
iotile_b_5k_db.append([["B12[10]"], "IoCtrl", "cf_bit_37"])
iotile_b_5k_db.append([["B13[15]"], "IoCtrl", "cf_bit_38"])
iotile_b_5k_db.append([["B12[15]"], "IoCtrl", "cf_bit_39"])
iotile_t_5k_db.append([["B10[3]"], "IpConfig", "cbit2usealt_in_0"])
iotile_t_5k_db.append([["B12[2]"], "IpConfig", "cbit2usealt_in_1"])
iotile_t_5k_db.append([["B12[3]"], "IpConfig", "SDA_input_delay"])
iotile_t_5k_db.append([["B15[3]"], "IpConfig", "SDA_output_delay"])
for db in [iotile_l_db, iotile_r_db, iotile_t_db, iotile_b_db, iotile_t_5k_db, iotile_b_5k_db, logictile_db, logictile_5k_db, logictile_8k_db, logictile_384_db, rambtile_db, ramttile_db, rambtile_5k_db, ramttile_5k_db, rambtile_8k_db, ramttile_8k_db, dsp0_5k_db, dsp1_5k_db, dsp2_5k_db, dsp3_5k_db, ipcon_5k_db]:
for entry in db:

21
icefuzz/tests/sb_i2c.pcf Normal file
View File

@ -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

48
icefuzz/tests/sb_i2c.v Normal file
View File

@ -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

View File

@ -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

66
icefuzz/tests/sb_i2c_io.v Normal file
View File

@ -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