1. はじめに
この記事に添付しているデザインサンプルは、Verilog HDL もしくは VHDL で記述した MAX® 10 の ADC(A/D コンバーター)を制御するサンプルです。
マイコンを使用せずに、ADC をハードウェア・ロジックだけで制御したいハードウェア設計者には有益なデザイン例となります。
専用の IP コアを使用して MAX® 10 ADC の制御を行いますが、このデザイン例では、コマンドやチャネル番号を指定して、ADC からデジタルデータを取得するまでの記述例を提供します。
2. このサンプルを使用する利点
- ハードウェアの知識だけで MAX® 10 の ADC を制御可能
- Nios® II Processor やプラットフォーム・デザイナー(旧 Qsys)は使用していないので、ソフトウェアの知識は不要
- サンプルを参考にして設計への応用も可能
参考:
MAX® 10 の ADC 関連コンテンツとして、下記のコンテンツもご参照ください。
3. 使用環境
この記事では以下の開発ツールを使用しています。
【表 1】 この記事の説明で使用している開発ツール
| 項番 | 項目 | 内容 |
| 1 | Quartus® Prime 開発ソフトウェア・スタンダード・エディション(以降、Quartus® Prime) | FPGA のハードウェアを開発するための ツールです。 この資料では、Quartus® Prime 開発ソフトウェア・スタンダード・エディション v18.1 を使用しています。 |
| 2 | Modular ADC core IP | MAX® 10 FPGA に内蔵されている ADC の制御に利用可能な IP コアです。この記事では以降 ADC IP コアと表記します。 |
4. このサンプルの特徴
4-1. ADC IP コア
このサンプルでの ADC IP コアの構成・設定は以下のようになっています。
- 最もシンプルな ADC_control_core_only モードで構成(【図 1】参照)
- 入力クロックを 10MHz に設定
- ADC のサンプリング・レートを 1MHz に指定
- アナログ入力チャネルを 9 に設定(CH0 ~ CH8)。温度センサー・ダイオード(TSD)は非設定(【図 2】参照)
ポイント:
入力クロックは、指定したサンプリング・レートにマッチするように ADC 側で分周されます。
ヒント:
入力クロックとサンプリング・レートの組み合わせは規定されている為、事前に把握する必要があります。詳細は以下のドキュメントで確認できます。
MAX® 10 Analog to Digital Converter User Guide
(Valid ADC Sample Rate and Input Clock Combination で検索してください)
【図 1】 ADC IP の設定画面
【図 2】 各 Channel の設定画面
4-2. 制御ロジック
このサンプルでは ADC IP コアにコマンドを発行して以下の制御を行っています。
- 入力 8 チャネルに対して制御
- CH0 ~ CH7
- チャネルのシーケンスは番号順に指定。CH7 に到達後 CH0 に巻き戻り
- CH0(1番目)➡ CH1 ➡ … ➡ CH6 ➡ CH7(8番目)➡ CH0(1番目)➡ …
- ADC 内部では無視されるので、start of packet と end of packet を '0' に固定
4-3. ターゲットの評価ボード
このサンプルでは MAX® 10 FPGA 評価キットを使用して動作の確認を行っています。
5. サンプル・プロジェクト
このページで紹介しているデザイン例のサンプル・プロジェクト(Verilog HDL / VHDL)を添付します。