Re: I2c doubts
As far as I see, there are two types of I2C slave interfaces: Complex peripherals, that utilize a system clock and simple asynchronous ones without it. If a system clock is present, you won't treat SCL as a clock rather processing the I2C signals synchronously. Up to medium system clock speeds, no debouncing logic is necessary, as rakko stated. (Personally I prefer to ignore meaningless contributions rather than commenting them or using strong words about it. You mainly get points for helping people, and the originator has to decide, if your answer is helpful somehow.)
But there are also simple I2C interfaces without a system clock. They have to process SCL and possibly SDA by edge sensitive circuits and typically use debouncing circuits. I can imagine several applications, where CPLD based I2C slave designs of this type are suitable.