ここでいう「Interface回路」とは、皆さんが作成しているプロセッサとFPGA中またはFPGAの外側に接続されている構成要素とのインターフェースをとして働く回路を指す。SEPからのアクセスから実構成要素のアクセスの細かいプロトコルやプロセスを隠し、SEPからは単純なアクセス方法で外部とのやり取りを行っているように見せる役割を果たしている。これにより、外部の実装要素の細かいアクセス方法、タイミング、プロトコルなどをSEPのアクセスでは意識しないで済む(本当は実構成要素のアクセスについても勉強し自前で作れるだけの実力はつけてほしいのだけれど…)。
Interface回路の使い方
基本的な使い方や詳細については「SEPインターフェース 使用マニュアル」に記載されているのでそちらを参照すること。 Interface回路を実験で使用するために以下のことを守ってください。
Interface回路の設計をフォルダーごと自分のQuartusのワークスペースにコピーする
フォルダの場所は以下の通り
“\\fs.inf.in.shizuoka.ac.jp\share\class\情報科学実験C\src\sep5_Interface_w_ext”
このsep5_Interface_w_extフォルダを自分のワークスペースにコピーする
Interface回路のプロジェクトを開く
sep5_Interface_w_ext フォルダ中に sep5_top.qpf というファイルがある。これがコンパイル・ダウンロード可能な回路のプロジェクトファイルである。このファイルをダブルクリックするとQuartus Primeが起動し、プロジェクトファイルが読み込まれる。”IP Upgrade recommended.” の”Launch IP Upgrade Tool…”メッセージは×を選択して消しておく。
Interface回路の回路図を開く
プロジェクトファイルを開くと、トップレベルエンティティとして登録されている”reg16_pc_interface.bdf” がある。これをダブルクリックすると回路図エディタが開き、回路図が読み込まれる。このファイルがこのプロジェクトのトップレベルエンティティであり、実際にInterface回路が使用されているサンプルとして使用できる回路図である。ピンアサインまで割当済みの回路図である。
Interface回路をライブラリとして登録する
Quartus の 「Assignments」→「Settings…」を選択し、Category:ダイアログが現れる。「Libraries」を選択し、「Global libraries(all projects)」または「Project libraries」のどちらかに「…」(参照)からフォルダを選択し「sep5_interface_w_ext」フォルダを「Add」すると「sep5_interface」モジュールの回路図を使用することができる。 新しいモジュールを追加するよりもsep5_Interfaceのプロジェクトを改変してSEPをつなげるほうがピンアサインをする手間が省けて簡単だと思われる。 このファイルをコピーして自分の設計のトップレベルエンティティとしたときには、ピンアサインが外れてしまうことがある。その際には、回路図エディタから「Assignments」→「Import Assignments…」を選択し、Import Assignmentsダイアログでファイルネーム「<プロジェクトフォルダ名>/sep5_Interface_w_ext/sep5_top.qsf」を選択してpin assignをインポートする。この際、回路図の方のIOポートの信号の名称を変更してはならない(インポートした際にピンと信号の対応が取れなくなるため)。
Interface回路につなぎこむ
インターフェース回路の信号名と信号の特性については「使用マニュアル」のp.4-5ページに記載されている。方向IN(入力)の信号には、コンパイル時にエラーが出ないようcapモジュールにより信号を入力している。自分たちの回路の信号の内容を表示をするためにInterface回路に信号をつなぎこむ際には名前で結合されているcapモジュールを取り外す(削除する)必要がある。取り外さないと名前で接続されているため、自分たちの回路からの入力とcapからの信号入力が衝突し、エラーとなる。