TEL:086-227-0113
info@gopher-tec.jp
TOP page 製品情報 FPGAソース Baud Rate Generator for UART
Baud Rate Generator for UART

UART用ボーレートジェネレータ(BRG)のサンプルコードです。
100MHz前後の数種類のクロック周波数から、BRG用1.8432MHzクロックを生成するプリスケーラと、
その接続例を含んでいます。BRGは、送信用の1倍クロックと受信用の16倍クロックそれぞれの有効エッジ
が抽出可能な、2つのクロックイネーブル信号を出力します。ボーレートは16ビットディバイザ入力
によって設定されます。ディバイザとボーレートの関係は、レガシーUARTとしてお馴染みの、1.8432MHz
を入力したPC1655xの場合と同じになるよう構成しています。

Pre-Scaler モジュール:
Port I/O  Description 
CLK_IN in クロック入力です。
下の表にあるクロック周波数(24M~133.33MHz)が使用可能です。
ご使用になる周波数に合わせて、モジュール冒頭のパラメータを適切に選択して下さい。
RST in 非同期リセット入力です。パワーオン時、またはシステムリセット時にアサート
して下さい。
CKE_1M8432 out CLK_INを1.8432MHzとして使用するためのクロックイネーブル出力です。
ボーレートジェネレータの同ポートと接続して下さい。
Baud Rate Generator モジュール:
Port I/O  Description 
CLK_IN in クロック入力です。必ずプリスケーラの同ポートと同じクロックを入力して下さい。
RST in 非同期リセット入力です。パワーオン時、またはシステムリセット時にアサートして
下さい。
CKE_1M8432 in CLK_INを1.8432MHzとして使用するためのクロックイネーブル入力です。
プリスケーラの同ポートと接続して下さい。
DIVISOR[15:0] in ボーレートを設定するためのディバイザ入力です。次の設定として下さい。
DIVISOR=1.8432MHz/(Baud Rate*16) ただしDIVISORは0001h~FFFFh
CKE_RX out UART受信用クロックイネーブルです。
データサンプリング用に、ボーレートの16倍の周波数で出力します。
CLK_INとともに、クロックイネーブルとして使用して下さい。
CKE_TX out UART送信用クロックイネーブルです。
データ送出用に、ボーレートそのままの周波数で出力します。
CLK_INとともに、クロックイネーブルとして使用して下さい。
※特に注記のない限り、信号は全て正論理です。

機能詳細
プリスケーラの出力誤差、およびディバイザとボーレートの関係は次の通りです。

CLK_IN周波数[MHz] 24 48 64 66.67 72 100 125 133.33
同周期[ns] 41.67 20.83 15.625 15 13.89 10 8 7.5
CKE_1M8432周波数[MHz] 1.8462 1.8462 1.8417 1.8391 1.8462 1.8433 1.8450 1.8454
周波数誤差 0.1603% 0.1603% 0.0799% 0.2236% 0.1603% 0.0064% 0.0987% 0.1217%

ボーレート[bps]  ディバイザ入力(10進)   CKE_RXアサート周波数[kHz]  CKE_TXアサート周波数[kHz] 
1200 96 19.2 1.2
1800 64 28.8 1.8
2400 48 38.4 2.4
3600 32 57.6 3.6
4800 24 76.8 4.8
7200 16 115.2 7.2
9600 12 153.6 9.6
19200 6 307.2 19.2
38400 3 614.4 38.4
56000 2 921.6 57.6
115200 1 1843.2 115.2

本ソースコードはVerilog版のみとなっております。
詳細は下記の資料ダウンロードをクリックください。
ソースコード自体は当社WEBストアにて販売しております。

Baud Rate Generator for UART
資料ダウンロード