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

TOPページ 


実機動作:Cmod A7-35T (Artix-7) 16CH ロジックアナライザ


  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 日本ロジック設計



[picture:pic_artix_7a_logicanalyzer_001]
  16ch入力 ロジックアナライザーの VHDL記述サンプルを紹介する。

  内部ロジックの波形確認の他、入力にI/Oピンを接続すれば単体のロジアナとして使用可能。
  ロジアナの制御は PCとシリアル通信(UART)で行うため、FPGAの追加 I/Oピンは2本のみ。
  ESCシーケンスで画面を作成するため、PC側はターミナルソフトが使える。※Tera Term 5 を推奨
  現時点のロジック使用率は 3% 程度のため (XC7A35TCPG236の場合)、既存のロジックに余裕があれば組み込んでデバッグに利用できる。

  動作確認に使用した Digilent Inc.製、Cmod A7-35T (搭載FPGA:Artix-7)では、PCとはUSBで接続可能。
  ※シリアル-USB変換LSI、FT2232を搭載している。
  詳細については別ページ「実機動作:Cmod A7-35T (Artix-7) 基板とPCをUSB接続でシリアル通信」 参照。

[picture:pic_artix_7a_logicanalyzer_007]

  ロジックアナライザーとして機能的にはまだ足りない部分もあるが、上を見たらきりがないため現時点のバージョンで公開する。
  ESCシーケンスによる画面表示は良いアイデアだと思ったのだが、
   ・画面表示の反応速度が遅い
   ・ESCシーケンスだけでロジック数を食ってしまう
  などの欠点もあるため、いずれ専用ソフトを作成する予定。

  1. 主な仕様
    ・動作確認基板: Digilent Inc. 製 Cmod A7-35T、搭載FPGA: AMD Artix-7
    ・FPGA動作クロック: 基板実装:12MHz、MMCM(PLL)設定周波数:50MHz
    ・サンプリングレート: 50MHz
    ・ロジックアナライザ入力: 外部入力15本、内部信号1本
    ・UART: 460800bps、スタートbit:1、データbit:8(LSBファースト)、ストップbit:1、パリティ:偶数
    ・動作確認用LED: クロック=50MHzで1秒サイクルで点滅
    ・(仮)RESETスイッチ: ボタン(BTN1)をRESETボタンに割り当て

  2. PCとの接続/起動方法
    ・Cmod A7-35T をPCと接続し、VIVADOからコンフィグレーションROMにロジックデータを書き込む。※後述プロジェクトファイル参照。
    ・Cmod A7-35T のUSB接続を一度抜き、再度接続する。LEDが1秒間隔で点滅すれば書き込みOK。
    ・PC側で Tera Term 5 を起動し、以下の設定を行う。
      ・シリアルポート選択(COM番号はPC環境に依存する)
      ・スピード:460800
      ・パリティ:EVEN
      ・ストップビット:1
      ・スクロールバッファ:OFF ※画面のちらつきを抑えるため、画面は消去せずに上書きしている。このための設定。
     設定後は、設定値をファイルに保存しておくことを勧める。

「シリアル」ポート設定としてUSBを選択 (COM番号はPCに依存する)
[picture:pic_artix_7a_uart_term_003.jpg]

通信速度などのパラメータを設定
[picture:pic_artix_7a_logicanalyzer_002]

スクロールバッファのチェックをOFFにする
[picture:pic_artix_7a_logicanalyzer_003]

    ・Cmod A7-35T のボタン(BTN1)を押しRESETを掛ける。
    ・Tera Term 5 にて、エンターキーを押すと、ロジックアナライザーが動作する。
    ・注意:Tera Term 5 のウィンドウを動かすと、表示が化ける場合がある。(上書き表示のみで画面消去を行っていないため)
         その場合は、ボタン(BTN1)を押してからエンターキーを押せば、画面は初期化される。
         シリアル通信速度が 460800bps とやや高めのため、処理が遅い古いPCでは画面が崩れる可能性がある。

  4. 操作方法
    ・数値キー [1][2]: トリガーCHの切り替え
    ・数値キー [3]:   トリガーエッジ(立上り/立下り)の切り替え
    ・数値キー [4][5]: 波形の横方向表示の拡大/縮小 (サンプリング時間の切り替え)
    ・数値キー [6][7]: 波形の左右移動 (トリガーポイントの移動)
    ・数値キー [8]:   トリガーモード選択。CONT(連続)/SING(シングルトリガー)/STOP(停止)
                CONT では、トリガー検出の有無に関わらず連続動作
                SING では、トリガーを検出すると自動でSTOP(停止)となる
    ・基板上のボタン(BTN1): (仮)RESETボタン、RESET後はエンターキーを押すことで動作開始
    ※注意:テンキーは使用できない。(メインキーとキーコードが異なるため)
          キーを押しっぱなしで連打すると画面が乱れる。キー操作はゆっくり行うこと。

  5. 入力ピン (CH00-CH15) について
    デフォルトのロジックでは、CH00が内部信号(1MHz信号)に、CH01-CH15 が FPGAのI/Oピンから Cmod A7-35T の DIPピンに
    接続されている。 ※CH01-CH15 => DIPピン PIO30-PIO44
    なお、FPGAのI/Oピンはオープンのため、実際にロジアナとして使用する場合は、100KΩ程度のプルダウン抵抗と
    10Ω程度の直列抵抗を追加することを勧める。
    また、Artix-7 の入力電圧は 3.3V まで、5V入力はできないことを忘れずに。

    入力ピンを変更する場合は、I/Oピンの指定については XDCファイルの下記部分を参照。

[picture:pic_artix_7a_logicanalyzer_004]

    FPGA内の信号配線については [TOP_FPGA.vhd] 内の下記部分を参照。

[picture:pic_artix_7a_logicanalyzer_005]

  6. 全体ブロック図
    FPGAの全体構成は下記の通り。

[picture:pic_artix_7a_logicanalyzer_006]

  7. ロジックアナライザ部分の構成について
    ロジックの多くは、ESCシーケンスの文字コードを生成するためのもので、ロジックアナライザ自体のロジックは小さい。
    これは無駄ともいえるため、将来は専用ソフトを作成し、ESCシーケンスのロジックを削除しロジックの低減を検討する。
    メインとなるファイルは [TOP_A7_LOGIC_ANALYZER.vhd]。
    シーケンサを多用した構成で、上位のシーケンサから下位のシーケンサを呼び出すなど、それなりに複雑になっている。
    シーケンサが苦手な設計者もいると思うが、ようは慣れ。

  8. MODELSIM シミュレーションでのファイル出力について
    ECSシーケンスが正しく送信されているか確認のため、テストベンチにて UART経由でPCへ送る文字をファイル [UART_DATA.TXT] に書き出している。
    シミュレーション後、このファイルを調べることで PCに送信された文字列を確認できる。
    ただし、全画面を出力するとシミュレーションに時間が掛かるため、書き出しは上位4行程度のみ。
    詳細は [TEST_BENCH_TOP_FPGA.VHD] を参照のこと。
    なお、テストベンチ自体は MODELSIM/VIVADOシミュレーションで共通に使用できるが、VIVADOシミュレーションでは
    [UART_DATA.TXT] は生成されない。理由は調査中。

[TEST_BENCH_TOP_FPGA.VHD] 内、ファイル関連記述
[picture:pic_artix_7a_logicanalyzer_008]

  9. MMCM(PLL)の代用ロジックについて
    VIVADO用のプロジェクトファイルには実機の MMCMが組み込まれているが (Clocking Wizard で作成したもの)、
    MODELSIMのプロジェクトにはダミーの MMCM [clk_wiz_0_DUMMY.vhd] を作成してプロジェクトに組み込んである。
    シミュレーションを行う際、アルテラ(intel)の無料版 MODELSIMなどでは XILINXデバイス用ライブラリィが使えないための代用。

  10. サンプルファイル
    ・MODELSIM用プロジェクトファイル:japanlogicdesign_vhdl_tips_artix_7a_logicanalyzer_modelsim.zip
    ・VIVADO用プロジェクトファイル:japanlogicdesign_vhdl_tips_artix_7a_logicanalyzer_vivado.zip
    ※注意:VIVADO プロジェクトファイルは参考にとどめ、新規に作成しなおすことを推奨する
          MODELSIM プロジェクトは相対パスではないため、ソースファイルの再登録が必要な場合あり
 中国プロテクト:天安門事件、法輪功、チベット