”soc-lm32のその後1”でMico32プロセッサを100MHzで動作させようとしたが、クリティカルパスが10ns 以上の遅延時間だったので、断念してDDR SDRAMコントローラだけ100MHzで動作させることにした。
そこで、DDR SDRAMコントローラに非同期FIFOを実装して、上記の動作周波数でインプリメントすることができた。

しかし、シミュレーションは大丈夫そうだったが、DDRにRAMSIZEをすべてWriteしてから、Readしているので、シミュレーションではDDRのWriteのみしか確認することができない。
実際にSpartan3E Starter Kitにコンフィグして、動作させて見ると、書き込みは終わっているようだが、Readが途中で終わってしまっているようだ。
シミュレーションで確かめたいが、ソフトウェアを変更しないとシミュレーションもReadの部分が見られない。(シミュレーション時間的に。。。)
この際、lm32のソフトウェア開発環境を整備することにした。
”Mico32でもう一度やってみた”でCygwinを入れて、soc-lm32のページにあるlm32-src-patched.tar.bz2を解凍して、makeしてみたのだが、Errorで止まってしまっていた。
とりあえず、
Design Wave Magazine 2007年10月号の
"オープン・ソースのCPUコアの実力を試す 32ビットRISCプロセッサ「LatticeMico32」レビュー”の記事のコンパイル済みのGCCツールが、おまけのCD-ROMに入っていたので、今回はこれを使用することにした。
cygwin から tar で展開し、コンパイルしてみたら問題なくコンパイルできた。これでMakefileを書き換えて bootloader を書き変えてシミュレーションすることができる。良かった。。。ポルトガルの山際氏、ありがとう。
Makefileに書いてあるパスを書き直して、lm32をコンパイルした結果がこれ。

これで、ソフトウェアも大丈夫。。。
これでDDRに4つWriteしてから、4つReadするようにCプログラムを書き換えて、シミュレーションしてみよう!
- 2008年10月12日 20:09 |
- Spartan3E Starter Kit でマイコンを作る
-
| トラックバック:0
-
| コメント:0