学問の小部屋

ここは学問の黒板です。

Intel(Altera)社CPLDの立ち上げ

前回記事のように、FPGAは(Vivadoに対応している世代の)Xilinx社のチップが入手しやすいのに対し、CPLDIntel(旧Altera)社製のチップの方が入手性がよく、またEVMも安価に入手可能である。
現在のIntel社の無償開発環境はQuartus Primeであるのに対し、web上の情報は旧Quartus IIの入門記事が多くGUIの変更などに追従できていない。
現在のHDL開発環境は、既存IPの充実によりVHDLの文法をマスターするよりも開発環境の設定を覚える方が実際は時間がかかる状況になっているので、現時点での最新のGUI設定方法を紹介することにした。今回は、Intel社の環境の入門となる押しボタンによるLED発光(いわゆるLチカ)の方法を記すことにする。

  • 開発環境

OSはwindows10、SDKにはQuartus Prime Light Edition v17.1を使用する。
EVMは、MAX-2デバイスが搭載されているC-M240を使用している。他のEVMを使用しても基本的な使用法は同じであり、本記事を元にピン番号などを調整すれば実行可能である。
RTL言語はVHDLを使用する。
ダウンロードケーブルは、ヤフオクで入手したUSB Blaster互換品(\1000程度)を使用した。

本記事は、アルティマ社(現マクニカ・アルティマカンパニー)の先行記事
https://service.macnica.co.jp/library/113049
を元にしており内容はほぼ同一ではあるが、こちらの記事ではGUIのどのボタンを押すのかなどが不明なので、操作面を重視して解説する。
今回はひとまず自分の書いたVHDLでEVM上のLEDを光らせることを目的とするので、不要ピンの処理やタイミング制約には触れず、一連の実装プロセスをレビューする。

  • プロジェクトの新規作成

GUIメニューの新規作成から、PJ名を指定してEmpty projectを選択する。

Project templateを選択しても、デバイスファミリーからMAX-2を選択できないので今回はEmpty projectを選択する。今回はAdd Filesはスキップし、次にデバイスを選択する。以下のGUIのようにファミリーパッケージを選択し、本EVMに対してはMAX-2の候補のうちEPM240T100C5を選択する。

今回はこれ以上の設定は不要であり、finishボタンを押す。

  • VHDLファイルの作成

論理回路を記述するVHDLファイルを記述する。
新規作成>VHDL fileを選択すると。Quartus PrimeのGUI上に新しいエディタが生成されるので、今回は以下のように記述する。
バイスのportとしてプッシュボタン、LED配線をひとつずつ配置し、ボタンを押すとLEDが光るようにする。

library ieee;
use ieee.std_logic_1164.all;

entity LED1 is
port (
PB0 : in std_logic;--プッシュボタン
LED0 : out std_logic--LED
);
end LED1;

architecture rtl of LED1 is

begin
LED0 <= PB0;
end rtl;

VHDLファイルを用意したら、続いてコンパイルボタンでプログラムをコンパイルする。

コンパイルを終えたら、Pin Plannerでハードウェアピンを各ポートにアサインする。

ピンをアサインしてからコンパイルするのではなく、コンパイルをしてからピンをアサインする。この部分がとても間違えやすく、プログラムを書いた段階でPin Plannerを開いてポートが見つからないと焦ることが多い。コンパイルによって初めてポートがPin Plannerに表示される。
C-M240には各ボタンのピン番号がシルク印刷されているので、回路図を読まなくてもピン番号をアサインできる。
以下の図では、先行してEVMに実装されている様々なピンまで定義しているが、今回のプログラムでは2つのピンのみが表示されることになる。

  • タイミング制約の記述

本来はここで高度な回路設計では重要なタイミング制約を記述するが、今回の回路は制約を要しないほど単純なので、今回はスキップする。

各種制約を設定したあと、二回目のコンパイルを実行する。これにより、ピン情報を含めた論理回路が合成される。

  • 論理シミュレーション

今回はシミュレーションも不要につき、スキップする。

  • 回路プログラム

Programmerで回路をプログラムする。

その際は、あらかじめJTAGプログラマのダウンロードケーブルをUSB端子に接続しておく。
ダウンロードケーブルのドライバは勝手にはインストールされないので、デバイスマネージャからQuartus Primeのインストールフォルダ内のdriverフォルダを指定してインストールしておく。また、EVMの電源はオンにしておく。
Programmer内でHardware Setupの部分にUSB Blasterが認識されていることを確認し、pofファイルがリストされていることを確認したら、Program/Configureのチェックを入れてStartボタンを押す。

成功すると、Progressが100%になり色が緑色になる。

  • 実装確認

指定したプッシュボタンを押してLED(下図の緑丸部分)が光ることを確認する…が、今回の回路ではボタンを押すとLEDが消えることになる。また、プログラムに定義していない他のLEDが光っており、常時ブザーが鳴っている。これらは各ピンがプルアップされており、active lowで動作していることを示している。

次の記事では、これらのピン状態を調整し、もう少し複雑な論理回路を設計する。