123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // ---------------------------------- testcase0.v ----------------------------
- `include "timescale.v"
- `include "i2cSlave_define.v"
- `include "i2cSlaveTB_defines.v"
-
- module testCase0();
-
- reg ack;
- reg [7:0] data;
- reg [15:0] dataWord;
- reg [7:0] dataRead;
- reg [7:0] dataWrite;
- integer i;
- integer j;
-
- initial
- begin
- $write("\n\n");
- testHarness.reset;
- testHarness.tb_readEn <= 1'b0;
- testHarness.tb_writeEn <= 1'b0;
-
- // set i2c master clock scale reg PRER = (48MHz / (5 * 400KHz) ) - 1
- $write("Testing register read/write\n");
- testHarness.u_wb_master_model.wb_write(1, `PRER_LO_REG , 8'h17);
- testHarness.u_wb_master_model.wb_write(1, `PRER_HI_REG , 8'h00);
- testHarness.u_wb_master_model.wb_cmp(1, `PRER_LO_REG , 8'h17);
-
- // enable i2c master
- testHarness.u_wb_master_model.wb_write(1, `CTR_REG , 8'h80);
-
-
- multiByteReadWrite.write({`I2C_ADDRESS, 1'b0}, 16'h1234, 32'h89abcdef, `SEND_STOP);
- multiByteReadWrite.read({`I2C_ADDRESS, 1'b0}, 16'h1234, 32'h89abcdef, dataWord, `NULL);
- #100;
-
- testHarness.tb_addr <= 16'h1234;
- testHarness.tb_dataIn <= 16'h5555;
-
- #10 testHarness.tb_writeEn <= 1'b1;
- #10 testHarness.tb_readEn <= 1'b1;
- #10 testHarness.tb_writeEn <= 1'b0;
- #10 testHarness.tb_readEn <= 1'b0;
-
- #100;
- multiByteReadWrite.read({`I2C_ADDRESS, 1'b0}, 16'h1234, 32'h89abcdef, dataWord, `NULL);
-
- #100;
- multiByteReadWrite.write({`I2C_ADDRESS, 1'b0}, 16'h1234, 32'h89abcdef, `SEND_STOP);
- multiByteReadWrite.read({`I2C_ADDRESS, 1'b0}, 16'h1234, 32'h89abcdef, dataWord, `NULL);
-
- $write("Finished all tests\n");
- $finish;
-
- end
- endmodule
|