”
Avalon-MMスレーブペリフェラル1(ダイナミック点灯7セグLED)”の続き。
前回は8個のダイナミック点灯7セグメントLEDを制御するAvalon-MMスレーブペリフェラルのVerilogコードを作成したが、これをSOPC Builderに登録する。
これらの作業は、
FPGA技術No.5の備州長船さんの第3章 THE AVALONM@STER(Avalon-MMスレーブペリフェラルの作成方法)を参考にさせていただいています。
さて、QuartusⅡからSOPC Builderを立ち上げる。SPOC Builder の内容は下のような感じ。PLLを外に追い出してあるので、PLLは入っていない。前回、作ったVerilogファイルを追加するためにNewボタンをクリックした。

Component Editorが起動した。Next-> ボタンをクリックした。

最初にAdd..ボタンをクリックして、トップモジュールのAvalonMM_Slave_Dyna7seg.vを追加した状態。Warningが出ている。

次に、FreqDiv.vとB27segDec.vも追加した。Warningが出ているのはFPGA技術No.5によると問題ないそうなので、Next-> ボタンをクリックした。(ちなみにFPGA技術No.5には詳しい説明などがいろいろ書いてある)

Signalsのタブに行くと、下のようになっていた。

この信号のうち、seven_seg_digit, seven_seg_a, seven_seg_b, seven_seg_c, seven_seg_d, seven_seg_e, seven_seg_f, seven_seg_g, seven_seg_dp を外部信号として登録する。まずはseven_seg_digitのInterfaceをクリックして、New Conduit... を選択した。

次にSignal Typeからexportを選択した。

これで外部信号として認識されたそうだ。seven_seg_a, seven_seg_b, seven_seg_c, seven_seg_d, seven_seg_e, seven_seg_f, seven_seg_g, seven_seg_dp も続けてInterfaceをクリックしてconduit_endを選択し、Signal Typeからexportを選択した。Next-> ボタンをクリックした。

Interfaceタブだが、凄い。。。いろいろなバスの設定などをGUIで出来るみたい。完成度が高そう?

Signalタブで選択した外部信号もあったが、全部表示されていない。が大丈夫なんだろう?

波形の下のDeprecatedを展開して、Slave addressing をNATIVEにした。これは、バイトアクセスを許可しないスレーブペリフェラルの場合は必ずNATIVEにする必要があるそうだ。

次はWarningを消します。Remove Interface With No Signalsボタンをクリックすると、信号を持たないインターフェースが消えて、Warningが消えました。下の図はハイドされていますが、Warningがある時は正常の状態でした。

Next-> ボタンをクリックしたら、次はComponent Wizardタブ。Group:をPeripheralsに指定した。これで終了なので、Finishボタンをクリックした。

Save Changesダイアログが開くので、Yes,Saveボタンをクリックした。

SOPC Builderに戻ると、System ContentsにAvalonMM_Slave_Dyna7segが登録されているので、それを選んでAdd...ボタンをクリックすると、AvalonMM_Slave_Dyna7segが登録された。

アドレスを見ると0x20から0x3fまでの32バイトアサインされている。これは32ビットレジスタ8個分ということになって、Verilogファイルと合致している。これで終了なので、Finishボタンをクリックした。
Save Changes?ダイアログが出るので、Yesボタンをクリックした。
System generationが成功しました。良かったです。

QuartusⅡに戻ってコンパイルした。コンパイル成功。
Entityを見ると、AvalonMM_Slave_Dyna7segが入っていた。Total logic elementsは 87% で以前に比べ 2% 増えていたが、まだSOPC Builderで作ったNiosⅡプロセッサのインスタンスに7セグメント関係の入出力が出ているはず。それをトップに接続する必要があるので、もっと増えると思う。次の回でそれらを行う。(2009/08/28 修正)

FPGA技術No.5では、PCMコアの補足資料も付いています。上のAvalonMM_Slave_Dyna7seg はIRQを付けませんでしたが、IRQの接続方法も載っています。
- 2009年08月27日 21:03 |
- SOPC Builder
-
| トラックバック:0
-
| コメント:4
ワーニングが出てるところは「Remove Interface・・・」ボタンで消えます。
ある程度信号名から自動認識しようとするんですが、特に命名則に沿わない外部端子は必ず誤認識するんですよね。
命名則に沿わない端子は全部Exportにするか、いっそのこと空白にしてくれた方が間違えも手間も減るような気がします。
- 2009/08/27(木) 14:01:31 |
- URL |
- 独楽 #-
- [ 編集 ]
独楽さん、こんにちは。
>ワーニングが出てるところは「Remove Interface・・・」ボタンで消えます。
ご指摘ありがとうございます。
実は、今からやるところだったのです。書きかけなのに出したのが悪いんですが。。。それもFPGA技術に載っています。
- 2009/08/27(木) 14:26:45 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]
おぉ、先走ってしまい、申し訳ありません。
Xilinxの情報で助けていただいてるので、ちょっとお節介入ってました・・
- 2009/08/27(木) 23:24:26 |
- URL |
- 独楽 #-
- [ 編集 ]
独楽さん、こんにちは。
これにこりずにどんどんご指摘ください。今回も最後を修正しました。NiosⅡプロセッサのインスタンスが信号線が増えているはずなのに、トップのVerilogファイルが直っていませんでした。修正いたします。
ドジな私ですが、どうか見捨てないでください。
- 2009/08/28(金) 04:28:27 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]