Altera_Forum
Honored Contributor
15 years agoMetastability issue? How to clock in high speed ASYNCH Data
Dear Gurus,
I am relatively new to VHDL and hardware so here goes… I have designed a board that receives asynchronous data from a PC via USB @ ~ 12mb/s via an FTDI device (FT2232H). The device (in the mode I'm using) clocks its data out to the FPGA using a 60MHz clock (so the WR# strobe is ~16.67ns). The FPGA clock is 50MHz. I'm still in trying to determine whether this is an FTDI driver issue but and I have started to read about metastability and clock domains and wondered if there is a laymens guide out there. I am trying to digest SDYA006... I have tried using the megawizard to generate a dual clock FIFO to sort the issue but I don't yet understand how I know when/how I can get out of it... I have a block that waits to see when the rdempty signal is deasserted i.e. there is some data before clocking data out with rdclk , but it seems that the rdempty signal is clocked by the rdclk (so i am having to read it when it says it's empty to make get to say it's OK to read from it! [if that made any sense]). I know I'm rambling and several guides just say use back to back registers but any guidance would help as a sensible way to practically achieve this. As I say I am no expert but you patience and guidance would be greatly appreciated. Yours faithfully, H