FC2カウンター FPGAの部屋 openMSP430のDE1へのインプリメント
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

openMSP430のDE1へのインプリメント

前回は、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アイコンをクリックして、コンパイルを開始した。そうしたらエラーが発生した。
openMSP430_9_110613.png

最初のエラーを下に示す。

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_10_110613.png

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

そこで、openMSP430_fpga.v の35行目の下の行を

`include "openMSP430_defines.v"


下のように変更した。

`include "openmsp430/openMSP430_defines.v"


これでもう一度コンパイルしたら、無事にコンパイルが終了した。
openMSP430_12_110613.png

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_13_110613.png

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に増えていた。
openMSP430_15_110613.png

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

動作周波数は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動作のようだ。
  1. 2011年06月13日 05:41 |
  2. FPGA内蔵マイクロコントローラ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1827-16585986
この記事にトラックバックする(FC2ブログユーザー)