PSoC CreatorのCPU・PLD連携ツールの使い方

Use a CPU / PLD communication tools of PSoC Creator
 
PSoCのCPUとPLD(プログラマブル論理回路)とデータをやりとりするには、データパスと呼ばれるPSoC独自のシステムを使う必要があります。レジスタをアセンブラのように扱ったり、20箇所以上の設定をビットとして指定したりと、この仕組みを完全に理解しようとすると相当な勉強量が必要になるため、ここではコピー&ペーストですぐに活用できるように重要な点だけ紹介したいと思います。

データパスはVerilogファイルに「cy_psoc3_dp」というPSoC独自の関数を追加することで実装します。しかしながら、この関数に関連する項目をひとつひとつ入力していくとなると大変な労力を要します。その負担を軽減するため、PSoC Creatorには2種類の入力支援ツールが用意されています。

ひとつは「UDB document」で、基本的な値をGUIベースで指定でき、また、覚え書きとしての状態遷移図を作成する機能も付いています(プログラムには影響しない)。

UDB Documentを使うには、プロジェクトの右クリックメニューより「Add Component Item」を選び、一覧より「UDB document」を指定します。
「cyudb」編集画面が表示されたら、左側にある「DP」をこの空白箇所にドラッグ&ドロップします。
実行アドレスとそれに対して実行される処理の一覧が緑色の表として示されています。このリストをダブルクリックすることで編集ができます。

例えば、以下の設定だと、「clkが立ち上がったとき、cs_addrが0番(アドレスが0)であればA0レジスタの値とD0レジスタの値を足し、その計算結果(ALU_out)をA0レジスタに格納する」ことになります。
設定内容はすぐにVerilogファイルとして反映され、その内容は下部にあるタブを切り替えることで確認できます。
このファイルを直接編集することはできないため、独自のプログラムを追加する場合は、このコードを別のファイルへ貼り付ける必要があります。

もうひとつは「Datapath Configuration Tool」を使う方法です。各設定を表形式にして、レジスタ数値を文字列定数に置き換えただけのような見た目ですが、手入力で全て行うよりかは効率的です。

Datapath Configuration ToolはVerilogファイルに含まれる関数を抜き出し、それを編集するツールなので、使うには元となるVerilogファイルが必要となります。プロジェクトで「.v」ファイルを作成したら、PSoC Creatorメニューの「Tools→Datapath Config Tool」を選んでツールを起動します。

空のリストが表示されたら、「File→Open」で先の.vファイルを開きます。
ツールで編集しているときは、元の.vファイルを直接編集してはいけません。ツールの内容を反映させてしまうと内容が上書きされてしまい、これまでのテキストがリセットされてしまいます。

データパスを追加するにはメニューの「Edit→New Datapath」を選びます。次のウィンドウでは作成する変数と名称を記入します。ご察しの通り、最後の数値はレジスタに使用するビット数を示していますが、ここではそれらの基底となってる「cy_psoc3_dp」を選んでいます。
先ほどUDB Documentツールで作成した同等の命令を実装する場合は、以下のように値を変更します。
編集が終わったら保存処理を忘れずに。
2019/06/15