UARTUARTのデータ受信部分のサンプルコードです。16段のFIFOとシフトレジスタ、そしてステートマシンで構成されます。CPUのコンソール用というよりも、FPGAのデバッグ時に外部から設定をソフトウェアレスで変更するためのUART、という役回りで使用されます。キャラクチャ長5~8ビット、パリティの偶/奇/なし、データ受信を通知するFIFO内データ量閾値1/4/8/14バイト等が外部信号によって選択可能です。本モジュールの内部動作クロック入力です。24M~133.33MHzのクロック(ただし制限あり)が接続される想定です。UART”モジュールの資料から、CLK_INに関する記載をご覧下さい。非同期リセット入力です。パワーオン時、またはシステムリセット時にアサートして下さい。UART受信用クロックイネーブル入力です。ボーレートの周期でアサートされるCLK_INに同期した信号を入力して下さい。出力を直接接続して下さい。受信開始のイネーブル入力です。RS232Cの制御線(本モジュールにはありません)等を使ってフロー制御を行いたい場合は、このポートを操作することで受信開始の制御が可能です。不要な場合はHi固定として下さい。受信するキャラクタ長を設定する信号です。00の時5ビット、01の時6ビット、10の時7ビット、11の時8ビットとなります。キャラクタに続いて受信されるパリティビットを設置する信号です。00または01の時パリティなし、10の時偶数パリティ、11の時奇数パリティとなります。本モジュールではインプリメントされていません。RX_TRIG_BO信号のアサート条件を設定する信号です。00の時、受信データFIFOに1バイト以上データがあれば同信号がアサートされます。01の時は4バイト以上、10の時は8バイト以上、11の時は14バイト以上でアサートされます。受信データFIFOからキャラクタを読み出し終わる毎、1パルス分アサートして下さい。これによって受信データFIFOのリードポインタが内部でインクリメントされます。受信データFIFOからのデータ出力です。受信データFIFOからのデータ出力のステータスビットで、1の時パリティエラーの検出を意味します。受信データFIFOからのデータ出力のステータスビットで、1の時フレーミングエラー検出を意味します。受信データFIFOからのデータ出力のステータスビットで、1の時ブレークの検出を意味します。エラーサマリービットです。受信データFIFO内に、パリティエラー、フレーミングエラー、ブレーク受信のいずれかを伴ったデータが含まれている場合に1になります。受信データFIFO内のフルフラグです。1の時、受信データFIFO内にRX_TRIG_LEV[1:0]で設定した量のデータがあることを示します。受信データFIFOのエンプティフラグです。受信オーバーラン(FIFOオーバーフロー)が発生した時、1パルス分アサートされます。1の時、現在ブレークを受信中であることを示します。1の時、最後に受信して以降4キャラクタ時間を超えて新たな受信もFIFOデータリードもなく、かつ受信データFIFOにデータが残っていることを示します。UARTのシリアル入力です。データライン上のノイズの除去機能は本モジュールに含んでいません。※特に注記のない限り、信号は全て正論理です。本ソースコードはVerilog版のみとなっております。詳細は下記の資料ダウンロードをクリックください。ソースコード自体は当社WEBストアにて販売しております。UART資料ダウンロード。