Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

how can i fix timing violation in i2c simulation result?

Status
Not open for further replies.

u24c02

Advanced Member level 1
Joined
May 8, 2012
Messages
404
Helped
2
Reputation
4
Reaction score
2
Trophy points
1,298
Activity points
4,101
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 ?


Screenshot-1.png
 
Last edited:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top