Hello All,I am fairly new to FPGA programming. I have a MAX 10M50DAF484C6GES For a new project that I am working on I need a speed of around 12Mbps or roughly 2MBps. I have looked into the UART protocol but I guess the max baud rate there is 900 some Kbps which is not sufficient. Is it possible to push UART to 12Mbps? or I was wondering if its possible to do it with the USB 2.0 interface directly. Any other protocol that is simple to interface with matlab with the required speed would be helpful. Thanks
Pushing standard serial comm protocol (aka UART) past 1-2Mbps is usually problematic. Transmitting data at that rate is not a problem, but you need to have some logic on the receive side that can recover the data error free, and most PC UARTs won't run reliably past about 1Mbps or so.USB 2.0 could do the data rate, but USB has a high protocol and implementation overhead (much more complex than a UART). You would also need (most likely) an external USB PHY as most FPGA pins can't do the USB signaling directly. Using a SPI interface is pretty simple (clock, data out, data in, select) and could easily run at 10-40Mbps in a FPGA using standard LVCMOS I/O. But then it requires whatever you connect to be able to process the SPI signaling protocol. I suspect you just want to run a cable from your logic and connect it to a bog standard Windows PC, so this would then limit your options to (probably) serial UART via an external USB-serial adapter, limiting you to somewhere in the range of 1-2Mbps at most. Of course if your FPGA and support board have an etherNet PHY you could always send the data over etherNet at 100Mbps, but this is a much more complicated solution on your FPGA side.
High speed FTDI UART-to-USB bridges provide 12 MBPS data rate, full speed devices up to 6 MBPS. Higher throughput can be achieved with HS devices and either synchronous serial or parallel interface.