title: VHDL synchronization between different blocks
body: <p>I have tried really hard to search solutions on internet. But I failed thats why I put it here.</p>
  
  <p>I am trying to design a I2C block in FPGA. Basically it receives DATA, MODE information from other blocks. After receiving, I2C will export or read data from its environment devices.</p>
  
  <p>My question is, when I2C communicating with other blocks inside FPGA, how could I2C synchronize with other blocks? I mean how could I2C know if the DATA and MODE received from other blocks is from previous? Or the most updated?</p>
  
  <p>My current idea is to use a pulse generated from other blocks to inform I2C that "new DATA" is coming. Could I know if there is any other ways? What are the differences between these methods?</p>
  
  <p>Thank you very much.</p>
  
  <p>Best regards</p>