master
Ivan Olenichev 6 years ago
parent 70c746113a
commit 58a262e74c

@ -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 [4:0]/* = { 9'h98, 9'h00, 9'h23, 9'h10, 9'h98 }*/;
//reg [8:0] data_to = 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); 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, //module i2c_slave (input CLK,
// input SCL, /*inout SDA,*/SDA_IN, output SDA_OUT, // FOR TEST // 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 reg [7:0] RECEIVED_BYTE, input [7:0] BYTE_TO_TRANSMIT,
// output [(MAX_I2C_TRANSACTION_EXP2-1):0] COUNTER); // output [(MAX_I2C_TRANSACTION_EXP2-1):0] COUNTER);
//моделируем сигнал тактовой частоты // SIMULATING TACT SIGNAL
always always
begin begin
#1 clk = ~clk; #1 clk = ~clk;
@ -39,7 +39,7 @@ data_to[4] = 9'h1FF;
end end
//от начала времени... // I2C CLOCK PARAMS
parameter SDA_STT = 30; parameter SDA_STT = 30;
parameter SCL_H = 100; parameter SCL_H = 100;
parameter SCL_L1 = 70; parameter SCL_L1 = 70;
@ -107,48 +107,20 @@ begin
*/ */
end end
/* // END SIMULATION AT TIME "11500"
//через временной интервал "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"
initial initial
begin begin
#11500 $finish; #11500 $finish;
end end
//создаем файл VCD для последующего анализа сигналов // CREATING VCD FILE FOR NEXT ANALYZE
initial initial
begin begin
$dumpfile("out.vcd"); $dumpfile("out.vcd");
$dumpvars(0,test_counter); $dumpvars(0,test_counter);
end end
//наблюдаем на некоторыми сигналами системы // WATCHING SOME SIGNALS
initial initial
$monitor($stime,, clk,,, SCL,, SDA,, I2C_ACTIVITY); $monitor($stime,, clk,,, SCL,, SDA,, I2C_ACTIVITY);

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

Loading…
Cancel
Save