高位合成を使ってNESをFPGAで動かす(ソースコード一式と説明)

CLEmxn3UAAAMdrx.png

ソースコード

filemariones_source_codes_v3.zip

詳しくはFPGAエクストリームコンピューティングで発表したスライドと添付のREADME.txtをご覧ください。

※cygwinでCコードをコンパイルするときに

$ make
gcc -O3 main.c mariones_top.c reset_nes.c mbc.c registers.c RICOH2A03.c 
ppu.c -pg -lm -o ./mariones
reset_nes.c:1: error: stray '\357' in program
reset_nes.c:1: error: stray '\273' in program
reset_nes.c:1: error: stray '\277' in program
...
mbc.c:1: error: stray '\357' in program
mbc.c:1: error: stray '\273' in program
mbc.c:1: error: stray '\277' in program
...

と文字コードによるコンパイルエラーが発生する場合があります。
UTF-8にBOM有りにしているからだと思います。UTF-8にBOM無しで
エンコードするとエラーが発生しないと思います。

※VivadoHLS向けに修正したソースを含めることをすっかり忘れていました…
(2015年8月1日現在,対応済み)

ライセンス

このコード一式はみきゃんウェアです。ゆるキャラグランプリ2015で みきゃんに投票して頂ければ自由に配布・改変・公開してかまいません。

説明

同梱物

  • mariones_C_source_codes … (一応)高位合成可能なCソースコード一式.
  • mariones_C_source_for_VivadoHLS … VivadoHLS向けに修正したCソースコード一式.
  • mariones_Verilator_testbench … Vivado HLSで合成したRTLを検証するためのVerilatorテストベンチ.
  • mariones_VerilogHDLs … Vivado HLSで合成したRTLと一緒にNESを合成するためのHDL一式. グルーロジックとVGAコントローラが入っています.

環境

Vivado2015.1(Win8.1), Nexys4 DDR をターゲットにしています。 Zybo, Zedboard, Nexys4辺りは動くんじゃないでしょうか(他人事…)

CソースコードはUbuntu14.04LTS, Cygwin 64bit(Win8.1)上のgccでコンパイル可能. VerilatorはUbuntu14.04LTSで確認. HDLはVivado2015.1で合成, Nexys4 DDRで動作.

注意

ファミコンカートリッジイメージは自前で用意すること! ネットからダウンロードしたら違法だよ!ネットからダウンロードしたら違法だよ! (大事なことなので2回言いました)

私はArduinoを使って吸出し機を作りました.

実行方法

CコードをVivado HLSで高位合成->Vivadoでビットストリーム生成でおk 検証したければVerilatorを使ってください.

詳細な方法はREADME.txtを見てください。

問い合わせ先

Hiroki Nakahara, @oboe7man (twitter) 忙しいので対応できないかもしれません、すみません…


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-01 (土) 13:10:32 (696d)