2020年2月11日火曜日

XC9536の開発環境

5V動作で安く入手できるCPLDって事で、基板を日常的に起こすようになると一定の需要がある。もともとは大昔に買い溜めてたXCR3032あたりを使ってたんだけど入手性が悪くなってるので……まぁXC9536も趣味を超えて使うには厳しい感じですが。

開発に関してはISE14.7最終版にもサポートが残ってるので問題は少なめ。ただ書き込みに少々難ありで。自分はUSB環境だとPlatform Cable USB/II互換を謳う中華品を使っていたんですが、どうにもiMPACTでも動作が怪しい。XCR3032ではうまく動作してたんだけど、XC9536に関してはJTAGでデバイス検出まではできるもののProgramしてもVerifyで失敗、Blank CheckするとOKが返って来てしまう。Get Device Checksumでも不一致エラーで、そもそも特定の操作順を守った時のみAvailable Operationsに操作が表示されるという変な状況でした。

で、エラー情報で色々と調べてみたらDIGILENTのフォーラムで似たような話が。そう言えば今まで見落としてたけど、この中華装置はDigilent JTAG-HS2として認識されていたのでした。という事で、このケーブルでは9500シリーズは未対応らしい。Platform Cable USB/IIの人はたぶん大丈夫?

そうなると家にあるのは15年以上前にSpartan3 Starter Kitで使っていたパラレルポート用のダウンロードケーブルのみ。幸い以前必要になった事があって自宅サーバーになってるキューブ気にはパラレルポート拡張用のPCIボードが刺さってたりISEがインストールされてたり。という事で試そうと思ったんだけど、ドライバーのwindrvr6がloadできない。以前使ってた時から何度もUbuntuのinplace upgradeをしてるのでそりゃそうかっていう。という事で、

% cd /opt/Xilinx/14.7
% cd ISE_DS/common/bin/lin64/install_script/install_drivers
% ./install_drivers
って感じでインストールしようとしたら……
linux_common.h:29:4: error: #error "This kernel is too recent: not supported by this file"
 #  error "This kernel is too recent: not supported by this file"
    ^
linux_common.h:51:2: error: #error "unsupported linux kernel version"
 #error "unsupported linux kernel version"
あぁ……。ソースみたらKernel 2.2, 2.4, 2.6しか対応してない。確かにそんな時代の産物でした。これしか選択肢がなければドライバいじりを始めたんだと思うけど、僕にはこんな時のためにレガシーCAD用のVMがある!(あるいはVivadoの配布パッケージから最新版のドライバだけ抜き出すこともできたかも)

という事でVirtualBoxにプリンタポートを直接見せることができないかテスト。ちなみにGUIからは設定できないので面倒。
% vboxmanage modifyvm CentOS5 --lptmode1 /dev/parport1
% vboxmanage modifyvm CentOS5 --lpt1 0x378 7
そう、CentOS5の環境がまだ生き残っているのです。このままだと通常の環境だとVM起動時に/dev/parport1が開けなくて怒られるはず。これはlpがデバイスを専有してるため。なので、マニュアルで一時的に外すなら
% rmmod lp
が必要。あとパーミッションも0666にしてあげる必要あり。 このあたり、永続化させたいなら/etc/modulesからlpをコメントアウトすればOK……と思ってたんだけど、これだけじゃ今どきは駄目っぽい。おそらくcupsが起動時になんかやってるのかなーってinit.dをみたらinsmodしてたので、こいつを外す必要あり。で/etc/defaults/cupsを見たら、この辺りの設定は/etc/modules-load.d/cups-filters.confに移行した、とあるので見たらここにもlpが居たのでコメントアウト。たぶんこれでOKかな?パーミッションはudevでよしなに。

ちなみにCentOS5の環境を維持するのは難易度高めです。なにせシステムで使ってるTLSが世の中からbanされた太古のバージョンなので、そのままでは通信が軒並み動かない。セキュリティー系のチェインを一通りソースからbuildして、その上でgitやらなんやらの開発環境を作り直す必要がありました(これは結構前の作業で詳細はマシンのログにしか残してない)。

それと番外編的な話題として、9536のリビジョンが2じゃないと更に苦労があるようです。このあたりはFramさんのCPLD(XC9536無印)の書き込み環境を構築するまでの紆余曲折に書いてありました。9536使おうとすると一度は目に入って怖気づく or やる気がでる記事。

ちなみに、パラレルのケーブル刺そうとした時にマシンの電源コネクタが抜けてサーバ落ちて「ギニヤー」ってなりました。その後VMWare Playerとどっちが楽だっけなぁ……と一瞬起動したのちにVirtualBoxを起動したらネットワークが繋がらなくて、VMWareのドライバとコンフリクトしたかなぁ……と調査したりもしてたんですが、実はパラレルのケーブル刺す時にLANケーブルも抜けかけてブリッジネットワークに使ってたNICがdownしてただけでした。

作ったやつはこれ。


以前作ったこいつを1 chipで置き換えようかと思ってたんだけど、I/Oがpullupをサポートしていないタイプのシリーズだったと気づきボツに。SMD network register使った基板を作り直しますorz


2020年2月3日月曜日

2019年シューティング記録帳

少し遅くなったけど、昨年のまとめなど。

2017年から始めたシューティング1コイン1周を目標に積みゲーを切り崩す努力をする活動、3年目に入りました。2019年に達成でいたタイトルは12タイトル。数え方の問題もあるので純粋に増えてきたとは言えないですが、2017年の9本、2018年の11本と比べて悪くない流れかと。

  • スクランブル
  • サンダークロス
  • アスタブリード
  • BLAZING STAR
  • シスターロワイヤル
  • 沙羅曼蛇
  • LIFE FORCE
  • 疾風魔法大作戦
  • カラドリウス オリジナルモード
  • ラジルギスワッグ
  • カラドリウスAC アーケードモード
  • Thunder Force IV KIDS mode

あと1周済みだった周回ゲームで記録が伸びたのが

  • BATSUGUN スペシャルべージョン(2周目5面)

最終面ボスまで到達してクリアできてない次点は

  • バトルガレッガ
  • サイヴァリアμ(Δ版)
  • BATSUGUN(通常版)
  • バトライダー(一般コース)
  • レイクライシス
  • 超連射
  • ライデンファイターズ2
  • ダライアス外伝

高難易度のタイトルが多めに積み上がってしまっているけど、2020年はこのあたりも切り崩したいなぁ……。それ以外に今年記録を伸ばしたいタイトルは

  • 戦国ブレード(現在、6面)
  • エスプレイド(現在、4ボス)
  • ケツイ(現在、4ボス)
  • XEXEX(現在、5面)

とか。他にもやりたいタイトルは山積みなので、タイトルのバランスをみつつ。