alexforencich / verilog-uart

Verilog UART
MIT License
411 stars 129 forks source link

max bir rate? #3

Open Washix opened 7 years ago

Washix commented 7 years ago

hi bro I hope u be as well as always

What is the maximum bit rate can be achieved by your UART IP? is it possible to reach the speed between 16mbps to 20mbps? what are the conditions or constraints to achieving these speeds? are your IP support Multiprocessor communication mode or 9-bit data mode of the UART?

I highly appreciated to having your kindly replies :-)

alexforencich commented 7 years ago

Max I have tested is 115200 baud, but it should be able to go a lot faster. Not sure about 16 or 20 Mbps. Could be doable, but I haven't tried it. Can you give some more specifics about what you're trying to accomplish?

Not sure what you mean by 'multiprocessor communication mode'. 9-bit mode is supported by setting DATA_WIDTH to 9. Run-time switching is currently not supported, only synthesis time.

Washix commented 7 years ago

Dear Alex Thank you for ur reply.

I currently work on a project based on a Zynq 7020 and I need a asynchronous serial link with speed up to 20mbps. the link must be worked off the board to assemble a multi-drop serial bus based on RS485. I plan to use a high speed UART for doing this purpose. The ZYNQ's PS side (ARM Cortex-A9 cores) UART peripheral can be used up to 1mbps and the UART IP cores accessible freely in Vivado (AXI-UARTLite and UART16550) are the same speed rate. there are some tricks to increase the baud rate of those cores but still better to use something supports this speed rate.

the standard UART peripherals have an operation mode called multiprocessor communication mode that capable a UART used in a multi-drop or multi-point serial bus by adding a 1 bit to usual 8-bit data for identifying the dedicated each node address in a multi-point serial bus.

alexforencich commented 7 years ago

So for RS485, it would be necessary to add a transmit enable output. Not a big deal to do that, though. However, 20 Mbps is pretty fast. Right now the fastest bit rate is Fosc / 8, so 20 Mbps would require a 160 MHz clock. Which is not so bad. The logic can definitely run that fast; it's just a question of whether an actual link would work that fast. Maybe. I think you'll just have to try it. As far as multi-drop...this UART module doesn't implement anything like that, but there is nothing stopping you from writing a shim that sits on top to handle whatever addressing/filtering scheme you can think of.