| isesimutil (r230) | 2012-01-01 23:07 |
| nbox_util (r247) | 2012-03-11 22:19 |
| noodlybox (0012) | 2010-01-01 19:46 |
| TimingChartViewer (r245) | 2012-02-15 00:10 |
必要なドキュメント
FPGAのレジスタ情報が記述されたFpganame.csvファイルを作ります。 csvファイルからFpganame.hとFpganame.cppが自動作成されるので、 ユーザプログラム(以降user.cppと表記)で#include "Fpganame.h"します。 そうすると、Fpganameの持つレジスタfooは fpganame.foo = 0x12345678; のような代入をしたり、 unsigned value = fpganame.foo;のような参照をしたりできるようになります。
ユーザプログラムの中で時間待ちをしたいときは、fpganame.nop(uint32_t clocks)を呼び出してください。 クロック数ですから、時間を指定したい場合はnop(時間/クロック周期)としてください。 なお、fpganame.nop(uint32_t clocks)はマクロREALWORLDが定義されている場合はコンパイルエラーになります。
マクロ REALWORLD を定義した状態で、hoge.cppとuser.cppをコンパイルします。 REALWORLDが定義されているとhoge.cppはC++でなくCコンパイラでもコンパイル可能なので、 実機ではC++コンパイラが使えないというときでも大丈夫です。 user.cppは、C++の機能に依存しないように書けばCコンパイラでコンパイルできます。
SH7751.vを参考にしてNEWCPU.vを作成し、Sh7751.hとSh7751.cppを参考にしてNewcpu.hとNewcpu.cppを作ります。
注意点
備考
ステートマシンをC++で実装したような構造になっています。以下はSh7751.h/cppを参照しながら読んでください。
フロー
[PageInfo]
LastUpdate: 2009-10-08 00:10:34, ModifiedBy: molelord
[License]
Creative Commons 2.1 Attribution
[Permissions]
view:all, edit:members, delete/config:members