FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6518 Discussions

How to create Uart (RS-232) of 2 000 000 bps in SOPC Builder?

Altera_Forum
Honored Contributor II
1,700 Views

The question is: We use RS-232 of 2 000 000 bps, and due to the fact that speed never changes, there is no necessity in software initialization. Is there any possibility to create UART of 2 000 000 bps without software initialization "Fixed baud rate"?

0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
539 Views

sorry,i don't know.

0 Kudos
Altera_Forum
Honored Contributor II
539 Views

Sure.  

If you use the standard UART module supplied with sopc builder, you have both choices in component properties: fixed baud rate (defined in sopc builder) or programmable by means of a divisor register. 

If you use another custom UART core, you still have a divisor/baudrate register: simply set it to the fixed value you require.
0 Kudos
Altera_Forum
Honored Contributor II
539 Views

Hi, 

I got similar question about how to make High-Speed Inter-Chip through I2C, 

i.e. 480Mb as USB2.0? 

Is there any IP or test board available? 

Thanks,:cool:
0 Kudos
Altera_Forum
Honored Contributor II
539 Views

Hi, Cris72! I know that UART speed can be adjusted by software and hardware means. My question was: can UART be adjusted by hardware (with the set "Fixed baud rate") for speed of 2 000 000 bps?

0 Kudos
Altera_Forum
Honored Contributor II
539 Views

The standard UART core available with sopc builder, set the baudrate through a divisor register according to this equation: 

baudrate = clock_frequency / (divisor + 1) 

So, if baudrate is an exact multiple of clock_frequency, you don't have any problem. This is relevant only for low divisor values, while for high divisor/low baudrate a few lost decimals don't matter. 

Also consider that, although you can virtually use divisor=1 to drive uart at half clock speed, this is usually not recommended since the receiver needs to synchronize to incoming data (remember the A in UART means Asynchronous). Other UART cores usually derive an internal sample clock 16x the system clock, so they require baudrate = clock_frequency / (16 * (divisor + 1))
0 Kudos
Reply