UartRx
非同期シリアル入力を受信する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をアサートしない。
Parameters
| CLK_FREQ | u32 | 入力クロック周波数 [Hz] |
|---|---|---|
| BAUD_RATE | u32 | UARTボーレート [baud] |
| DATA_WIDTH | u8 | 受信データ幅 |
Ports
| clk | input | clock | システムクロック |
|---|---|---|---|
| rst | input | reset | リセット |
| rx | input | logic | 非同期UART入力 |
| data | output | logic<DATA_WIDTH> | 受信データ |
| valid | output | logic | 受信完了パルス |