OpenCores
no use no use 1/1 no use no use
how can i fix timing violation in i2c simulation result?
by u24c02 on Oct 23, 2012
u24c02
Posts: 1
Joined: Sep 28, 2012
Last seen: Feb 22, 2018
Hi~

i have question about opencores i2c slave simulation results.

Q1) how can i use "sda_dly" for fix 0 hold margin?

Q2) how can i fix timing violation in i2c simulation result?

Q3) why happened timing violation

Warning! Timing violation
$setup( posedge scl:742686 NS, negedge sda &&& scl:745866 NS, 4700.00 : 4700 NS );
File: /home/sylee/a/bench/verilog/i2c_slave_model.v, line = 348
Scope: tst_bench_top.i2c_slave
Time: 745866 NS

Warning! Timing violation
$setup( posedge scl:1260846 NS, negedge sda &&& scl:1264026 NS, 4700.00 : 4700 NS );
File: /home/sylee/a/bench/verilog/i2c_slave_model.v, line = 348
Scope: tst_bench_top.i2c_slave
Time: 1264026 NS


and also how can i fix this timing violation? isn't it meet MIN timing t_su,STA 4.7 ?

Q5) why it be Timing violation?

Q6) i can find comment like following as

// generate delayed version of sda
// this model assumes a hold time for sda after the falling edge of scl.
// According to the Phillips i2c spec, there s/b a 0 ns hold time for sda
// with regards to scl. If the data changes coincident with the clock, the
// acknowledge is missed
// Fix by Michael Sosnoski
// assign #1 sda_dly = sda;

so how can i use this ?

no use no use 1/1 no use no use
© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.