前回は、openMSP430をSpartan3 Stater Kitで動作させたが、実はAlteraとLatticeのFPGA用のプロジェクトも入っている。今回は、AlteraのDE1用のプロジェクトをインプリメントしてみた。だが、DE1を持っていないので、実際に試すことは出来ない。試してみた方がいたら教えてください。
DE1用のプロジェクトは、openmsp430\trunk\fpga\altera_de1_board\synthesis\altera にある。このフォルダの中のOpenMSP430_fpga.qpf がQuartus IIのプロジェクトだ。
最初に、まだインストールしていなかったQuartus II 11.0をダウンロードしてインストールした。ダウンロードするときに何も聞かれなかったが、AlteraのQuartus IIはダウンロードするときに、何も聞かれないでダウンロードすることができるようになったのだろうか?それともすでにクッキーに入っていたのか?
さて、準備が終了したので、OpenMSP430_fpga.qpf をダブルクリックしてQuartus II 11.0を立ち上げた。Start Compilationアイコンをクリックして、コンパイルを開始した。そうしたらエラーが発生した。

最初のエラーを下に示す。
Error (10054): Verilog HDL File I/O error at openMSP430_fpga.v(35): can't open Verilog Design File "openMSP430_defines.v"
openMSP430_defines.vがないと言われている。下の図に示すように確かにopenMSP430_fpga.v のあるところにopenMSP430_defines.v が存在しない。

それじゃ何処にあるかというと、その下のopenmsp430 の下にあった。

そこで、openMSP430_fpga.v の35行目の下の行を
`include "openMSP430_defines.v"
下のように変更した。
`include "openmsp430/openMSP430_defines.v"
これでもう一度コンパイルしたら、無事にコンパイルが終了した。

Quartus IIのEntityウインドウのHierarchyタブはXilinxと違って、インスタンスしたモジュールを表示しているみたいだ。Xilinxの方が見やすいと思っていたが、ifdefでモジュールを切り分けるプロジェクトでは、Quartus IIの方が見やすいと思った。どのモジュールをインスタンスしたかが一目瞭然だ。
さて、Total logic elementsは2,594だった。これは、
前回のSpartan-3の3,136 LUTs よりも少ない。
だが、Quartus IIのEntityウインドウのHierarchyタブを見ると、デバック用のdbg_UARTがインスタンスされていない。

openMSP430_defines.v を見ると、96行目でDBG_ENのdefineがコメントアウトされていた。
// Include/Exclude Serial Debug interface
//`define DBG_EN
これを下のように変更した。
// Include/Exclude Serial Debug interface
`define DBG_EN
これで、もう一度コンパイルした。
今度は、Total logic elementsが3,027に増えていた。

Quartus IIのEntityウインドウのHierarchyタブを見ると、dbgがインスタンスされていて、その下にdbg_uart_0があった。

動作周波数は10MHzと出ていたが、どうやってクロックの制約を設定するんだっか忘れてしまった。自分のブログ記事を読み返してやってみたい。
(2011/06/14:追記)
# Original Clock Setting Name: klok
create_clock -period "33.333 ns" \
-name {CLOCK_24[0]} {CLOCK_24[0]}
上の制約でコンパイルしたところ通ったので、DE1では30MHzで動作するようだ。本来は24MHz動作のようだ。
- 2011年06月13日 05:41 |
- FPGA内蔵マイクロコントローラ
-
| トラックバック:0
-
| コメント:0