日本ロジック設計    - VHDL ロジック記述サンプル -

TOPページ 


UART ロジックのサンプル


  AI学習禁止
  無断転載禁止
  免責事項: 当サイトの情報を元に取った行動の結果について、一切の責任を負いません
  No unauthorized reproduction or AI training allowed.
  Unauthorized reproduction prohibited.
  Disclaimer: We are not responsible for any actions taken based on the information on this site.
  (C) 2025 JAPAN LOGIC DESIGN 日本ロジック設計



  UART (調歩同期式シリアル通信)インターフェイスのロジックサンプルを紹介する。

  1.主な仕様
    ・スタートbit:1、データbit:8 (LSBファースト)、パリティbit:偶数/奇数、ストップbit:1
    ・ボーレート:100Kbps (メインクロック 20MHz時) ※ボーレートを変更するには分周回路の設定を変更すること

  2.使い方
    ・送信側:
      ・送信BUSY が解除されるまで待つ。
      ・TX_DATA_IN に送信データを設定する。(8bit)
      ・TX_PARITY_ODD_EVEN でパリティを指定する。(0:偶数、1:奇数)
      ・TX_DATA_SET を 1-CLOCK 分だけ '1' にする。
    ・受信側:
      ・RX_RECIEVE_END が'1'になるまで待つ。(1-CLOCK)
      ・受信データ RX_DATA を取得する。
      ・パリティ RX_PARITY_ODD_EVEN が正しいか確認する。
    ※手順の詳細については、テストベンチを参照のこと。

  3.設計のポイント
    ・受信データは非同期入力信号のため、ダブルラッチで取り込む。
    ・受信データは各ビットの中央のタイミングでサンプリングする。
      1. スタートビットの立下りを検出。
      2. ボーレートの1.5 クロック分後に bit-0 をサンプリング。
      3. 以後、ボーレートの1 クロック分後に 各ビットをサンプリング。


  4.テストベンチについて
   通信動作の確認を行うためには、通信相手のロジックが必要となる。
   シミュレーシションモデルとして [SIM_MODULE_UART_8_bit.VHD] を作成した。
   ただし信号名が異なるだけで、中身は [MODULE_UART_8_bit.VHD] とほぼ同じ。
   if 文にて期待値チェックを行っており、期待値エラー発生時はその場で終了する。最後まで完走すればOK。
   テストベンチは MODELSIM/VIVADOシミュレーション共通で使える記述にしている。

   シミュレーション構成のイメージは下記の通り。


   シミュレーション結果
[picture:pic_uart_fig2]

  5. サンプルファイル
   主なファイル構成は下記の通り。
     ・MODULE_UART_8_bit.VHD UARTロジック
     ・SIM_MODULE_UART_8_bit.VHD シミュレーションモデル ※中身は MODULE_UART_8_bit.VHD と同じ
     ・TEST_BENCH_UART_8_bit.VHD シミュレーション用テストベンチ。
   プロジェクトファイル一式
    ・MODELSIM用プロジェクトファイル:japanlogicdesign_uart_modelsim.zip
    ・VIVADO用プロジェクトファイル:japanlogicdesign_uart_vivado.zip
    ※注意:VIVADO プロジェクトファイルは参考にとどめ、新規に作成しなおすことを推奨する
          MODELSIM プロジェクトは相対パスではないため、ソースファイルの再登録が必要な場合あり

 中国プロテクト:天安門事件、法輪功、チベット