PSコントローラ関連

シミュレーションではちゃんと動くが、実機につないでロジックアナライザで解析したらなんか微妙だったので結局 Verilog で書き直した。今までの作り直しということもあるが、概ね1時間ぐらいできてしまったので、生産性は今のところは Verilog のほうが高いと判断せざるを得ない。
http://codetter.com/?p=478

コードでの注目点は下記の2点。

  • シリアル変換処理を専用の always にしてハンドシェイクで通信するようにした
  • case の条件を複数にまとめて、(一見だが)すっきりとさせた

すごく Verilog, Verilog してるね。NSL は不得意分野があるように感じたので、それらがあまり関係しないモジュールで使う予定。

動作確認では、 FPGA へ入力する信号(オープンドレイン)にプルアップ抵抗が入ってないことが判明してそれを付けたら、解析文書通り動いたのでよしとする。いままでプルアップ抵抗だと思ってたのは直列に入ってる電流制限抵抗なわけで、ボードの上の入力端子が open になってたんだよね...

ACK 信号ではこれが帰ってくるまで待たないと出力が安定しない。pgate1 氏曰く、 ack はあまり信用がないから自前で wait をいれるほうがいいかもしれないとのこと。 Fighting Stick PS が動いてくれることを期待したんだがまったく動かない。中にヒューズがあって切れてるとかだといいんだけど。