Parameterized asynchronous UART receiver for Veryl.
Modules
非同期シリアル入力を受信するUARTレシーバ
CLK_FREQとBAUD_RATEから1ビットのクロック数を計算し、スタートビット、DATA_WIDTHビットのデータ、ストップビットを順にサンプリング。
CLK_FREQ / BAUD_RATEは2以上、DATA_WIDTHは1以上を指定する。
1バイトの受信完了時にvalidを1クロックだけアサート。
data bitはLSB-firstで、各bitの中央をサンプリングする。stop bitがLowならframing errorとして破棄し、validをアサートしない。
| CLK_FREQ |
u32 |
入力クロック周波数 [Hz]
|
| BAUD_RATE |
u32 |
UARTボーレート [baud]
|
| DATA_WIDTH |
u8 |
受信データ幅
|
| clk |
input |
clock |
システムクロック
|
| rst |
input |
reset |
リセット
|
| rx |
input |
logic |
非同期UART入力
|
| data |
output |
logic<DATA_WIDTH> |
受信データ
|
| valid |
output |
logic |
受信完了パルス
|