DE0上で Zet Processor ver.1.3.1も動いた!(報告編)
やったよ。やりました。
ZetProcessorのバージョン1.3.1が、動作しました。
使用したFPGAボードは、AlteraのDE0でございます。
先日の記事では、ver1.2.0のコンパイル済みファイルを動作させました。
その後、Forumの書き込みを読み解いて修正してみたら、
自分でもコンパイルできたわけであります。
さらに欲が出て、同じ修正でバージョン1.3.1も動くのではないかと予想。
Verilogのファイルにちょっと手を加えてみたら
うまく動きました。ので、報告。
起動画面は、前回の記事に載せたので
今回はWindows起動しちゃうよ!!
変更箇所は、本記事の最後に!!
そうそう。Windowsを起動するために、
コマンド入力が必要なんて知らなかったです。

C:\>win っと。
そして起動!!

うほーい!マウス繋いでないので、すべてキーボードで動作。
alt、tab、カーソルキーなど、非文字のキーが大活躍です。
みんな大好きソリティア

オセ・・・じゃなくてリバーシ

カドをとられて危なかったけど、なんとか勝利!!

これがすべて、FPGAの上で動いているというのが
いまだに信じられない。というか、実感が湧かない。
一方、コマンドに戻り、Lemmingsを起動してみる。

何このロゴ。なんかメッセージが流れてるんですけどー。
ここからは、どうやらESCキーで先に進める。
・・・という内容が、しばらくするとメッセージで流れてくる。
でました。タイトル&メニュー画面。

早速プレイ。

うひゃあ。マウスなしでどうやってプレイするんだ!?
と思ったら、上下は"q"と"a"、左右は"o"と"p"、決定はスペースキーで操作できた。
1面は穴掘りだけでいけるのよね。とりあえずクリア。

こんな感じで、デフォルトでいろいろ遊べることがわかりました。
ただ、バージョン1.3.1では、CUIにしたときに
表示領域がずれてるっぽいのがちょっと気になる。
さてさて、動作させるために必要な修正箇所ですが、
それほど多くないです。
変更するファイルは、flash16.vのみ。BusのACK信号にassignされている
opという信号を、シフトレジスタにして出力を遅らせます。
ファイルはこれ↓

変更箇所はこの図のとおり。

赤枠で囲んだところを追加します。
ただし、60行目はもともとあった記述をコメントアウトしたものです。
バージョン1.2.0、1.3.1ともに、この変更で起動できるようになりました。
次は、備忘録的に動作までの手順をまとめてみよう。
Windowsの発表当時にコンピュータをいじっていた人たちも
こんな興奮を味わっていたのだろうか。
スペック的には今のほうが断然すぐれているのに、
触っているだけでワクワクするという時代がうらやましく思える。
/** おまけ ************/
rogueで調子に乗ってモンスターを狩っていたら、お墓が立ちました。

安らかに眠れ。hoge氏、オークとの戦いにて死す。
これを見るためにプレイしました。って感じ。
ZetProcessorのバージョン1.3.1が、動作しました。
使用したFPGAボードは、AlteraのDE0でございます。
先日の記事では、ver1.2.0のコンパイル済みファイルを動作させました。
その後、Forumの書き込みを読み解いて修正してみたら、
自分でもコンパイルできたわけであります。
さらに欲が出て、同じ修正でバージョン1.3.1も動くのではないかと予想。
Verilogのファイルにちょっと手を加えてみたら
うまく動きました。ので、報告。
起動画面は、前回の記事に載せたので
今回はWindows起動しちゃうよ!!
変更箇所は、本記事の最後に!!
そうそう。Windowsを起動するために、
コマンド入力が必要なんて知らなかったです。

C:\>win っと。
そして起動!!

うほーい!マウス繋いでないので、すべてキーボードで動作。
alt、tab、カーソルキーなど、非文字のキーが大活躍です。
みんな大好きソリティア

オセ・・・じゃなくてリバーシ

カドをとられて危なかったけど、なんとか勝利!!

これがすべて、FPGAの上で動いているというのが
いまだに信じられない。というか、実感が湧かない。
一方、コマンドに戻り、Lemmingsを起動してみる。

何このロゴ。なんかメッセージが流れてるんですけどー。
ここからは、どうやらESCキーで先に進める。
・・・という内容が、しばらくするとメッセージで流れてくる。
でました。タイトル&メニュー画面。

早速プレイ。

うひゃあ。マウスなしでどうやってプレイするんだ!?
と思ったら、上下は"q"と"a"、左右は"o"と"p"、決定はスペースキーで操作できた。
1面は穴掘りだけでいけるのよね。とりあえずクリア。

こんな感じで、デフォルトでいろいろ遊べることがわかりました。
ただ、バージョン1.3.1では、CUIにしたときに
表示領域がずれてるっぽいのがちょっと気になる。
さてさて、動作させるために必要な修正箇所ですが、
それほど多くないです。
変更するファイルは、flash16.vのみ。BusのACK信号にassignされている
opという信号を、シフトレジスタにして出力を遅らせます。
ファイルはこれ↓

変更箇所はこの図のとおり。

赤枠で囲んだところを追加します。
ただし、60行目はもともとあった記述をコメントアウトしたものです。
バージョン1.2.0、1.3.1ともに、この変更で起動できるようになりました。
次は、備忘録的に動作までの手順をまとめてみよう。
Windowsの発表当時にコンピュータをいじっていた人たちも
こんな興奮を味わっていたのだろうか。
スペック的には今のほうが断然すぐれているのに、
触っているだけでワクワクするという時代がうらやましく思える。
/** おまけ ************/
rogueで調子に乗ってモンスターを狩っていたら、お墓が立ちました。

安らかに眠れ。hoge氏、オークとの戦いにて死す。
これを見るためにプレイしました。って感じ。
スポンサーサイト
コメント
お久しぶりです。
Zet、無事動く様になっていたんですね。
僕も帰ったら早速やってみようと思います。
貴重な情報ありがとう御座いました。
最近忙しくてFPGAで遊べていないので。。。
Zet、無事動く様になっていたんですね。
僕も帰ったら早速やってみようと思います。
貴重な情報ありがとう御座いました。
最近忙しくてFPGAで遊べていないので。。。
Re: タイトルなし
コメント、ありがとうございます。
本家の情報で、何とか動くようになりました。
私も、なかなかボードをいじる時間が取れなかったりしています。
すこしずつでも、遊べるといいですね。
結局、問題はSDRAMのタイミングにあったようですが、
データシートとのにらめっこでは見つけられませんでした。
デバッグ力を向上させたいです。
本家の情報で、何とか動くようになりました。
私も、なかなかボードをいじる時間が取れなかったりしています。
すこしずつでも、遊べるといいですね。
結局、問題はSDRAMのタイミングにあったようですが、
データシートとのにらめっこでは見つけられませんでした。
デバッグ力を向上させたいです。
僕のブログの方にも勝手に書かせてもらいましたが
SDRAMではなく、flashのタイミングの方ですね。
誤記かも知れませんが。
アドレス確定後に最大90nsec後にデータが確定しますが、
その前にCPUにデータが揃った(ack)と返事が帰っています。
その返事を遅らせる変更のようです。
SDRAMではなく、flashのタイミングの方ですね。
誤記かも知れませんが。
アドレス確定後に最大90nsec後にデータが確定しますが、
その前にCPUにデータが揃った(ack)と返事が帰っています。
その返事を遅らせる変更のようです。
Re: タイトルなし
> SDRAMではなく、flashのタイミングの方ですね。
> 誤記かも知れませんが。
ご指摘ありがとうございます。
そうですね。問題があったのはflashのタイミングでした。
自分で、書き換えるのはflashモジュール 的なことを書いていたのに、
おはずかしい。
わかりやすい解説も付けていただき、助かります。
> 誤記かも知れませんが。
ご指摘ありがとうございます。
そうですね。問題があったのはflashのタイミングでした。
自分で、書き換えるのはflashモジュール 的なことを書いていたのに、
おはずかしい。
わかりやすい解説も付けていただき、助かります。