|
|
|
@ -11,7 +11,7 @@ reg [8:0] i, j;
|
|
|
|
|
reg [8:0] data_to [4:0]/* = { 9'h98, 9'h00, 9'h23, 9'h10, 9'h98 }*/;
|
|
|
|
|
//reg [8:0] data_to = 9'h98;
|
|
|
|
|
|
|
|
|
|
//устанавливаем экземпляр тестируемого модуля
|
|
|
|
|
// CREATING MODULE INSTANCE
|
|
|
|
|
i2c_slave i2c(clk, SCL, SDA, SDA_OUT, I2C_ACTIVITY, I2C_READ, ACK, WR, received_byte, byte_to_transmit, i2c_counter);
|
|
|
|
|
//module i2c_slave (input CLK,
|
|
|
|
|
// input SCL, /*inout SDA,*/SDA_IN, output SDA_OUT, // FOR TEST
|
|
|
|
@ -19,7 +19,7 @@ i2c_slave i2c(clk, SCL, SDA, SDA_OUT, I2C_ACTIVITY, I2C_READ, ACK, WR, received_
|
|
|
|
|
// output reg [7:0] RECEIVED_BYTE, input [7:0] BYTE_TO_TRANSMIT,
|
|
|
|
|
// output [(MAX_I2C_TRANSACTION_EXP2-1):0] COUNTER);
|
|
|
|
|
|
|
|
|
|
//моделируем сигнал тактовой частоты
|
|
|
|
|
// SIMULATING TACT SIGNAL
|
|
|
|
|
always
|
|
|
|
|
begin
|
|
|
|
|
#1 clk = ~clk;
|
|
|
|
@ -39,7 +39,6 @@ data_to[4] = 9'h1FF;*/
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
//от начала времени...
|
|
|
|
|
parameter SDA_STT = 30;
|
|
|
|
|
parameter SCL_H = 100;
|
|
|
|
|
parameter SCL_L1 = 70;
|
|
|
|
@ -107,48 +106,20 @@ begin
|
|
|
|
|
*/
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
//через временной интервал "50" подаем сигнал сброса
|
|
|
|
|
#50 SCL = 1;
|
|
|
|
|
|
|
|
|
|
//еще через время "4" снимаем сигнал сброса
|
|
|
|
|
|
|
|
|
|
#4 SCL = 0;
|
|
|
|
|
|
|
|
|
|
//пауза длительностью "50"
|
|
|
|
|
#50;
|
|
|
|
|
|
|
|
|
|
//ждем фронта тактовой частоты и сразу после нее подаем сигнал записи
|
|
|
|
|
@(posedge clk)
|
|
|
|
|
#0
|
|
|
|
|
begin
|
|
|
|
|
SDA = 0;
|
|
|
|
|
//wr = 1'b1;
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
//по следующему фронту снимаем сигнал записи
|
|
|
|
|
@(posedge clk)
|
|
|
|
|
#0
|
|
|
|
|
begin
|
|
|
|
|
SDA = 1;
|
|
|
|
|
//wr = 1'b0;
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
*/
|
|
|
|
|
//заканчиваем симуляцию в момент времени "400"
|
|
|
|
|
// END SIMULATION AT TIME "11500"
|
|
|
|
|
initial
|
|
|
|
|
begin
|
|
|
|
|
#11500 $finish;
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
//создаем файл VCD для последующего анализа сигналов
|
|
|
|
|
// CREATING VCD FILE FOR NEXT ANALYZE
|
|
|
|
|
initial
|
|
|
|
|
begin
|
|
|
|
|
$dumpfile("out.vcd");
|
|
|
|
|
$dumpvars(0,test_counter);
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
//наблюдаем на некоторыми сигналами системы
|
|
|
|
|
// WATCHING SOME SIGNALS
|
|
|
|
|
initial
|
|
|
|
|
$monitor($stime,, clk,,, SCL,, SDA,, I2C_ACTIVITY);
|
|
|
|
|
|
|
|
|
|