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