2003-05-15                       Katsumi Degawa    【【【 FPGA-PACMANをPlayStation-Controllerで遊ぼう(Xilinx編) 】】】 【【 はじめに 】】  FPGA-PACMANを作成し コントローラ(自作)の非力さを痛感した。1面クリアするのがやっと! そこでPlayStation(Ps)のコントローラで遊べるようにするため インターフェイスIPを VerilogHDLにて作成したので紹介します。 【【 コントロール 】】  今回PSコントローラのボタン設定は、下記のようになっています.    LEFT 1P/2P : 右ジョグコントローラ  RIGHT 1P/2P : 右ジョグコントローラ  UP 1P/2P : 右ジョグコントローラ  DOWN 1P/2P : 右ジョグコントローラ  START 1P : スタート ボタン  START 2P : □ボタンを押しながら スタート ボタン  CREDIT1 : ○ボタン  CREDIT2 : △ボタン    Dualshook機能 : Pacman が ワープトンネルを通過中に小モーターが振動する。          Pacman が 死ぬと大モーターが振動する。    *この機能が不要な場合は、top.v(20行目) `define dualshook の記述を削除するか    コメントアウトして下さい。  これらの割り当ては、psPAD_PACMAN.v とtop.v で設定しています.   また 標準のSW([3:0]PSW)と内部で接続されているため PSコントローラを接続しなくても  PSWにてコントロール可能です。 【【 FPGA-PACMAN基板とコントローラの接続 】】  FPGAとプレイステーションコントローラの接続は、【【 コントローラとの接続 】】を参照  して下さい。74HC04を介して接続しているのは、何かあってFPGAを壊すのを防ぐためです。  私にとって コントローラよりFPGAの方が大切!!  *注意 基板製作で標準SW([3:0]PSW)を使用しない場合でも [3:0]PSWのポート及びプルアップ     抵抗を削除しないでください。内部でRESET端子も兼ねている為。 【【 Xilinx-FPGA-DATA(top.bit)の作成&ダウンロード 】】  今回,変更,及び追加したファイルは, top.v (PACMAN-psPADのインターフェイスを追加)  psPAD_PACMAN.v(新規)、psPAD_top.v(新規)です。   オリジナルのtop.vを追加変更したものと置き換えて 2つの新規ファイルを追加して psRXD,  psTXD,psCLK,psSELを適当なピンにアサイン後、コンパイルして下さい。  FPGA-PACMANに必要なFileを下記に記載します。Z80IPは、FreeのT80をしています。 NGC_FILE = T80as.ngc; VERILOG_FILE = psPAD_top.v; psPAD Interface Top Module VERILOG_FILE = paPAD_PACMAN.v; psPAD ⇔ Pacman Interface Module VERILOG_FILE = z80ip_t.v; VERILOG_FILE = z80as.v; VERILOG_FILE = venc_vga8.v; VERILOG_FILE = sound.v; VERILOG_FILE = xmemory.v; VERILOG_FILE = clock.v; VERILOG_FILE = dac.v; VERILOG_FILE = inport.v; VERILOG_FILE = irq.v; VERILOG_FILE = adec.v; VERILOG_FILE = video.v; VERILOG_FILE = top.v; psPAD対応 FPGA_Pacman top Module PIN assign を追加、変更する場合は、”top_200.ucf”を編集してください. # PS_PAD_INTERFACE # NET "psCLK" LOC = "P206"; ⇔ LOC = "Pxxx" を編集 NET "psRXD" LOC = "P202"; NET "psSEL" LOC = "P204"; NET "psTXD" LOC = "P200"; #  ISE Webpack 5.1 にてコンパイルを実行    XC2S200E-6 PQ208CでのFPGA実装率は、下記のとうりです.   Device utilization summary:    Number of External GCLKIOBs 1 out of 4 25%    Number of External IOBs 50 out of 142 35%   Number of LOCed External IOBs 50 out of 50 100% Number of BLOCKRAMs 10 out of 14 71% Number of SLICEs 1560 out of 2352 66% Number of GCLKs 3 out of 4 75%  ISE Webpack 5.1によって生成された”top.bit”をダウンロードして完了です。 【 著作権&免責 】  FPGA-Pacman(BATA2)の著作権は、さとう氏(URL:http://members.tripod.co.jp/x1resource/xilinx/)  に属します.  T80xxx.vhd Z80IPの著作権は、Daniel Wallner氏 (jesus@opencores.org)に属します. psPAD IPの著作権は、出川 雄己 に属します.    本ソースファイル及び情報を使用したことにより生じたいかなる障害、損害において作者は一切責任  を負わないものとします。  各自の責任において使用してください。 【 連絡先 】  ご意見、ご要望等ありまりたら是非以下のIDまでご連絡をお願いします。 E-mail : degawa@mx5.ttcn.ne.jp