2009年2月10日火曜日

PSoC開発の下調べ(1)

PSoCの仕組みと制約

PSoCはマイコンの一種であるが、周辺回路が独特である。 通常のマイコンでは、UARTやタイマといった周辺回路がいくつか入っており、レジスタインターフェースからこれらを操作できるようになっている。 一方PSoCでは、固定機能を持つモジュールは(システムリソースを除き)存在しない。 代わりに、デジタル/アナログ回路の元となるブロックが用意されており、これらの配線や動作はレジスタインターフェースから操作できるようになっている。 このため、配線をソフトウェアからいつでも変更することが可能となっている。これを動的再構成という。(FPGAはあまりに粒度が細かすぎる上、再構成を行う機構を内包していないため、動的再構成は話題にはなっても敷居は高い) アナログブロックの中身は、OPアンプとアナログマルチプレクサの塊のようなものとなっており、マルチプレクサのセレクタ信号をレジスタインターフェースから操作することで、配線を変更することができるようになっている。このような構造であるため、完全に自由なアナログ回路作りができるわけではない。
FPGAはプログラム可能な論理+配線なのに対し、PSoCは選択可能なパラメータと配線という印象を受けた。

自分でユーザーモジュールを作るには

PSoCの開発においてGUI上でハードウェアを構成するには、PSoC Designer上でユーザーモジュールを配置し、それらを配線すればよいらしい。(PSoC Expressも似たようなもの)しかし、ユーザーモジュールの開発を補助するGUIは用意されていない(ように見受けられる)。
ユーザモジュールに使われるブロックは再配置可能であるべきなので、ビルド前のインスタンス化されていない段階では、ブロックはシンボルのような状態で配線できるようになっていないと困るはず。だからGUIで書いたものから、具体的なレジスタやビット番号が書かれたコードを生成するものと思っていたが...本当に無い?
そこで付属のユーザーモジュールがどのように定義されているか調べた。 ユーザモジュールは、[インストール先\Common\CypressSemiDeviceEditor\Data\Stdum]以下にまとめられているらしい。このディレクトリ以下には、[モジュール名]のディレクトリが並んでいる。その中身は以下のようなものであった。
  • マクロで置換されるらしい文字列を含むアセンブリコード
  • リソースと信号を定義していると思われるXMLファイル
  • Designer上で動くと思われるスクリプト(JavaScript?)
  • ドキュメント(HTMLや画像)
  • これらに関する情報は存在するかどうか確認中。

    0 件のコメント:

    コメントを投稿